Wikibooks
plwikibooks
https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna
MediaWiki 1.48.0-wmf.3
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
Pomoc:Spis treści
12
89
560653
554176
2026-11-08T23:26:43Z
Persino
2851
/* Wizualne opisy szablonów */
560653
wikitext
text/x-wiki
<noinclude><!--
-->{{UnikatowaStronaStart
| nagłówek = {{Rozdział|Pomoc Wikibooks}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>
== Pomoc Wikibooks ==
'''{{lr|Czym jest Wikibooks|Wikibooks}}''' jest zbiorem darmowych książek pisanych przez internautów. Poniższe strony pomocy zawierają porady i informacje o naszym projekcie. Projekt ten – będący siostrzanym projektem Wikipedii – powstał 10 lipca 2003 r. Polska wersja została uruchomiona '''24 stycznia 2004 roku''' i w tej chwili posiada już {{Forma wyrazu podręcznik po liczbie|'''{{LICZBAPODRĘCZNIKÓW}}'''}}, a w nich {{Forma wyrazu artykuł po liczbie|'''{{NUMBEROFARTICLES}}'''}}.
== Wstęp ==
{{Osobny artykuł|Pomoc:Spis treści/Wstęp|obserwowane=Wstęp}}
Posiada wiadomości, jakimi musi się posługiwać {{Np|User|link=tak}}, by zacząć pisać na projekcie.
Zawiera wstępne informacje na temat edycji stron w przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}}. Jakimi licencjami opatrzyć pisane książki (podręczniki wielomodułowe) i broszury (podręczniki jednomodułowe), aby one były na polskim {{NS|pk=mj|l=tak|w=tak}} podręcznikami, a nie artykułami encyklopedycznymi.
Zawiera podstawowe odzywki wikipedystów, wikietykietę oraz zasady i wskazówki, tzn. jak zachowywać się na tym projekcie. Posiada szybką pomoc o projekcie. Informuje dlaczego nie wybierać tego serwisu, gdy nie chcemy czegoś podręcznikowego ogłaszać na wolnych licencjach. Przedstawia nowym użytkownikom dla przyszłych twórców podręczników w serwisie, co powinni wiedzieć, aby zacząć tam pisać podręczniki.
Przedstawia, dlaczego używać książek o licencjach wolnych, jakie są tego zalety. Mówi, kiedy nie pisać na {{NS|l=tak}}. Na końcu posiada Informacje prawne na temat używania woluminów i licencji (praw autorskich), na nim stworzonych.
== Edycja ==
{{Osobny artykuł|Pomoc:Spis treści/Edycja|obserwowane=Edycja}}
Posiada w informacjach stronę brudnopisu informującą, gdzie można nauczyć się pisać poszczególne moduły. Mówi jak przeprowadzać edycje poszczególnych artykułów w książce. Przedstawia jak przeprowadzać import stron przez administratorów projektu.
Posiada informacje na temat nazewnictwa książek i w nich artykułów, czyli modułów. Informuje on o opatrzeniu książek o poziom rozwoju edycji podręcznika. Mówi jak ilustrować poszczególne artykuły pozycji książkowych i zawiera informacje na temat ilustracji plików w przestrzeni nazw {{Np|File|link=tak}}. Ma informacje na temat nauki edycji edytując {{NAZWASERWISU|po=a|link=tak}}.
Informuje jak uzyskać podświetlanie składni kodów informatycznych. Jeśli są problemy ze z polskimi znakami, to jak je wpisać umiejętnie na projekcie. Pomaga tworzyć Quiz'e, tzn. testy wyboru, by nauczyć się logicznie myśleć. Dzięki tego rozdziałowi możemy się nauczyć edytować artykuły, w tym jego stronę główną. Możemy tam znaleźć stronę ze zbiorem szablonów do wykorzystania. Te dział ma elementy na temat tworzenia podręcznika, co to jest wandalizm, i jak je usuwać.
Przedstawia jak zrobić podręcznik w formie do wydruku, np. jak go przeformatować na format PDF, i za pomocą jakiego narzędzia można to zrobić. Informuje jak zarządzać kolekcjami książek stworzonych przez użytkowników.
== Wkład miesiąca ==
{{Osobny artykuł|Pomoc:Spis treści/Wkład miesiąca|obserwowane=Wkład miesiąca}}
Możemy przeprowadzić konkurs, w których wybieramy najlepsze i wyróżnione książki miesiąca, tzn. powstałe w ciągu ostatniego miesiąca lub w ogólne powstałe na projekcie. Posiada regulamin, jak przeprowadzać to owo głosowanie.
Przedstawia jakimi szablonami opatrzyć stronę główną podręcznika, gdy zostanie ona wyróżniona jako: '''Nowe podręczniki miesiąc''' albo '''Wyróżnione podręczniki miesiąca'''. Dana książka może być wyróżniona tylko raz. Ile należy mieć edycji, aby zacząć tam głosować, by wyróżnić takowy podręcznik.
== Komunikacja ==
{{Osobny artykuł|Pomoc:Spis treści/Komunikacja|obserwowane=Komunikacja}}
Zawiera strony, z jakich może korzystać wikipedysta, by się nauczyć pisać na projekcie. Strony dzięki, których autorzy mogą się ze sobą komunikować. Stronę główną komunikacji, tablicę ogłoszeń, stronę dla obcokrajowców i strony dyskusji stron artykułu (w których osoby mogą pisać wszystko na temat danego artykułu, czy strony).
Posiada jakimi narzędziami to robić, tzn. na głównej stronie rozmowy, czy na kanale IRC. Posiada jak skontaktować się z zarządcą projektu. Posiada również stronę ogłoszeń, na którym każdy wikipedysta może zostawić ogłoszenie. Informuje, jak komunikować się pomiędzy użytkownikami.
== Korzystanie z Wikibooks ==
{{Osobny artykuł|Pomoc:Spis treści/Korzystanie z Wikibooks|obserwowane=Korzystanie z Wikibooks}}
Zawiera stronę zbioru książek w projekcie i jak go przeglądać. Propozycję tematów książek. Promocji {{NS|l=tak|pk=d}}. Jak wyszukiwać podręczniki losowo, powstałe ostatnio. Ma wiadomości, na temat przeglądania po liście woluminów. Posiada elementy na temat trybu ciemnego na wyświetlaczach z oszczędnością energii elektrycznej.
== Historia Wikibooks ==
{{Osobny artykuł|Pomoc:Spis treści/Historia Wikibooks|obserwowane=Historia Wikibooks}}
Zawiera informacje statystyczne o podręcznikach. Dostarcza wiadomości na temat historii powstania projektu i dalszego istnienie serwisu, o urodzinach Projektu, sprzątania {{NAZWASERWISU|link=tak|po=a}} itp., jak i o kalendarzu serwisu.
== Technikalia ==
{{Osobny artykuł|Pomoc:Spis treści/Technikalia|obserwowane=Technikalia}}
Zawiera zestaw stron technicznych na temat {{NS|pk=d|l=tak}}, jak w przypadku przestrzeni nazw, czy też o wizualnym edytorze, potrzebny do edycji artykułów w przestrzeni głównej, jak i o najnowszych skórkach, które może sobie włączyć użytkownik, strony księgozbiorów po książkach i istniejące portale, jako zestawy kategorii książkowych, do których zaliczamy woluminy.
Opisuje kategorie jakie są na projekcie w podstawowej kategorii {{lk|Kategorie}} i jej podkategoriach. Posiada linki do najważniejszych stron specjalnych (strony w przestrzeni nazw {{Np|Special|link=tak}}), które dostarczają informacje na temat, co jest nie tak ze stronami w projekcie, i dodatkowe funkcje.
Informuje jakie są strony techniczne głównej strony rozmów i innych administracyjnych stron (np. aby zgłosić problem, czy też dać zadania administratorowi, nawet interfejsu), te strony mogą być do usuwania, czy też naprawy stron, a nawet ogłasza o naruszeniach praw autorskich. Pokazuje jak edytować lewą nawigację środowiska graficznego każdej skórki.
== Strona główna ==
{{Osobny artykuł|Pomoc:Spis treści/Strona główna|obserwowane=Strona główna}}
Zawiera moduły, czyli składowe strony głównej projektu ({{lr2|Strona główna}}), jak i strony głównej dla dzieci ({{lj2|Strona główna}}). Zawiera w opisie, jakie szablony są wykorzystywane, które one wykorzystuje się do ich stworzenia, aby wszystko działało poprawnie.
== Wybrane książki ==
{{Osobny artykuł|Pomoc:Spis treści/Wybrane książki|obserwowane=Wybrane książki}}
Zawiera strony na temat: ''' Polecanych książek ''' ({{Forma wyrażenia po liczbie|{{Liczba list wybranych książek|Polecane książki}}|zestawów|zestaw|zestawy}} po trzy podręczniki), ''' Wyróżnionych książek miesiąca ''' ({{Forma wyrażenia po liczbie|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}|zestawów|zestaw|zestawy}} po dwa podręczniki) i ''' Nowych książek miesiąca ''' ({{Forma wyrażenia po liczbie|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}|zestawów|zestaw|zestawy}} po dwa podręczniki). Posiadają też one stronę zbiorczą kolejno: {{s|Wikibooks:Polecane książki}}, {{s|Wyróżnienia książek miesiąca/Wyróżniony}} i {{s|Nowe podręczniki miesiąca/Zwycięzca}}.
== Szablony ==
==== Szablony na projekcie ====
{{lz|s=Specjalna:Wszystkie strony|c=from=&namespace=10|n=Wszystkie szablony na Wikibooks}} - strona specjalna wyświetlająca wszystkie szablony istniejące na polskim projekcie {{NS|w=tak|l=tak}}. Tam szablony są skategoryzowane alfabetycznie względem jego nazwy, nie pełnej nazwy. Są podzielone na okna, między którymi możemy się przesuwać.
==== Wizualne opisy szablonów ====
Szablony przedstawione w postaci wizualnej, tzn. jak wyglądają po wywołaniu:
{{Pozioma lista|
| {{lr|Szablony}}
| {{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/Warunkowe}}
| {{lru|Szablony/Wikipedysta}}
| {{lru|Szablony/Dyskusja Wikipedysty}}
| {{lru|Szablony/MediaWiki}}
| {{lru|Szablony/Systemowe}}
}}
==== Opisowe zestawy szablonów ====
Szablony podzielone na zestawy względem postępujących jego fragmentów od podstawowych do zaawansowanych:
{{Pozioma lista
| {{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}}
| {{lp|Spis treści/Szablony/Tom IV|Szablony - Tom IV}}
}}
==== Ogólny opis szablonów ====
Zawiera informacje na temat szablonów w projekcie, opisuje je, jak działają, do czego one służą. Ma do nich w sobie linki do stron szablonów w przestrzeni nazw {{Np|Template|link=tak}}. W kolejnych częściach opisowach są opisane coraz bardziej skomplikowane szablony, jakie są na polskim {{NS|l=tak|pk=mj}}, a w wersji wizualnej są za to podzielone je na kategorie.
== Administracja ==
{{Osobny artykuł|Pomoc:Spis treści/Administracja|obserwowane=Administracja}}
Zawiera strony informujące do czego służą poszczególne uprawnienia projektu. Jak komunikować się z użytkownikami administracji serwisu, aby pomogli w zrobieniu ściśle określonego celu, ale ze spełnionymi pewnymi zasadami, i jak dać zadanie administratorowi bota do zrobienia pewnych operacji. Mówi jak uzyskać uprawnienia administracyjne przez danego użytkownika.
Informuje, jak komunikować się użytkownikami administracji całego projektu {{lpg|MediaWiki}}. Propaguje, jak zmienić swoją nazwę użytkownika na projekcie.
{{BrClear}}
<noinclude>
{{UnikatowaStronaKoniec}}
{{Kategorie
| 1 = Pomoc - Strony pomocy | sortuj spacją 1 = tak
| 2 = Pomoc - Spis treści | sortuj spacją 2 = tak
}}
</noinclude>
rd621fz6kne1oflcive31h91x4co6ey
Wikibooks:Szablony
4
1449
560654
553091
2026-11-08T23:28:03Z
Persino
2851
560654
wikitext
text/x-wiki
<noinclude>{{Skrót|'''[[WB:S]]'''}}__NOTOC__<!--
-->{{StandardowaStronaStart
| nagłówek = {{Rozdział|Pomoc Wikibooks|Mechanizm MediaWiki - Szablony}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>{{Spis treści|limit=2}}
Strona ta zawiera spis używanych na Wikibooks '''szablonów''' wraz ze sposobem ich użycia. Szablony to specjalne strony, które mogą być wielokrotnie wstawiane do innych. Wstawienie szablonu odbywa się przez umieszczenie w tekście jego nazwy w podwójnych nawiasach klamrowych: {{Tt|{{s|ek}}}}. Warto zapoznać się również z zasadami tworzenia szablonów na Wikipedii: {{lpr2|Szablony}} i {{lpp2|Tworzenie szablonów}}. Zanim zaczniesz samemu układać szablony, spróbuj modyfikować w swoim podręczniku te już istniejące. Zdobędziesz dzięki temu potrzebne doświadczenie i nauczysz się lepiej wiki-kodu.
== Szablony - opis wizualny ==
{{Tabela nawigacyjna
| klasa = szerokość
| styl =
| tytuł = Spis treści poszczególnych opisów szablonów - tomy wizualne
| spis =
{{SpisTreści|Ogólne|bez przypisów=tak}}
{{SpisTreści|Informacje}}
{{SpisTreści|PrzypisStrona}}
{{SpisTreści|Podręcznikowe}}
{{SpisTreści|Książkowe}}
{{SpisTreści|Tekst|bez przypisów=tak}}
{{SpisTreści|Zawartość}}
{{SpisTreści|Nagłówki}}
{{SpisTreści|Przekierowania}}
{{SpisTreści|Języki}}
{{SpisTreści|Liczby}}
{{SpisTreści|Kategorie}}
{{SpisTreści|Opisy}}
{{SpisTreści|Znaczniki}}
{{SpisTreści|Szablony opływania}}
{{SpisTreści|Stronicowe}}
{{SpisTreści|Kontenerowe}}
{{SpisTreści|Elastyczne}}
{{SpisTreści|Infoboksy/Prolog|3=Infoboksy - Prolog}}
{{SpisTreści|Infoboksy/Tom I|3=Infoboksy - Tom I}}
{{SpisTreści|Infoboksy/Tom II|3=Infoboksy - Tom II|bez przypisów=tak}}
{{SpisTreści|Infoboksy/Tom III|3=Infoboksy - Tom III}}
{{SpisTreści|Infoboksy/Tom IV|3=Infoboksy - Tom IV}}
{{SpisTreści|Infoboksy/Tom V|3=Infoboksy - Tom V}}
{{SpisTreści|Infoboksy/Tom VI|3=Infoboksy - Tom VI}}
{{SpisTreści|Infoboksy/Komponenty|3=Infoboksy - Komponenty|bez przypisów=tak}}
{{SpisTreści|Infoboksy/Komponenty (organizmy żywe)|3=Infoboksy - Komponenty (organizmy żywe)}}
{{SpisTreści|Porządkowe}}
{{SpisTreści|Źródła artykułów}}
{{SpisTreści|Linki}}
{{SpisTreści|Linki inteligentne}}
{{SpisTreści|Do usunięcia}}
{{SpisTreści|Nawigacja}}
{{SpisTreści|Media}}
{{SpisTreści|Grafika}}
{{SpisTreści|Licencjonowanie}}
{{SpisTreści|Techniczne}}
{{SpisTreści|Warunkowe}}
{{SpisTreści|Wikipedysta}}
{{SpisTreści|Dyskusja Wikipedysty}}
{{SpisTreści|MediaWiki}}
{{SpisTreści|Systemowe}}
}}
== Szablony - opis tekstowy ==
{{Tabela nawigacyjna
| klasa = szerokość
| styl =
| tytuł = Spis treści poszczególnych opisów szablonów - tomy opisowe
| spis =
{{SpisTreści|Szablony/Tom I|{{ns:Help}}:Spis treści|Szablony - Tom I}}
{{SpisTreści|Szablony/Tom II|{{ns:Help}}:Spis treści|Szablony - Tom II}}
{{SpisTreści|Szablony/Tom III|{{ns:Help}}:Spis treści|Szablony - Tom III}}
{{SpisTreści|Szablony/Tom IV|{{ns:Help}}:Spis treści|Szablony - Tom IV}}
}}
== Tworzenie szablonów ==
Szablony tworzyć może każdy - wbrew pozorom nie jest to zbyt trudne. Najlepiej popatrz, jak zbudowane i stosowane są inne szablony i wzoruj się na nich. Pamiętaj o [[Wikibooks:Nazewnictwo artykułów#Szablony|Regułach nazewnictwa dla szablonów]].
== Zobacz też ==
* [[w:Wikipedia:Szablon|Wikipedia:Szablony]]
* [{{fullurl:Specjalna:Allpages|from=&namespace=10}} Automatyczna lista wszystkich szablonów]
* [[meta:Help:Magic words|Magic words]] - różne specjalne kody
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategorie
| Wizualne opisy techniczne szablonów | sortuj spacją 1 = tak
| Pomoc - Problemy wywołań mechanizmu MediaWiki
}}</noinclude>
pd8so1rciicg3y6rc1pwajnia0o0xph
Wikibooks:Szablony/Techniczne
4
60356
560650
557832
2026-11-08T23:20:57Z
Persino
2851
/* Szablony do obliczeń matematycznych */
560650
wikitext
text/x-wiki
<noinclude>{{Autonawigacja|Pomoc:Spis treści}}</noinclude>
== Podświetlanie składni - szablony ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|{{s|ŹródłoKodu|język{{=}}xml|
{{s|Mniejszy}}ref name{{=}}"Nazwa przypisu"{{s|Większy}}W przypisie może być cokolwiek{{s|Mniejszy}}/ref{{s|Większy}}
{{s|Mniejszy}}ref name{{=}}"Wydawca: Jakiś tytuł"{{s|Większy}}Franciszka Tłumacząca, Przypisy często zawierają odniesienia do literatury lub źródeł internetowych{{s|Mniejszy}}/ref{{s|Większy}}
}}}}
| _1 = {{ŹródłoKodu|język=xml|
{{Mniejszy}}ref name{{=}}"Nazwa przypisu"{{Większy}}W przypisie może być cokolwiek{{Mniejszy}}/ref{{Większy}}
{{Mniejszy}}ref name{{=}}"Wydawca: Jakiś tytuł"{{Większy}}Franciszka Tłumacząca, Przypisy często zawierają odniesienia do literatury lub źródeł internetowych{{Mniejszy}}/ref{{Większy}}
}}
| 2 = {{Pre|{{s|ŹródłoHtml|{{s|Pełny rozdział|Zaczynamy|nazwa przestrzeni nazw{{=}}(main)|nazwa jednostki{{=}}Matematyka dla liceum}}}}}}
| _2 = {{ŹródłoHtml|{{Pełny rozdział|Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum}}}}
| 3 = {{Pre|{{s|ŹródłoCss|
.klasa_jeden{{s|(}}
width:100px;
height:150px;
font-fize:12px;
white-space:nowrap;
{{s|)}}}}}}
| _3 = {{ŹródłoCss|
.klasa_jeden{{(}}
width:100px;
height:150px;
font-size:12px;
white-space:nowrap;
{{)}}}}
| 4 = {{Pre|{{s|ŹródłoXml|
{{s|Mniejszy}}ref name{{s|{{=}}}}"Nazwa przypisu"{{s|Większy}}W przypisie może być cokolwiek{{s|Mniejszy}}/ref{{s|Większy}}
{{s|Mniejszy}}ref name{{s|{{=}}}}"Wydawca: Jakiś tytuł"{{s|Większy}}Franciszka Tłumacząca, ''Przypisy często zawierają odniesienia do literatury lub źródeł internetowych''{{s|Mniejszy}}/ref{{s|Większy}}
}}}}
| _4 = {{ŹródłoXml|
{{Mniejszy}}ref name{{=}}"Nazwa przypisu"{{Większy}}W przypisie może być cokolwiek{{Mniejszy}}/ref{{Większy}}
{{Mniejszy}}ref name{{=}}"Wydawca: Jakiś tytuł"{{Większy}}Franciszka Tłumacząca, Przypisy często zawierają odniesienia do literatury lub źródeł internetowych{{Mniejszy}}/ref{{Większy}}
}}
}}
== Pobieranie danych ze strony ==
{{EfektKodów|kod-rozmiar=35%
| 1 = {{Tt|{{s|ŹródłoCss|{{s|LuaSubst|{{Ns:Template}}:Nowraplinki/styles.css}}}}}}
| _1 = {{ŹródłoCss|{{LuaSubst|{{Ns:Template}}:Nowraplinki/styles.css}}}}
}}
== Pobieranie ustawień ze strony ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|PobierzUstawienia|Szablon:Podręcznik/Ustawienia/Szablon:Autonawigacja|artykuł|zmienna klucz}}}}
| _1 = {{PobierzUstawienia|Szablon:Podręcznik/Ustawienia/Szablon:Autonawigacja|artykuł|zmienna klucz}}
}}
== Szablony pobierania ustawień ze swojego wywołania ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|{{s|Conf|tytuł
| poza_projektem {{=}} Tutaj jest kod wartości '''poza_projektem'''.
| tytuł {{=}} Tutaj jest kod wartości '''tytuł'''.
| autor {{=}} Tutaj jest kod wartości '''autor'''.
| autor1 {{=}} Tutaj jest kod wartości '''autor1'''.
| sekcja {{=}} Tutaj jest kod wartości '''sekcja'''.
| sekcja2 {{=}} Tutaj jest kod wartości '''sekcja2'''.
| sekcja3 {{=}} Tutaj jest kod wartości '''sekcja3'''.
| sekcja4 {{=}} Tutaj jest kod wartości '''sekcja4'''.
| sekcja5 {{=}} Tutaj jest kod wartości '''sekcja5'''.
| poprzedni {{=}} Tutaj jest kod wartości '''poprzedni'''.
| następny {{=}} Tutaj jest kod wartości '''następny'''.
| adnotacje {{=}} Tutaj jest kod wartości '''adnotacje'''.
| tłumacz {{=}} Tutaj jest kod wartości '''tłumacz'''.
| tłumacz_uwagi {{=}} Tutaj jest kod wartości '''tłumacz_uwagi'''.
| wikitłumacz {{=}} Tutaj jest kod wartości '''wikitłumacz'''.
| stopka {{=}} Tutaj jest kod wartości '''stopka'''.
| wyjście {{=}} Tu znajduje się wartość domyślna.
}}}}
| _1 = {{Conf|tytuł
| poza_projektem = Tutaj jest kod wartości '''poza_projektem'''.
| tytuł = Tutaj jest kod wartości '''tytuł'''.
| autor = Tutaj jest kod wartości '''autor'''.
| autor1 = Tutaj jest kod wartości '''autor1'''.
| sekcja = Tutaj jest kod wartości '''sekcja'''.
| sekcja2 = Tutaj jest kod wartości '''sekcja2'''.
| sekcja3 = Tutaj jest kod wartości '''sekcja3'''.
| sekcja4 = Tutaj jest kod wartości '''sekcja4'''.
| sekcja5 = Tutaj jest kod wartości '''sekcja5'''.
| poprzedni = Tutaj jest kod wartości '''poprzedni'''.
| następny = Tutaj jest kod wartości '''następny'''.
| adnotacje = Tutaj jest kod wartości '''adnotacje'''.
| tłumacz = Tutaj jest kod wartości '''tłumacz'''.
| tłumacz_uwagi = Tutaj jest kod wartości '''tłumacz_uwagi'''.
| wikitłumacz = Tutaj jest kod wartości '''wikitłumacz'''.
| stopka = Tutaj jest kod wartości '''stopka'''.
| wyjście = Tu znajduje się wartość domyślna.
}}
| 2 = {{Pre|{{s|ConfDomyślna|tytuł nieznany
| poza_projektem {{=}} Tutaj jest kod wartości '''poza_projektem'''.
| tytuł {{=}} Tutaj jest kod wartości '''tytuł'''.
| autor {{=}} Tutaj jest kod wartości '''autor'''.
| autor1 {{=}} Tutaj jest kod wartości '''autor1'''.
| sekcja {{=}} Tutaj jest kod wartości '''sekcja'''.
| sekcja2 {{=}} Tutaj jest kod wartości '''sekcja2'''.
| sekcja3 {{=}} Tutaj jest kod wartości '''sekcja3'''.
| sekcja4 {{=}} Tutaj jest kod wartości '''sekcja4'''.
| sekcja5 {{=}} Tutaj jest kod wartości '''sekcja5'''.
| poprzedni {{=}} Tutaj jest kod wartości '''poprzedni'''.
| następny {{=}} Tutaj jest kod wartości '''następny'''.
| adnotacje {{=}} Tutaj jest kod wartości '''adnotacje'''.
| tłumacz {{=}} Tutaj jest kod wartości '''tłumacz'''.
| tłumacz_uwagi {{=}} Tutaj jest kod wartości '''tłumacz_uwagi'''.
| wikitłumacz {{=}} Tutaj jest kod wartości '''wikitłumacz'''.
| stopka {{=}} Tutaj jest kod wartości '''stopka'''.
| wyjście {{=}} Tu znajduje się wartość domyślna.
}}}}
| _2 = {{ConfDomyślna|tytuł nieznany
| poza_projektem = Tutaj jest kod wartości '''poza_projektem'''.
| tytuł = Tutaj jest kod wartości '''tytuł'''.
| autor = Tutaj jest kod wartości '''autor'''.
| autor1 = Tutaj jest kod wartości '''autor1'''.
| sekcja = Tutaj jest kod wartości '''sekcja'''.
| sekcja2 = Tutaj jest kod wartości '''sekcja2'''.
| sekcja3 = Tutaj jest kod wartości '''sekcja3'''.
| sekcja4 = Tutaj jest kod wartości '''sekcja4'''.
| sekcja5 = Tutaj jest kod wartości '''sekcja5'''.
| poprzedni = Tutaj jest kod wartości '''poprzedni'''.
| następny = Tutaj jest kod wartości '''następny'''.
| adnotacje = Tutaj jest kod wartości '''adnotacje'''.
| tłumacz = Tutaj jest kod wartości '''tłumacz'''.
| tłumacz_uwagi = Tutaj jest kod wartości '''tłumacz_uwagi'''.
| wikitłumacz = Tutaj jest kod wartości '''wikitłumacz'''.
| stopka = Tutaj jest kod wartości '''stopka'''.
| wyjście = Tu znajduje się wartość domyślna.
}}
}}
== Opakowania kategorii ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|OpakujKategorie|{{s|Integrowanie|Zapałka/jeden|nazwa przestrzeni nazw{{=}}(main)|nazwa jednostki{{=}}Strona/Podstrona}}}}}}
| _1 = {{OpakujKategorie|{{Integrowanie|Zapałka/jeden|nazwa przestrzeni nazw=(main)|nazwa jednostki=Strona/Podstrona}}}}
| 2 = {{Tt|{{s|OpakujKategorieZeSortowaniem|{{s|Integrowanie|Zapałka/jeden|nazwa przestrzeni nazw{{=}}(main)|nazwa jednostki{{=}}Strona/Podstrona}}}}}}
| _2 = {{OpakujKategorieZeSortowaniem|{{Integrowanie|Zapałka/jeden|nazwa przestrzeni nazw=(main)|nazwa jednostki=Strona/Podstrona}}}}
}}
== Szablony styli ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|
* ''' Wikikod: ''' {{s|Div|styl{{=}}{{s|Gradient|#e8f4ff|#FFFFFF|horizontal}}|{{s|Lorem ipsum|1}}}}
* ''' Kod HTML: ''' {{Nowiki|{{Div|styl={{Gradient|#e8f4ff|#FFFFFF|horizontal}}|{{Lorem ipsum|1}}}}}}
}}
| _1 = {{Div|styl={{Gradient|#e8f4ff|#FFFFFF|horizontal}}|{{Lorem ipsum|1}}}}
| bez-overflow-wiersz_2=tak
| 2 = {{Tt|
* ''' Wikikod: ''' {{s|Div|styl{{=}}background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{s|Cień ramki|4px|4px|8px|#fc0;}}|{{s|Lorem ipsum|1}}}}
* ''' Kod HTML: ''' {{Nowiki|{{Div|styl=background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{Cień ramki|4px|4px|8px|#fc0;}}|{{Lorem ipsum|1}}}}}}
}}
| _2 = {{Div|styl=background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{Cień ramki|4px|4px|8px|#fc0;}}|{{Lorem ipsum|1}}}}
| 3 = {{Tt|
* ''' Wikikod: ''' {{s|Div|styl{{=}}background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{s|Promień ramki|16px 8px 16px 8px}}|{{s|Lorem ipsum|1}}}}
* ''' Kod HTML: ''' {{Nowiki|{{Div|styl=background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{Promień ramki|16px 8px 16px 8px}}|{{Lorem ipsum|1}}}}}}
}}
| _3 = {{Div|styl=background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{Promień ramki|16px 8px 16px 8px}}|{{Lorem ipsum|1}}}}
}}
== Szablony widżetów (ogólnie) ==
Przedstawimy tutaj szablony, które można podreperować pod widżety różnego rodzaju.
=== Przyciski ===
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Przycisk do klikania|Wikibooks:Strona główna|Napis|class{{=}}czerwony}}}}
| _1 = {{Przycisk do klikania|Wikibooks:Strona główna|Napis|class=czerwony}}
| 2 = {{Tt|{{s|Przycisk do klikania 2|Strona główna|class{{=}}mw-ui-destructive}}}}
* Przekierowanie do niego jest: {{s|Guzik}}.
| _2 = {{Przycisk do klikania 2|Strona główna|class=mw-ui-destructive}}
| 3 = {{Tt|{{s|Przycisk archiwum|szablon{{=}}LinkProjekt|strona{{=}}Prośby do administratorów|archiwum{{=}}Archiwum|nazwa{{=}}Archiwum zgłoszeń}}}}
| _3 = {{Przycisk archiwum|szablon=LinkProjekt|strona=Prośby do administratorów|archiwum=Archiwum|nazwa=Archiwum zgłoszeń}}
}}
=== Szczególne szablony widżetów ===
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|WidżetGrupa|temat{{=}}To jest temat|tekst{{=}}{{s|Lorem ipsum}}}}}}
| _1 = {{WidżetGrupa|temat=To jest temat|tekst={{Lorem ipsum}}}}
}}
== Szablony nielinkowe do symbolizacji kodu ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Parametr|zmienna|tak}}}}
* szablon do symbolizacji fragmentu kodu wywołania szablonu
| _1 = {{Parametr|zmienna|tak}}
| 2 = {{Tt|{{s|Tag|div|zawartość{{=}}Oto jest zawartość|parametry{{=}}style{{=}}"border:10px solid black"}}}}
| _2 = {{Tag|div|zawartość=Oto jest zawartość|parametry=style="border:10px solid black"}}
}}
== Szablony do wstawiania kolorów ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Colorbox|darkkhaki|Kolor khaki|Khaki|kod projektu{{=}}w}}}}
| _1 = {{colorbox|darkkhaki|Kolor khaki|Khaki|kod projektu=w}}
| 2 = {{Tt|{{s|Colorbox2|green|zielony|czcionka{{=}}black|w{{=}}200|h{{=}}50}}}}
| _2 = {{Colorbox2|green|zielony|czcionka=black|w=200|h=50}}
| 3 = {{Tt|{{s|Kolor|#4169E1|To jest tekst w kolorze RoyalBlue (#4169E1)}}}}
| _3 = {{Kolor|#4169E1|To jest tekst w kolorze RoyalBlue (#4169E1)}}
| 4 = {{Tt|{{s|Legenda|white|Afryka|w linii{{=}}tak}} {{s|Legenda|green|Ameryki||w linii{{=}}tak}} {{s|Legenda|blue|Oceania||w linii{{=}}tak}} {{s|Legenda|#ff0|Europa||w linii{{=}}tak}} {{s|Legenda|#ff2800|Azja|none|w linii{{=}}tak}}}}
| _4 = {{Legenda|white|Afryka|w linii=tak}} {{Legenda|green|Ameryki||w linii=tak}} {{Legenda|blue|Oceania||w linii=tak}} {{Legenda|#ff0|Europa||w linii=tak}} {{Legenda|#ff2800|Azja|none|w linii=tak}}
| 5 = {{Tt|{{s|Tło|#FFEBCD|Tu jest tło tekstu w kolorze BlanchedAlmond (#FFEBCD)}}}}
| _5 = {{Tło|#FFEBCD|Tu jest tło tekstu w kolorze BlanchedAlmond (#FFEBCD)}}
| 6 = {{Tt|Wywołania szablonu: {{s|s|Ui-kolory}}: „pozytyw” jeśli ma być zielony {{s|Colorbox|{{s|Ui-kolory|pozytyw}}}}, „neutral” jeśli niebieski {{s|Colorbox|{{s|Ui-kolory|neutral}}}}, „negatyw” jeśli czerwony {{s|Colorbox|{{s|ui-kolory|negatyw}}}}, „ostrzeżenie” jeżeli pomarańczowy {{s|Colorbox|{{s|Ui-kolory|ostrzeżenie}}}}}}
| _6 = Wywołania szablonu: {{s|Ui-kolory}}: „pozytyw” jeśli ma być zielony {{colorbox|{{ui-kolory|pozytyw}}}}, „neutral” jeśli niebieski {{colorbox|{{ui-kolory|neutral}}}}, „negatyw” jeśli czerwony {{colorbox|{{ui-kolory|negatyw}}}}, „ostrzeżenie” jeżeli pomarańczowy {{colorbox|{{ui-kolory|ostrzeżenie}}}}
}}
== Szablony spisu tekstów danego autora ==
{{EfektKodów
| 1 = {{Tt|{{s|Spis|Użytkownik}}}} | _1 = {{Spis|Użytkownik}}
}}
== Szablony indeksowania i do wyszukiwania podanych słów kluczowych ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|Szablon {{s|s|Kotwica}} można umieszczać w nagłówkach rozdziałów:{{Br}}
<nowiki>===</nowiki> {{s|Kotwica|roz01|klucz1}} Oto jest nagłówek <nowiki>===</nowiki>{{Br}}
A do tego rozdziału można linkować za pomocą szablonu {{s|lu|#roz01|w{{=}}Inna nazwa ustępu}}.}}
| _1 = Szablon {{s|Kotwica}} można umieszczać w nagłówkach rozdziałów:
=== {{Kotwica|roz01|klucz1}} Oto jest nagłówek ===
A do tego rozdziału można linkować za pomocą szablonu {{lu|#roz01|w=Inna nazwa ustępu}}.
| 2 = {{Tt|Szablon {{s|s|Indeksuj}} można umieszczać w nagłówkach rozdziałów:{{Br}}
<nowiki>*</nowiki> Oto jest tekst, a w nim szablon, którego nie widać{{s|Indeksuj|słowa kluczowe|unikalny link}}, do którego możemy się odwołać.{{Br}}
<nowiki>*</nowiki> A oto jest link: {{s|lu|#unikalny link|w{{=}}link do id}}}}
| _2 = Szablon {{s|Indeksuj}} można umieszczać w nagłówkach rozdziałów:
* Oto jest tekst, a w nim szablon, którego nie widać{{Indeksuj|słowa kluczowe|unikalny link}}, do którego możemy się odwołać.
* A oto jest link: {{lu|#unikalny link|w=link do id}}.
}}
== Szablony list wykorzystujące moduł {{m|Lista}} ==
{{EfektKodów|kod-rozmiar=35%
| 1 = {{Tt|{{s|Plik|plik{{=}}Simple shapes example.png|ramka{{=}}mały|pozycja{{=}}prawo|rozmiar{{=}}100px|opis{{=}}{{s|Niewypunktowana lista|jeden|dwa|trzy}}}}}}
| _1 = {{Plik|plik=Simple shapes example.png|ramka=mały|pozycja=prawo|rozmiar=100px|opis={{Niewypunktowana lista|jeden|dwa|trzy}}}}
| 2 = {{Tt|{{s|Plik|plik{{=}}Simple shapes example.png|ramka{{=}}mały|pozycja{{=}}prawo|rozmiar{{=}}100px|opis{{=}}{{s|Pozioma lista|jeden|dwa|trzy}}}}}}
| _2 = {{Plik|plik=Simple shapes example.png|ramka=mały|pozycja=prawo|rozmiar=100px|opis={{Pozioma lista|jeden|dwa|trzy}}}}
| 3 = {{Tt|{{s|Plik|plik{{=}}Simple shapes example.png|ramka{{=}}mały|pozycja{{=}}prawo|rozmiar{{=}}100px|opis{{=}}{{s|Poziomo uporządkowana lista|jeden|dwa|trzy}}}}}}
| _3 = {{Plik|plik=Simple shapes example.png|ramka=mały|pozycja=prawo|rozmiar=100px|opis={{Poziomo uporządkowana lista|jeden|dwa|trzy}}}}
| 4 = {{Tt|{{s|Plik|plik{{=}}Simple shapes example.png|ramka{{=}}mały|pozycja{{=}}prawo|rozmiar{{=}}100px|opis{{=}}{{s|Uporządkowana lista|jeden|dwa|trzy}}}}}}
| _4 = {{Plik|plik=Simple shapes example.png|ramka=mały|pozycja=prawo|rozmiar=100px|opis={{Uporządkowana lista|jeden|dwa|trzy}}}}
| 5 = {{Tt|{{s|Plik|plik{{=}}Simple shapes example.png|ramka{{=}}mały|pozycja{{=}}prawo|rozmiar{{=}}100px|opis{{=}}{{s|Wypunktowana lista|jeden|dwa|trzy}}}}}}
| _5 = {{Plik|plik=Simple shapes example.png|ramka=mały|pozycja=prawo|rozmiar=100px|opis={{Wypunktowana lista|jeden|dwa|trzy}}}}
}}
== Szablony rysunków ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|MapaObrazu|obraz{{=}}Wikipedia-logo.svg|rozmiar{{=}}x35px|link{{=}}{{s|LinkPediaGłówna|_|Wikipedia|bez znaczników{{=}}tak}}}}}}
| _1 = {{MapaObrazu|obraz=Wikipedia-logo.svg|rozmiar=x35px|link={{lpg|_|Wikipedia|bez znaczników=tak}}}}
| 2 = {{OverflowWiersz|styl=max-height:300px;|{{Pre|
{{s|MapaObrazu
| obraz {{=}} JoshuaReynoldsParty.jpg
| ramka {{=}} mały
| pozycja {{=}} centruj
| rozmiar {{=}} 400px
| alt {{=}} Dining room with nine men seated around a table. The dinner has been finished, and a large man at the head talks and gesticulates while the others eagerly listen. The men wear wigs and clothing of late 18th century Britain, and the furniture, hangings, and chandelier are of similar vintage. A liveried servant is entering with a tray bearing two high-shouldered decanters of wine.
| opis {{=}} Image map example. Clicking on a person in the picture causes the browser to load the appropriate article.
| wielokąt {{=}} 133 343 124 287 159 224 189 228 195 291 222 311 209 343 209 354 243 362 292 466 250 463
| wielokąt 2 {{=}} 76 224 84 255 43 302 62 400 123 423 121 361 137 344 122 290 111 234 96 225
| wielokąt 3 {{=}} 190 276 208 240 229 228 247 238 250 258 286 319 282 323 223 323 220 301 200 295
| wielokąt 4 {{=}} 308 317 311 270 328 261 316 246 320 228 343 227 357 240 377 274 366 284 352 311 319 324
| wielokąt 5 {{=}} 252 406 313 343 341 343 366 280 383 273 372 251 378 222 409 228 414 280 420 292 390 300 374 360 359 437 306 418 313 391 272 415
| wielokąt 6 {{=}} 455 238 484 253 505 303 495 363 501 377 491 443 429 439 423 375 466 352
| wielokąt 7 {{=}} 501 279 546 237 567 239 572 308 560 326 537 316 530 300 502 289
| wielokąt 8 {{=}} 572 453 591 446 572 373 603 351 562 325 592 288 573 260 573 248 591 243 615 254 637 280 655 334 705 396 656 419 625 382 609 391 613 453
| wielokąt 9 {{=}} 503 192 511 176 532 176 534 200 553 219 554 234 541 236 525 261 506 261 511 220 515 215
| link wielokąt {{=}} {{s|lhg|Samuel Johnson|Dr Johnson - Dictionary writer|bez znaczników{{=}}tak}}
| link wielokąt 2 {{=}} {{s|lhg|James Boswell|Boswell - Biographer|bez znaczników{{=}}tak}}
| link wielokąt 3 {{=}} {{s|lhg|Joshua Reynolds|Sir Joshua Reynolds - Host|bez znaczników{{=}}tak}}
| link wielokąt 4 {{=}} {{s|lhg|David Garrick|David Garrick - actor|bez znaczników{{=}}tak}}
| link wielokąt 5 {{=}} {{s|lhg|Edmund Burke|Edmund Burke - statesman|bez znaczników{{=}}tak}}
| link wielokąt 6 {{=}} {{s|lhg|Charles Burney|Charles Burney - music historian|bez znaczników{{=}}tak}}
| link wielokąt 7 {{=}} {{s|lhg|Thomas Warton|Thomas Warton - poet laureate|bez znaczników{{=}}tak}}
| link wielokąt 8 {{=}} {{s|lhg|Oliver Goldsmith|Oliver Goldsmith - writer|bez znaczników{{=}}tak}}
| link wielokąt 9 {{=}} {{s|lhg|Francis Barber|servant - poss. Francis Barber|bez znaczników{{=}}tak}}
| prostokąt {{=}} 418 220 452 287
| prostokąt 2 {{=}} 450 86 584 188
| prostokąt 3 {{=}} 286 87 376 191
| prostokąt 4 {{=}} 12 10 702 500
| link prostokąt {{=}} {{s|lhg|Pasquale Paoli|Pasqual Paoli - Corsican patriot|bez znaczników{{=}}tak}}
| link prostokąt 2 {{=}} {{s|lhg|Joshua Reynolds|prob.The Infant Academy 1782|bez znaczników{{=}}tak}}
| link prostokąt 3 {{=}} {{s|lhg|Joshua Reynolds|An unknown painting|bez znaczników{{=}}tak}}
| link prostokąt 4 {{=}} {{s|lhg|The Club (Literary Club)|Use button to enlarge or use hyperlinks|bez znaczników{{=}}tak}}
| koło {{=}} 100 141 20
| link koło {{=}} {{s|lhg|Joshua Reynolds|An unknown portrait|bez znaczników{{=}}tak}}
}}}}
}}
| _2 = {{MapaObrazu
| obraz = JoshuaReynoldsParty.jpg
| ramka = mały
| pozycja = centruj
| rozmiar = 400px
| alt = Dining room with nine men seated around a table. The dinner has been finished, and a large man at the head talks and gesticulates while the others eagerly listen. The men wear wigs and clothing of late 18th century Britain, and the furniture, hangings, and chandelier are of similar vintage. A liveried servant is entering with a tray bearing two high-shouldered decanters of wine.
| opis = Image map example. Clicking on a person in the picture causes the browser to load the appropriate article.
| wielokąt = 133 343 124 287 159 224 189 228 195 291 222 311 209 343 209 354 243 362 292 466 250 463
| wielokąt 2 = 76 224 84 255 43 302 62 400 123 423 121 361 137 344 122 290 111 234 96 225
| wielokąt 3 = 190 276 208 240 229 228 247 238 250 258 286 319 282 323 223 323 220 301 200 295
| wielokąt 4 = 308 317 311 270 328 261 316 246 320 228 343 227 357 240 377 274 366 284 352 311 319 324
| wielokąt 5 = 252 406 313 343 341 343 366 280 383 273 372 251 378 222 409 228 414 280 420 292 390 300 374 360 359 437 306 418 313 391 272 415
| wielokąt 6 = 455 238 484 253 505 303 495 363 501 377 491 443 429 439 423 375 466 352
| wielokąt 7 = 501 279 546 237 567 239 572 308 560 326 537 316 530 300 502 289
| wielokąt 8 = 572 453 591 446 572 373 603 351 562 325 592 288 573 260 573 248 591 243 615 254 637 280 655 334 705 396 656 419 625 382 609 391 613 453
| wielokąt 9 = 503 192 511 176 532 176 534 200 553 219 554 234 541 236 525 261 506 261 511 220 515 215
| link wielokąt = {{lhg|Samuel Johnson|Dr Johnson - Dictionary writer|bez znaczników=tak}}
| link wielokąt 2 = {{lhg|James Boswell|Boswell - Biographer|bez znaczników=tak}}
| link wielokąt 3 = {{lhg|Joshua Reynolds|Sir Joshua Reynolds - Host|bez znaczników=tak}}
| link wielokąt 4 = {{lhg|David Garrick|David Garrick - actor|bez znaczników=tak}}
| link wielokąt 5 = {{lhg|Edmund Burke|Edmund Burke - statesman|bez znaczników=tak}}
| link wielokąt 6 = {{lhg|Charles Burney|Charles Burney - music historian|bez znaczników=tak}}
| link wielokąt 7 = {{lhg|Thomas Warton|Thomas Warton - poet laureate|bez znaczników=tak}}
| link wielokąt 8 = {{lhg|Oliver Goldsmith|Oliver Goldsmith - writer|bez znaczników=tak}}
| link wielokąt 9 = {{lhg|Francis Barber|servant - poss. Francis Barber|bez znaczników=tak}}
| prostokąt = 418 220 452 287
| prostokąt 2 = 450 86 584 188
| prostokąt 3 = 286 87 376 191
| prostokąt 4 = 12 10 702 500
| link prostokąt = {{lhg|Pasquale Paoli|Pasqual Paoli - Corsican patriot|bez znaczników=tak}}
| link prostokąt 2 = {{lhg|Joshua Reynolds|prob.The Infant Academy 1782|bez znaczników=tak}}
| link prostokąt 3 = {{lhg|Joshua Reynolds|An unknown painting|bez znaczników=tak}}
| link prostokąt 4 = {{lhg|The Club (Literary Club)|Use button to enlarge or use hyperlinks|bez znaczników=tak}}
| koło = 100 141 20
| link koło = {{lhg|Joshua Reynolds|An unknown portrait|bez znaczników=tak}}
}}
| 3 = {{Tt|{{s|Plik|plik{{=}}Cyanocitta-cristata-004.jpg|ramka{{=}}mały|pozycja{{=}}prawo|opis{{=}}Modrosójka błękitna|alt{{=}}Roślina|link{{=}}w:Rośliny}}}}
| _3 = {{Plik|plik=Cyanocitta-cristata-004.jpg|ramka=mały|pozycja=prawo|opis=Modrosójka błękitna|alt=Roślina|link=w:Rośliny}}
| 4 = {{Tt|{{s|Rysunek|plik{{=}}Coord_planes_color_point_pl.svg|uchwyt{{=}}A|opis{{=}}To jest opis rysunku|pozycja{{=}}prawo|rozmiar{{=}}200px}}
{{DivClear|left}}}}
| _4 = {{Rysunek|plik=Coord_planes_color_point_pl.svg|uchwyt=A|opis=To jest opis rysunku|pozycja=prawo|rozmiar=200px}}
{{DivClear|left}}
| 5 = {{Pre|{{s|Galeria
| 1 {{=}} Diphasiastrum alpinum distribution in Poland.svg
| _1 {{=}} Występowanie widlicza alpejskiego w Polsce.
| 2 {{=}} DIphasiastrum alpinum Diphasiastrum oellgaardii 01092013.JPG
| _2 {{=}} Widlicz alpejski na alpejskiej murawie.
| 3 {{=}} Diphasiastrum alpinum.jpg
| _3 {{=}} Widlicz alpejski przed rozwinięciem kłosów zarodnionośnych.
| 4 {{=}} Diphasiastrum alpinum 100911.JPG
| _4 {{=}} Widlicz alpejski z kłosami zarodnionośnymi.
| 5 {{=}} Diphasiastrum alpinum, J. Garmendia 2409.JPG
| _5 {{=}} Widlicz alpejski z kłosami zarodnionośnymi.
| 6 {{=}} Diphasiastrum alpinum 100911c.JPG
| _6 {{=}} Widlicz alpejski z dojrzałymi kłosami zarodnionośnymi.
}}}}
| _5 = {{Galeria
| 1 = Diphasiastrum alpinum distribution in Poland.svg
| _1 = Występowanie widlicza alpejskiego w Polsce.
| 2 = DIphasiastrum alpinum Diphasiastrum oellgaardii 01092013.JPG
| _2 = Widlicz alpejski na alpejskiej murawie.
| 3 = Diphasiastrum alpinum.jpg
| _3 = Widlicz alpejski przed rozwinięciem kłosów zarodnionośnych.
| 4 = Diphasiastrum alpinum 100911.JPG
| _4 = Widlicz alpejski z kłosami zarodnionośnymi.
| 5 = Diphasiastrum alpinum, J. Garmendia 2409.JPG
| _5 = Widlicz alpejski z kłosami zarodnionośnymi.
| 6 = Diphasiastrum alpinum 100911c.JPG
| _6 = Widlicz alpejski z dojrzałymi kłosami zarodnionośnymi.
}}
}}
== Rozmieszczenie tekstu na stronie ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|{{s|Kolumny|2|
Zdobycze niemieckie na zachodzie słowiańskim 61
Pojezierze Pruskie i Pomorskie 68 - 69
Dolina Warty i Noteci 92.
Wyżyna i zatoka śląska 108—9.
}}}}
| _1 = {{Kolumny|2|
Zdobycze niemieckie na zachodzie słowiańskim 61
Pojezierze Pruskie i Pomorskie 68 - 69
Dolina Warty i Noteci 92.
Wyżyna i zatoka śląska 108—9.
}}
| h_2 = 450px
| 2 = {{Pre|{{s|Układ wielokolumnowy|szerokość {{=}} 200px|
* Agami
* Aleksandria – Port Wschodni
* Aleksandria – Port Zachodni
* Amreya
* Anfoushi
* Assafra
* Attarine
* Azarita (''Mazarita'', oryginalnie ''Lazarette'')
* Bab Sidra
* Bahari
* Bachus
* Bulkeley (''Bokla'')
* Burg el-Arab
* Cleopatra
* Dekheila
* Śródmieście
* Fleming
* Gabbari (''Qabbari'')
* Gianaclis
* Glym (skrót od ''Glymenopoulos'')
* Gumrok
* Hadara
* Ibrahimeya
* Kabbary (''Qabbary'')
* King Mariout
* Kafr Abdu
* Karmous (''Karmouz'')
* Kom el-Dik (''Kom el-Dekka'')
* Labban
* Laurent
* Maamoura Beach
* Maamoura
* Mafrouza
* Mandara
* Manshiyya
* Mex
* Miami
* Montaza
* Muharram Bey
* Mustafa Kamel
* Ramleh (''el-Raml'')
* Ras el-Tin
* Rushdy
* Saba Pasha
* San Stefano
* Shatby
* Schutz
* Sidi Bishr
* Sidi Gaber
* Smouha
* Sporting
* Stanley
* Syouf
* Tharwat
* Victoria
* Wardeyan
* Zizinia
}}}}
| _2 = {{Układ wielokolumnowy|szerokość = 200px|
* Agami
* Aleksandria – Port Wschodni
* Aleksandria – Port Zachodni
* Amreya
* Anfoushi
* Assafra
* Attarine
* Azarita (''Mazarita'', oryginalnie ''Lazarette'')
* Bab Sidra
* Bahari
* Bachus
* Bulkeley (''Bokla'')
* Burg el-Arab
* Cleopatra
* Dekheila
* Śródmieście
* Fleming
* Gabbari (''Qabbari'')
* Gianaclis
* Glym (skrót od ''Glymenopoulos'')
* Gumrok
* Hadara
* Ibrahimeya
* Kabbary (''Qabbary'')
* King Mariout
* Kafr Abdu
* Karmous (''Karmouz'')
* Kom el-Dik (''Kom el-Dekka'')
* Labban
* Laurent
* Maamoura Beach
* Maamoura
* Mafrouza
* Mandara
* Manshiyya
* Mex
* Miami
* Montaza
* Muharram Bey
* Mustafa Kamel
* Ramleh (''el-Raml'')
* Ras el-Tin
* Rushdy
* Saba Pasha
* San Stefano
* Shatby
* Schutz
* Sidi Bishr
* Sidi Gaber
* Smouha
* Sporting
* Stanley
* Syouf
* Tharwat
* Victoria
* Wardeyan
* Zizinia
}}
}}
== Szablony wykorzystywane do budowy innych szablonów ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|test2{{=}}|2{{=}}Tak tutaj|test3{{=}}tak|3{{=}}Tak, ale tutaj}}}}
| _1 = {{Pierwszy niepusty|1=|test2=|2=Tak tutaj|test3=tak|3=Tak, ale tutaj}}
| 2 = {{Tt|{{s|Policz linki|[<nowiki>[Ala]], [[Ola]], [[Ela]], [[Ula]]</nowiki>}}}}
| _2 = {{Policz linki|[[Ala]], [[Ola]], [[Ela]], [[Ula]]}}
}}
== Szablony przedstawiające informacje techniczne opisu ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Pre|{{s|Szablonowy opis pudełka
| opis parametrów szablonu {{=}} tak
| nazwa szablonu {{=}} Lua
}}
{{Hr}}
{{s|Szablonowy opis pudełka
| nazwa szablonu {{=}} Lua
}}
}}
| _1 = {{Szablonowy opis pudełka
| opis parametrów szablonu = tak
| nazwa szablonu = Lua
}}
{{Hr}}
{{Szablonowy opis pudełka
| nazwa szablonu = Lua
}}
}}
== Ściąganie elementów z {{NS|k=d|pk=d|l=tak}} ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Wersja oprogramowania|id{{=}}Q11248}}}}
* Pobieranie danych, z Wikidanych, o {{Parametr|id|Q11248}} dla systemu Windows XP.
| _1 = {{Wersja oprogramowania|id=Q11248}}
}}
== Szablony techniczne do wstawienia do tekstu ==
{{EfektKodów
| 1 = {{Tt|{{s|Akord|c2{{=}}|e2{{=}}|g2{{=}}}}}}
| _1 = {{Akord|c2=|e2=|g2=}}
| 2 = {{Tt|{{s|Klawisz|Enter}}}}
| _2 = {{Klawisz|Enter}}
| 3 = {{Tt|{{s|Rummikub|czerni|black}}}}
| _3 = {{Rummikub|czerni|black}}
}}
== Szablony map lokalizacyjnych ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Mapa lokalizacyjna/punkt|49°39′00″N 21°10′00″E|opis{{=}}Gorlice}}}}
| _1 = {{Nowiki|{{Mapa lokalizacyjna/punkt|49°39′00″N 21°10′00″E|opis=Gorlice}}}}
| 2 = {{Pre|{{s|Mapa lokalizacyjna
| mapa {{=}} Polska
| wariant {{=}} 1945
| punkty mapy {{=}}
{{s|Mapa lokalizacyjna/punkt|49°39′00″N 21°10′00″E|opis{{=}}Gorlice}}
}}}}
| _2 = {{Mapa lokalizacyjna
| mapa = Polska
| wariant = 1945
| punkty mapy =
{{Mapa lokalizacyjna/punkt|49°39′00″N 21°10′00″E|opis=Gorlice}}
}}
| 3 = {{Pre|{{s|Tabelka|klasa{{=}}infobox|{{s|Infobox mapa lokalizacyjna
| mapa {{=}} Warszawa
| wariant {{=}} 1997
| współrzędne {{=}} 52°17'04.4"N 20°56'31.7"E
| opis {{=}} Harcerski Klub Łączności SP5ZIP{{s|Br}}im. hm. Wacława Łukaszewicza
| kategoria {{=}} Jednostka harcerska infobox
}}}}
}}
| _3 = {{Tabelka|klasa=infobox|{{Infobox mapa lokalizacyjna
| mapa = Warszawa
| wariant = 1997
| współrzędne = 52°17'04.4"N 20°56'31.7"E
| opis = Harcerski Klub Łączności SP5ZIP{{Br}}im. hm. Wacława Łukaszewicza
| kategoria = Jednostka harcerska infobox
}}}}
| 4 = {{Tt|{{s|Współrzędne|57°18′22″N 4°27′32″W|umieść{{=}}w tekście}}}} i jego przekierowanie {{Tt|{{s|Koordynaty|57°18′22″N 4°27′32″W|umieść{{=}}w tekście}}}}
| _4 = {{Współrzędne|57°18′22″N 4°27′32″W|umieść=w tekście}}
}}
== Szablony flag ==
=== Szablon bander {{s|Bandera}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Bandera|POL}}}} | _1 = {{Bandera|POL}}
| 2 = {{Tt|{{s|Bandera|POL|PRL}}}} | _2 = {{Bandera|POL|PRL}}
| 3 = {{Tt|{{s|Bandera|POL|wariant{{=}}PRL}}}} | _3 = {{Bandera|POL|wariant=PRL}}
| 4 = {{Tt|{{s|Bandera|POL|nazwa{{=}}Kraków}}}} | _4 = {{Bandera|POL|nazwa=Kraków}}
| 5 = {{Tt|{{s|Bandera|POL|rozmiar{{=}}40px}}}} | _5 = {{Bandera|POL|rozmiar=40px}}
| 6 = {{Tt|{{s|Bandera|POL|altlink{{=}}Kraków}}}} | _6 = {{Bandera|POL|altlink=Kraków}}
}}
=== Szablon bander {{s|BanderaD}} ===
{{EfektKodów
| 1 = {{Tt|{{s|BanderaD|POL}}}} | _1 = {{BanderaD|POL}}
}}
=== Szablon flaga {{s|Flaga}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Flaga|POL}}}} | _1 = {{Flaga|POL}}
| 2 = {{Tt|{{s|Flaga|POL|RON}}}} | _2 = {{Flaga|POL|RON}}
| 3 = {{Tt|{{s|Flaga|POL|wariant{{=}}RON}}}} | _3 = {{Flaga|POL|wariant=RON}}
| 4 = {{Tt|{{s|Flaga|POL|rozmiar{{=}}40px}}}} | _4 = {{Flaga|POL|rozmiar=40px}}
| 5 = {{Tt|{{s|Flaga|POL|altlink{{=}}Kraków}}}} | _5 = {{Flaga|POL|altlink=Kraków}}
}}
==== Szablony flag podręczników ====
{{EfektKodów
| 1 = {{Tt|{{s|En}}}} | _1 = {{En}}
| 2 = {{Tt|{{s|Esp}}}} | _2 = {{Esp}}
| 3 = {{Tt|{{s|Gre}}}} | _3 = {{Gre}}
| 4 = {{Tt|{{s|Pl}}}} | _4 = {{Pl}}
| 5 = {{Tt|{{s|Slv}}}} | _5 = {{Slv}}
| 6 = {{Tt|{{s|Svk}}}} | _6 = {{Svk}}
}}
==== Brak flagi {{s|Brak flagi}} ====
{{EfektKodów
| 1 = {{Tt|{{s|Brak flagi|{{s|lpg|Polska}}}}}} | _1 = {{Brak flagi|{{lpg|Polska}}}}
}}
=== Szablon {{s|Flaga grafika}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Flaga grafika|Flag of None.svg}}}} | _1 = {{Flaga grafika|Flag of None.svg}}
| 2 = {{Tt|{{s|Flaga grafika|Flag of None.svg|Lorem ipsum}}}} | _2 = {{Flaga grafika|Flag of None.svg|Lorem ipsum}}
}}
=== Szablon {{s|Ilustracja flagi}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Ilustracja flagi|POL}}}} | _1 = {{Ilustracja flagi|POL}}
| 2 = {{Tt|{{s|Ilustracja flagi|POL|RON}}}} | _2 = {{Ilustracja flagi|POL|RON}}
| 3 = {{Tt|{{s|Ilustracja flagi|POL|wariant{{=}}RON}}}} | _3 = {{Ilustracja flagi|POL|wariant=RON}}
}}
=== Szablon {{s|Państwo}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Państwo|Polska}}}} | _1 = {{Państwo|Polska}}
| 2 = {{Tt|{{s|Państwo|Polska|PRL}}}} | _2 = {{Państwo|Polska|PRL}}
| 3 = {{Tt|{{s|Państwo|Polska|nazwa{{=}}Kraków}}}} | _3 = {{Państwo|Polska|nazwa=Kraków}}
| 4 = {{Tt|{{s|Państwo|Polska|rozmiar{{=}}40px}}}} | _4 = {{Państwo|Polska|rozmiar=40px}}
| 5 = {{Tt|{{s|Państwo|Polska|altlink{{=}}Kraków}}}} | _5 = {{Państwo|Polska|altlink=Kraków}}
}}
=== Szablony państw inne niż {{s|Państwo}} ===
{{EfektKodów
| 1 = {{Tt|{{s|PaństwoD|Polska}}}} | _1 = {{PaństwoD|Polska}}
| 2 = {{Tt|{{s|PaństwoL|Polska}}}} | _2 = {{PaństwoL|Polska}}
| 3 = {{Tt|{{s|PaństwoR|Polska|LIO}}}} | _3 = {{PaństwoR|Polska|LIO}}
| 4 = {{Tt|{{s|Państwolink|Polska|Kraków|wariant{{=}}PRL}}}} | _4 = {{Państwolink|Polska|Kraków|wariant=PRL}}
| 5 = {{Tt|{{s|Państwoskrót|Polska}}}} | _5 = {{Państwoskrót|Polska}}
}}
=== Szablony państw grafik - {{s|Państwo grafika}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Państwo grafika|Flag of None.svg|Lorem ipsum}}}} | _1 = {{Państwo grafika|Flag of None.svg|Lorem ipsum}}
| 2 = {{Tt|{{s|Państwo grafika|Flag of None.svg|Lorem ipsum|link}}}} | _2 = {{Państwo grafika|Flag of None.svg|Lorem ipsum|link}}
| 3 = {{Tt|{{s|Państwo grafika|Red flag.svg|Lorem ipsum|rozmiar{{=}}40x40px}}}} | _3 = {{Państwo grafika|Red flag.svg|Lorem ipsum|rozmiar=40x40px}}
| 4 = {{Tt|{{s|Państwo grafika|Ethiopian Pennants.svg|rozmiar{{=}}40x40px|Lorem ipsum}}}} | _4 = {{Państwo grafika|Ethiopian Pennants.svg|rozmiar=40x40px|Lorem ipsum}}
| 5 = {{Tt|{{s|Państwo grafika|Ethiopian Pennants.svg|Lorem ipsum|rozmiar{{=}}40x40px|border{{=}}}}}} | _5 = {{Państwo grafika|Ethiopian Pennants.svg|Lorem ipsum|rozmiar=40x40px|border=}}
}}
=== Szablony państw grafik - {{s|PaństwoL grafika}} ===
{{EfektKodów
| 1 = {{Tt|{{s|PaństwoL grafika|Flag of None.svg|Lorem ipsum}}}} | _1 = {{PaństwoL grafika|Flag of None.svg|Lorem ipsum}}
| 2 = {{Tt|{{s|PaństwoL grafika|Flag of None.svg|Lorem ipsum|link}}}} | _2 = {{PaństwoL grafika|Flag of None.svg|Lorem ipsum|link}}
| 3 = {{Tt|{{s|PaństwoL grafika|Red flag.svg|Lorem ipsum|rozmiar{{=}}40x40px}}}} | _3 = {{PaństwoL grafika|Red flag.svg|Lorem ipsum|rozmiar=40x40px}}
| 4 = {{Tt|{{s|PaństwoL grafika|Ethiopian Pennants.svg|rozmiar{{=}}40x40px|Lorem ipsum}}}} | _4 = {{PaństwoL grafika|Ethiopian Pennants.svg|rozmiar=40x40px|Lorem ipsum}}
| 5 = {{Tt|{{s|PaństwoL grafika|Ethiopian Pennants.svg|Lorem ipsum|rozmiar{{=}}40x40px|border{{=}}}}}} | _5 = {{PaństwoL grafika|Ethiopian Pennants.svg|Lorem ipsum|rozmiar=40x40px|border=}}
}}
=== Szablony mistrzostw - {{s|Państwo mistrzostwa}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Państwo mistrzostwa|Polska|LMŚ 2013}}}} | _1 = {{Państwo mistrzostwa|Polska|LMŚ 2013}}
| 2 = {{Tt|{{s|Państwo mistrzostwa|POL|LMŚ 2013}}}} | _2 = {{Państwo mistrzostwa|POL|LMŚ 2013}}
| 3 = {{Tt|{{s|Państwo mistrzostwa|Stany Zjednoczone|LMŚ 2013}}}} | _3 = {{Państwo mistrzostwa|Stany Zjednoczone|LMŚ 2013}}
}}
=== Szablony skrótów map państw ===
{{EfektKodów
| 1 = {{Tt|{{s|Mapa|Polska}}}} | _1 = {{Mapa|Polska}}
| 2 = {{Tt|{{s|Mapa|Polska|PRL}}}} | _2 = {{Mapa|Polska|PRL}}
| 3 = {{Tt|{{s|Mapa|Polska|wariant{{=}}PRL}}}} | _3 = {{Mapa|Polska|wariant=PRL}}
}}
=== Szablony jednostek administracyjnych ===
{{EfektKodów
| 1 = {{Tt|{{s|Jednostki administracyjne|Polska}}}} | _1 = {{Jednostki administracyjne|Polska}}
| 2 = {{Tt|{{s|Jednostki administracyjne|Polska|PRL}}}} | _2 = {{Jednostki administracyjne|Polska|PRL}}
| 3 = {{Tt|{{s|Jednostki administracyjne|Polska|wariant{{=}}PRL}}}} | _3 = {{Jednostki administracyjne|Polska|wariant=PRL}}
}}
=== Reprezentacja ===
{{EfektKodów
| 1 = {{Tt|{{s|Reprezentacja|POL|pn}}}} | _1 = {{Reprezentacja|POL|pn}}
| 2 = {{Tt|{{s|ReprezentacjaL|POL|pn}}}} | _2 = {{ReprezentacjaL|POL|pn}}
| 3 = {{Tt|{{s|ReprezentacjaD|POL|pn}}}} | _3 = {{ReprezentacjaD|POL|pn}}
| 4 = {{Tt|{{s|Reprezentacja|DEU|wariant{{=}}DDR|pn}}}} | _4 = {{Reprezentacja|DEU|wariant=DDR|pn}}
| 5 = {{Tt|{{s|Reprezentacja|DEU|pn|rodzaj{{=}}U-21}}}} | _5 = {{Reprezentacja|DEU|pn|rodzaj=U-21}}
| 6 = {{Tt|{{s|ReprezentacjaL|DEU|wariant{{=}}DDR|pn}}}} | _6 = {{ReprezentacjaL|DEU|wariant=DDR|pn}}
| 7 = {{Tt|{{s|ReprezentacjaL|DEU|pn|rodzaj{{=}}U-21}}}} | _7 = {{ReprezentacjaL|DEU|pn|rodzaj=U-21}}
| 8 = {{Tt|{{s|ReprezentacjaD|DEU|wariant{{=}}DDR|pn}}}} | _8 = {{ReprezentacjaD|DEU|wariant=DDR|pn}}
| 9 = {{Tt|{{s|ReprezentacjaD|DEU|pn|rodzaj{{=}}U-21}}}} | _9 = {{ReprezentacjaD|DEU|pn|rodzaj=U-21}}
}}
=== Szablony związane z militariami ===
{{EfektKodów
| 1 = {{Tt|{{s|FIAV|100000}}}} | _1 = {{FIAV|100000}}
| 2 = {{Tt|{{s|FIAV|proposal}}}} | _2 = {{FIAV|proposal}}
}}
=== Szablony związane z rugby ===
{{EfektKodów
| 1 = {{Tt|{{s|Zespół ru|Blues|L}}}} | _1 = {{Zespół ru|Blues|L}}
| 2 = {{Tt|{{s|Zespół ru|Connacht|P}}}} | _2 = {{Zespół ru|Connacht|P}}
| 3 = {{Tt|{{s|Zespół ru|Quins}}}} | _3 = {{Zespół ru|Quins}}
| 4 = {{Tt|{{s|Zespół ru|Cats|L|1910}}}} | _4 = {{Zespół ru|Cats|L|1910}}
}}
=== Szablony terytorium ===
{{EfektKodów
| 1 = {{Tt|{{s|Terytorium zależne|MTQ}}}} | _1 = {{Terytorium zależne|MTQ}}
| 2 = {{Tt|{{s|Nazwa terytorium|MTQ}}}} | _2 = {{Nazwa terytorium|MTQ}}
}}
== Szablony ikon ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|Ikona|archiwum|50|dosuń{{=}}do prawej|alt{{=}}Wyświetlany zamiast rysunku.|opis{{=}}Oto jest archiwum.}}}}}
| _1 = {{Ikona|archiwum|50|dosuń=do prawej|alt=Wyświetlany zamiast rysunku.|opis=Oto jest archiwum.}}
| 2 = {{Tt|{{s|Ikona|meta|75|dosuń{{=}}do lewej|alt{{=}}Wyświetlany zamiast rysunku.|opis{{=}}Oto jest archiwum.}}}}}
| _2 = {{Ikona|meta|75|dosuń=do lewej|alt=Wyświetlany zamiast rysunku.|opis=Oto jest archiwum.}}
| 3 = {{Tt|{{s|Ikona|promocja|35|dosuń{{=}}do środka|alt{{=}}Wyświetlany zamiast rysunku.|opis{{=}}Oto jest archiwum.}}}}}
| _3 = {{Ikona|promocja|35|dosuń=do środka|alt=Wyświetlany zamiast rysunku.|opis=Oto jest archiwum.}}
}}
== Testowanie szablonu ==
{{EfektKodów
| 1 = {{Tt|{{s|Przypadek testowy|{{=}}Ambox{{s|!}}brudnopis{{s|{{=}}}}Ambox{{s|!}}pionowo|typ{{=}}poważny}}}}
| _1 = Ten szablon generuje tabelę stosowaną na {{lpr|Brudnopisy i strony testowe szablonów|stronach testowych szablonów}}, która zestawia obok siebie dwie wersje szablonów – szablon główny i jego wersję z brudnopisu. Oba przedstawiane szablony wykorzystują te same parametry.
{{Hr}}
{{Przypadek testowy|=Ambox{{!}}brudnopis{{=}}Ambox{{!}}pionowo|typ=poważny}}
}}
== Szablony ciągów i dopasowywanie do wzorca ==
{{EfektKodów|kod-rozmiar=35%
| 1 = {{Tt|{{s|Długość|ciąg{{=}}abc}}}}
| _1 = {{Długość|ciąg=abc}}
| 2 = {{Tt|{{s|Subciąg|ciąg{{=}}1234567|od{{=}}2|do{{=}}4}}}}
| _2 = {{Subciąg|ciąg=1234567|od=2|do=4}}
| 3 = {{Tt|{{s|Subciąg2|ciąg{{=}}1234567|od{{=}}2|długość{{=}}3}}}}
| _3 = {{Subciąg2|ciąg=1234567|od=2|długość=3}}
| 4 = {{Tt|{{s|Dopasuj|ciąg{{=}}123a45b67|wzór{{=}}%a+|które{{=}}2}}}}
| _4 = {{Dopasuj|ciąg=123a45b67|wzór=%a+|które=2}}
| 5 = {{Tt|{{s|Pobierz|ciąg{{=}}1234567|pozycja{{=}}5}}}}
| _5 = {{Pobierz|ciąg=1234567|pozycja=5}}
| 6 = {{Tt|{{s|Wyszukaj|ciąg{{=}}123s456|cel{{=}}s}}}}
| _6 = {{Wyszukaj|ciąg=123s456|cel=s}}
| 7 = {{Tt|{{s|Znajdź|ciąg{{=}}123%s456|cel{{=}}%a}}}}
| _7 = {{Znajdź|ciąg=123%s456|cel=%a}}
| 8 = {{Tt|{{s|Zastąp|ciąg{{=}}123s45s6|wzór{{=}}%a|zamień{{=}}q}}}}
| _8 = {{Zastąp|ciąg=123s45s6|wzór=%a|zamień=q}}
| 9 = {{Tt|{{s|Powtórz|ciąg{{=}}123s456|ile{{=}}2}}}}
| _9 = {{Powtórz|ciąg=123s456|ile=2}}
| 10 = {{Tt|{{s|Łącz|łącznik{{=}}.|parametr{{=}}1|parametr 2{{=}}2|4{{=}}3|parametr 4{{=}}4}}}}
| _10 = {{Łącz|łącznik=.|parametr=1|parametr 2=2|4=3|parametr 4=4}}
}}
== Szablony parsera tag ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|FormularzWejścia|typ{{=}}search|przestrzenie{{=}}Wikijunior|przerwa{{=}}no|szukaj{{=}}Szukaj!}}}}
| _1 = {{FormularzWejścia|typ=search|przestrzenie=Wikijunior|przerwa=no|szukaj=Szukaj!}}
| h_2 = 150px
| 2 = {{Tt|{{s|ListaKategorii|Astronomia i fizyka}}}}
| _2 = {{ListaKategorii|Astronomia i fizyka}}
}}
== Wyświetlane dymki po najechaniu myszką ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|W tym okresie ich genomy pozostają w zakażonych komórkach jako formy latentne. W stanie utajenia ekspresja informacji genetycznej faga jest ograniczona tylko do genów, których produkty są odpowiedzialne za utrzymanie tego stanu (lizogenii) {{s|Odnośnik|[Fortier & Sekulovic, 2013]|Fortier, L. C., & Sekulovic, O. (2013). Importance of prophages to evolution and virulence of bacterial pathogens. Virulence, 4(5), 354-365.}}.}}
| _1 = W tym okresie ich genomy pozostają w zakażonych komórkach jako formy latentne. W stanie utajenia ekspresja informacji genetycznej faga jest ograniczona tylko do genów, których produkty są odpowiedzialne za utrzymanie tego stanu (lizogenii) {{Odnośnik|[Fortier & Sekulovic, 2013]|Fortier, L. C., & Sekulovic, O. (2013). Importance of prophages to evolution and virulence of bacterial pathogens. Virulence, 4(5), 354-365.}}.
}}
{{BrClear}}
<noinclude>{{Kategoria|Wizualne opisy techniczne szablonów}}</noinclude>
fcm4p1pff335c5r0287fmivepwd3b3c
Wikibooks:Mechanizm MediaWiki
4
60755
560652
559348
2026-11-08T23:25:42Z
Persino
2851
/* Opis wizualny */
560652
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 {{NS|pk=mj|w=tak|l=tak}}.
== Szablony ==
Przedstawiamy tutaj w dwóch formach opis wszystkich szablonów, dostępnych na polskim {{NS|pk=mj|l=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/Warunkowe}}, {{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}}), {{m|Html}} ({{lru|Moduły/Html}}), {{m|Nazwy}} ({{lru|Moduły/Nazwy}}), {{m|Książkowe}} ({{lru|Moduły/Książkowe}}), {{m|Pudełko}} ({{lru|Moduły/Pudełko}}), {{m|Ramka}} ({{lru|Moduły/Ramka}}), {{m|Specjalne}} ({{lru|Moduły/Specjalne}}), {{m|StronicowyParser}} ({{lru|Moduły/StronicowyParser}}), {{m|Szeregi}} ({{lru|Moduły/Szeregi}}), {{m|Szablonowe}} ({{lru|Moduły/Szablonowe}}), {{m|Techniczne}} ({{lru|Moduły/Techniczne}}), {{m|Wiki}} ({{lru|Moduły/Wiki}}).
* Moduły standardowe
** {{m|Kategorie}} ({{lru|Moduły/Kategorie}}), {{m|Linki}} ({{lru|Moduły/Linki}}), {{m|Łatki}} ({{lru|Moduły/Łatki}}), {{m|Skrót}} ({{lru|Moduły/Skrót}}), {{m|Sprawdź}} ({{lru|Moduły/Sprawdź}}), {{m|ŹródłoLua}} ({{lru|Moduły/ŹródłoLua}}).
* Specyficzne
** {{m|Liczby}} ({{lru|Moduły/Liczby}}).
* Specjalistyczne
** {{m|GridTabela}} ({{lru|Moduły/GridTabela}}), {{m|Tabela}} ({{lru|Moduły/Tabela}}), {{m|Sekcja referencyjna}} ({{lru|Moduły/Sekcja referencyjna}}), {{m|Licencja}} ({{lru|Moduły/Licencja}}), {{m|Przypisy}} ({{lru|Moduły/Przypisy}}), {{m|Dopracować}} ({{lru|Moduły/Dopracować}}).
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategoria|Pomoc - Problemy wywołań mechanizmu MediaWiki|sortuj spacją=tak}}<!--
--></noinclude>
oa5u7n7hvs9wl0vhoa0to3p958oe4hw
Szablon:NawigacjaSpecjalna/Nawigacja/Pomoc:Spis treści
10
61114
560655
560005
2026-11-08T23:34:09Z
Persino
2851
560655
wikitext
text/x-wiki
<includeonly>{{Układ autonawigacji|krok={{{1}}}
|automat manualny=tak
|spis treści=Pomoc:Spis treści
|Pomoc:Spis treści|Pomoc - Spis treści
|Pomoc:Spis treści/Wstęp|Wstęp
|Wikibooks:Witamy nowicjuszy|Witamy nowicjuszy
|Wikibooks:Zasady i wskazówki|Zasady i wskazówki
|Wikibooks:Szybka pomoc|Szybka pomoc
|Wikibooks:Czym jest Wikibooks|Czym jest Wikibooks?
|Wikibooks:Różnice między Wikipedią i Wikibooks|Różnice między Wikipedią i Wikibooks
|Wikibooks:Dlaczego warto rozpocząć współpracę|Dlaczego warto rozpocząć współpracę?
|Wikibooks:Dlaczego używać wolnych podręczników|Dlaczego używać wolnych podręczników?
|Wikibooks:Dlaczego nie pisać na Wikibooks|Dlaczego nie pisać na Wikibooks?
|Wikibooks:Wikietykieta|Wikietykieta
|Pomoc:Wikietykieta|Wikietykieta
|Wikibooks:Neutralny punkt widzenia|Neutralny punkt widzenia
|Pomoc:Żargon użytkowników|Żargon użytkowników
|Wikibooks:Informacje prawne|Informacje prawne
|Wikibooks:Prawa autorskie|Prawa autorskie
|Pomoc:Spis treści/Edycja|Edycja
|Wikibooks:Brudnopis|Brudnopis
|Pomoc:Edycja kodu|Edycja kodu
|Wikibooks:Import stron|Import stron
|Wikibooks:Etapy rozwoju książek|Etapy rozwoju książek
|Wikibooks:Ilustracja Wikibooks|Ilustracja Wikibooks
|Pomoc:Jak edytować artykuły|Jak edytować artykuły?
|Wikibooks:Nazewnictwo artykułów|Nazewnictwo artykułów
|Pomoc:Podświetlanie składni|Podświetlanie składni
|Pomoc:Problemy z polskimi znakami|Problemy z polskimi znakami
|Pomoc:Quiz|Quiz
|Pomoc:Tworzenie podręcznika|Tworzenie podręcznika
|Wikibooks:Wandalizm|Wandalizm
|Wikibooks:Podręczniki do druku|Podręczniki do druku
|Pomoc:Tworzenie wersji do druku|Tworzenie wersji do druku
|Pomoc:Tworzenie wersji PDF|Tworzenie wersji PDF
|Pomoc:Tworzenie wersji PDF/javaLatex|Tworzenie wersji PDF/javaLatex
|Pomoc:Książki|Książki
|Pomoc:Spis treści/Wkład miesiąca|Wkład miesiąca
|Wikibooks:Wkład miesiąca/Aktualne głosowanie|Aktualne głosowanie
|Wikibooks:Wkład miesiąca/Wstęp|Wstęp
|Wikibooks:Wkład miesiąca/Regulamin|Regulamin
|Wikibooks:Wkład miesiąca/Nominacje|Nominacje
|Pomoc:Spis treści/Komunikacja|Komunikacja
|Wikibooks:Kanał IRC|Kanał IRC
|Wikibooks:Kontakt|Kontakt
|Wikibooks:Portal użytkowników|Portal użytkowników
|Pomoc:Archiwizowanie strony dyskusji|Archiwizowanie strony dyskusji
|Wikibooks:Przedstawicielstwo dyplomatyczne|Przedstawicielstwo dyplomatyczne
|Pomoc:Spis treści/Korzystanie z Wikibooks|Korzystanie z Wikibooks
|Wikibooks:Jak przeglądać Wikibooks|Jak przeglądać Wikibooks?
|Wikibooks:Księgozbiór|Księgozbiór
|Wikibooks:Księgozbiór/Wybrane|Księgozbiór - Wybrane
|Wikibooks:Księgozbiór/Alfabetycznie|Księgozbiór - Alfabetycznie
|Wikibooks:Księgozbiór/Tematycznie|Księgozbiór - Tematycznie
|Kategoria:Kategorie podręcznikowe|Księgozbiór - Według kategorii
|Wikibooks:Księgozbiór/Poziom|Księgozbiór - Według poziomu
|Wikibooks:Księgozbiór/Status|Księgozbiór - Według rozwoju
|Portal:Nauki ścisłe i przyrodnicze|Portal - Nauki ścisłe i przyrodnicze
|Portal:Informatyka|Portal - Informatyka
|Portal:Nauki techniczne|Portal - Nauki techniczne
|Portal:Nauki społeczne i humanistyczne|Portal - Nauki społeczne i humanistyczne
|Portal:Sport i rozrywka|Portal - Sport i rozrywka
|Portal:Hobby, poradniki i książki różne|Portal - Hobby, poradniki i książki różne
|Wikibooks:Promocja|Promocja
|Pomoc:Tryb ciemny|Tryb ciemny
|Pomoc:Spis treści/Historia Wikibooks|Historia Wikibooks
|Wikibooks:Historia Wikibooks|Historia Wikibooks
|Wikibooks:Piąte urodziny|Piąte urodziny
|Wikibooks:6. urodziny polskich Wikibooks|6. urodziny polskich Wikibooks
|Wikibooks:Wikikalendarz 2009|Wikikalendarz 2009
|Wikibooks:Sprzątanie Wikibooks|Sprzątanie Wikibooks
|Wikibooks:Sprzątanie Wikibooks/2009|Sprzątanie Wikibooks - 2009
|Wikibooks:Sprzątanie Wikibooks/2011|Sprzątanie Wikibooks - 2011
|Wikibooks:Statystyki|Statystyki
|Pomoc:Spis treści/Technikalia|Technikalia
|Wikibooks:Przestrzenie nazw|Przestrzenie nazw
|Wikibooks:Poczekalnia|Poczekalnia
|Wikibooks:Poczekalnia/naprawa|Poczekalnia - Naprawa
|Wikibooks:Poczekalnia/prowokacje|Poczekalnia - Prowokacje
|Wikibooks:Poczekalnia/artykuły|Poczekalnia - Artykuły
|Wikibooks:Poczekalnia/kwestie techniczne|Poczekalnia - Kwestie techniczne
|Wikibooks:Poczekalnia/Zgłoszenia|Poczekalnia - Zgłoszenia
|Wikibooks:Poczekalnia/Załatwione|Poczekalnia - Załatwione
|Wikibooks:VisualEditor|VisualEditor
|Pomoc:Nowa skórka – wektor|Nowa skórka – wektor
|Wikibooks:Skróty|Skróty
|Pomoc:Spis treści/Strona główna|Strona główna
|Pomoc:Spis treści/Wybrane książki|Wybrane książki
|Wikibooks:Mechanizm MediaWiki|Mechanizm MediaWiki
|Wikibooks:Szablony|Mechanizm MediaWiki - Szablony
|Wikibooks:Moduły|Mechanizm MediaWiki - Moduły
|Wikibooks:Moduły/Parametry|Moduł:Parametry
|Wikibooks:Moduły/Parametry/Tom I|Moduł:Parametry - Tom I
|Wikibooks:Moduły/Parametry/Tom II|Moduł:Parametry - Tom II
|Wikibooks:Moduły/Parametry/Tom III|Moduł:Parametry - Tom III
|Wikibooks:Moduły/Parametry/Tom IV|Moduł:Parametry - Tom IV
|Wikibooks:Moduły/Parametry/Tom V|Moduł:Parametry - Tom V
|Wikibooks:Moduły/Parametry/Tom VI|Moduł:Parametry - Tom VI
|Wikibooks:Moduły/Parametry/Tom VII|Moduł:Parametry - Tom VII
|Wikibooks:Moduły/Parametry/Tom VIII|Moduł:Parametry - Tom VIII
|Wikibooks:Moduły/Parametry/Tom IX|Moduł:Parametry - Tom IX
|Wikibooks:Moduły/Parametry/Tom X|Moduł:Parametry - Tom X
|Wikibooks:Moduły/Parametry/Tom XI|Moduł:Parametry - Tom XI
|Wikibooks:Moduły/Parametry/Tom XII|Moduł:Parametry - Tom XII
|Wikibooks:Moduły/Parametry/Tom XIII|Moduł:Parametry - Tom XIII
|Wikibooks:Moduły/Parametry/Tom XIV|Moduł:Parametry - Tom XIV
|Wikibooks:Moduły/Parametry/Tom XV|Moduł:Parametry - Tom XV
|Wikibooks:Moduły/Parametry/Tom XVI|Moduł:Parametry - Tom XVI
|Wikibooks:Moduły/Parametry/Tom XVII|Moduł:Parametry - Tom XVII
|Wikibooks:Moduły/Parametry/Tom XVIII|Moduł:Parametry - Tom XVIII
|Wikibooks:Moduły/Parametry/Tom XIX|Moduł:Parametry - Tom XIX
|Wikibooks:Moduły/Parametry/Tom XX|Moduł:Parametry - Tom XX
|Wikibooks:Moduły/Html|Moduł:Html
|Wikibooks:Moduły/Html/Tom I|Moduł:Html - Tom I
|Wikibooks:Moduły/Html/Tom II|Moduł:Html - Tom II
|Wikibooks:Moduły/Html/Tom III|Moduł:Html - Tom III
|Wikibooks:Moduły/Html/Tom IV|Moduł:Html - Tom IV
|Wikibooks:Moduły/Html/Tom V|Moduł:Html - Tom V
|Wikibooks:Moduły/Html/Tom VI|Moduł:Html - Tom VI
|Wikibooks:Moduły/Html/Tom VII|Moduł:Html - Tom VII
|Wikibooks:Moduły/Html/Tom VIII|Moduł:Html - Tom VIII
|Wikibooks:Moduły/Html/Tom IX|Moduł:Html - Tom IX
|Wikibooks:Moduły/Html/Tom X|Moduł:Html - Tom X
|Wikibooks:Moduły/Html/Tom XI|Moduł:Html - Tom XI
|Wikibooks:Moduły/Html/Tom XII|Moduł:Html - Tom XII
|Wikibooks:Moduły/Html/Tom XIII|Moduł:Html - Tom XIII
|Wikibooks:Moduły/Html/Tom XIV|Moduł:Html - Tom XIV
|Wikibooks:Moduły/Html/Tom XV|Moduł:Html - Tom XV
|Wikibooks:Moduły/Html/Tom XVI|Moduł:Html - Tom XVI
|Wikibooks:Moduły/Html/Tom XVII|Moduł:Html - Tom XVII
|Wikibooks:Moduły/Książkowe|Moduł:Książkowe
|Wikibooks:Moduły/Nazwy|Moduł:Nazwy
|Wikibooks:Moduły/Nazwy/Tom I|Moduł:Nazwy - Tom I
|Wikibooks:Moduły/Nazwy/Tom II|Moduł:Nazwy - Tom II
|Wikibooks:Moduły/Nazwy/Tom III|Moduł:Nazwy - Tom III
|Wikibooks:Moduły/Nazwy/Tom IV|Moduł:Nazwy - Tom IV
|Wikibooks:Moduły/Nazwy/Np|Moduł:Nazwy - Np
|Wikibooks:Moduły/Pudełko|Moduł:Pudełko
|Wikibooks:Moduły/Pudełko/Tom I|Moduł:Pudełko - Tom I
|Wikibooks:Moduły/Pudełko/Tom II|Moduł:Pudełko - Tom II
|Wikibooks:Moduły/Pudełko/Tom III|Moduł:Pudełko - Tom III
|Wikibooks:Moduły/Pudełko/Tom IV|Moduł:Pudełko - Tom IV
|Wikibooks:Moduły/Pudełko/Tom V|Moduł:Pudełko - Tom V
|Wikibooks:Moduły/Pudełko/Pomocne|Moduł:Pudełko - Pomocne
|Wikibooks:Moduły/Pudełko/Potrzebne|Moduł:Pudełko - Potrzebne
|Wikibooks:Moduły/Pudełko/ParametryCechy|Moduł:Pudełko - Parametry Cechy
|Wikibooks:Moduły/Ramka|Moduł:Ramka
|Wikibooks:Moduły/Specjalne|Moduł:Specjalne
|Wikibooks:Moduły/Specjalne/Tom I|Moduł:Specjalne - Tom I
|Wikibooks:Moduły/Specjalne/Tom II|Moduł:Specjalne - Tom II
|Wikibooks:Moduły/Specjalne/Tom III|Moduł:Specjalne - Tom III
|Wikibooks:Moduły/Specjalne/Tom IV|Moduł:Specjalne - Tom IV
|Wikibooks:Moduły/Specjalne/Tom V|Moduł:Specjalne - Tom V
|Wikibooks:Moduły/Specjalne/Tom VI|Moduł:Specjalne - Tom VI
|Wikibooks:Moduły/Specjalne/Tom VII|Moduł:Specjalne - Tom VII
|Wikibooks:Moduły/Specjalne/Tom VIII|Moduł:Specjalne - Tom VIII
|Wikibooks:Moduły/StronicowyParser|StronicowyParser
|Wikibooks:Moduły/StronicowyParser/Moduł główny|StronicowyParser - Moduł główny
|Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy|StronicowyParser - AnalizaSpisuRzeczy
|Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom I|StronicowyParser - AnalizaSpisuRzeczy - Tom I
|Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom II|StronicowyParser - AnalizaSpisuRzeczy - Tom II
|Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom III|StronicowyParser - AnalizaSpisuRzeczy - Tom III
|Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom IV|StronicowyParser - AnalizaSpisuRzeczy - Tom IV
|Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom V|StronicowyParser - AnalizaSpisuRzeczy - Tom V
|Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom VI|StronicowyParser - AnalizaSpisuRzeczy - Tom VI
|Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom VII|StronicowyParser - AnalizaSpisuRzeczy - Tom VII
|Wikibooks:Moduły/StronicowyParser/GłównaFunkcjaZbieraniaDanychStron|StronicowyParser - GłównaFunkcjaZbieraniaDanychStron
|Wikibooks:Moduły/StronicowyParser/Kategorie|StronicowyParser - Kategorie
|Wikibooks:Moduły/StronicowyParser/NumerLubNazwaArtykułówKsiążek|StronicowyParser - NumerLubNazwaArtykułówKsiążek
|Wikibooks:Moduły/StronicowyParser/NumerLubNazwaNagłówkówKsiążek|StronicowyParser - NumerLubNazwaNagłówkówKsiążek
|Wikibooks:Moduły/StronicowyParser/NumerObiektu|StronicowyParser - NumerObiektu
|Wikibooks:Moduły/StronicowyParser/NumeracjaObiektówStron|StronicowyParser - NumeracjaObiektówStron
|Wikibooks:Moduły/StronicowyParser/Potrzebne|StronicowyParser - Potrzebne
|Wikibooks:Moduły/StronicowyParser/Potrzebne/Tom I|StronicowyParser - Potrzebne - Tom I
|Wikibooks:Moduły/StronicowyParser/Potrzebne/Tom II|StronicowyParser - Potrzebne - Tom II
|Wikibooks:Moduły/StronicowyParser/Potrzebne/Tom III|StronicowyParser - Potrzebne - Tom III
|Wikibooks:Moduły/StronicowyParser/Potrzebne/Tom IV|StronicowyParser - Potrzebne - Tom IV
|Wikibooks:Moduły/StronicowyParser/Potrzebne/Tom V|StronicowyParser - Potrzebne - Tom V
|Wikibooks:Moduły/StronicowyParser/Potrzebne/Tom VI|StronicowyParser - Potrzebne - Tom VI
|Wikibooks:Moduły/StronicowyParser/Potrzebne/Tom VII|StronicowyParser - Potrzebne - Tom VII
|Wikibooks:Moduły/StronicowyParser/Potrzebne/Tom VIII|StronicowyParser - Potrzebne - Tom VIII
|Wikibooks:Moduły/StronicowyParser/Potrzebne/Tom IX|StronicowyParser - Potrzebne - Tom IX
|Wikibooks:Moduły/StronicowyParser/Potrzebne/Tom X|StronicowyParser - Potrzebne - Tom X
|Wikibooks:Moduły/StronicowyParser/Potrzebne/Tom XI|StronicowyParser - Potrzebne - Tom XI
|Wikibooks:Moduły/StronicowyParser/Potrzebne/Tom XII|StronicowyParser - Potrzebne - Tom XII
|Wikibooks:Moduły/StronicowyParser/Problemy|StronicowyParser - Problemy
|Wikibooks:Moduły/StronicowyParser/Rozdziały|StronicowyParser - Rozdziały
|Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom I|StronicowyParser - Rozdziały - Tom I
|Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom II|StronicowyParser - Rozdziały - Tom II
|Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom III|StronicowyParser - Rozdziały - Tom III
|Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom IV|StronicowyParser - Rozdziały - Tom IV
|Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom V|StronicowyParser - Rozdziały - Tom V
|Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom V/Część I|StronicowyParser - Rozdziały - Tom V - Część I
|Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom V/Część II|StronicowyParser - Rozdziały - Tom V - Część II
|Wikibooks:Moduły/StronicowyParser/SpisTreści|StronicowyParser - SpisTreści
|Wikibooks:Moduły/StronicowyParser/SpisTreści/Tom I|StronicowyParser - SpisTreści - Tom I
|Wikibooks:Moduły/StronicowyParser/SpisTreści/Tom II|StronicowyParser - SpisTreści - Tom II
|Wikibooks:Moduły/StronicowyParser/StronaSubst|StronicowyParser - StronaSubst
|Wikibooks:Moduły/StronicowyParser/Tekst|StronicowyParser - Tekst
|Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron|StronicowyParser - ZbieranieDanychStron
|Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Potrzebne|StronicowyParser - ZbieranieDanychStron - Potrzebne
|Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I|StronicowyParser - ZbieranieDanychStron - Potrzebne - Tom I
|Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II|StronicowyParser - ZbieranieDanychStron - Potrzebne - Tom II
|Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom III|StronicowyParser - ZbieranieDanychStron - Potrzebne - Tom III
|Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV|StronicowyParser - ZbieranieDanychStron - Potrzebne - Tom IV
|Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom V|StronicowyParser - ZbieranieDanychStron - Potrzebne - Tom V
|Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Moduł główny|StronicowyParser - ZbieranieDanychStron
|Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I|StronicowyParser - ZbieranieDanychStron - Część I
|Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Moduł główny/Część II|StronicowyParser - ZbieranieDanychStron - Część II
|Wikibooks:Moduły/StronicowyParser/SzablonyTekstu|StronicowyParser - SzablonyTekstu
|Wikibooks:Moduły/StronicowyParser/informacje|StronicowyParser - informacje
|Wikibooks:Moduły/StronicowyParser/obiekty|StronicowyParser - obiekty
|Wikibooks:Moduły/Szeregi|Moduł:Szeregi
|Wikibooks:Moduły/Skrót|Moduł:Skrót
|Wikibooks:Moduły/Strony|Moduł:Strony
|Wikibooks:Moduły/Sekcja referencyjna|Moduł:Sekcja referencyjna
|Wikibooks:Szablony/Ogólne|Szablony - Ogólne
|Wikibooks:Szablony/Informacje|Szablony - Informacje
|Wikibooks:Szablony/PrzypisStrona|PrzypisStrona
|Wikibooks:Szablony/Podręcznikowe|Szablony - Podręcznikowe
|Wikibooks:Szablony/Książkowe|Szablony - Książkowe
|Wikibooks:Szablony/Tekst|Szablony - Tekst
|Wikibooks:Szablony/Zawartość|Szablony - Zawartość
|Wikibooks:Szablony/Nagłówki|Szablony - Nagłówki
|Wikibooks:Szablony/Przekierowania|Szablony - Przekierowania
|Wikibooks:Szablony/Języki|Szablony - Języki
|Wikibooks:Szablony/Liczby|Szablony - Liczby
|Wikibooks:Szablony/Kategorie|Szablony - Kategorie
|Wikibooks:Szablony/Opisy|Szablony - Opisy
|Wikibooks:Szablony/Znaczniki|Szablony - Znaczniki
|Wikibooks:Szablony/Szablony opływania|Szablony opływania
|Wikibooks:Szablony/Stronicowe|Szablony - Stronicowe
|Wikibooks:Szablony/Kontenerowe|Szablony - Kontenerowe
|Wikibooks:Szablony/Elastyczne|Szablony - Elastyczne
|Wikibooks:Szablony/Infoboksy/Prolog|Szablony - Infoboksy - Prolog
|Wikibooks:Szablony/Infoboksy/Tom I|Szablony - Infoboksy - Tom I
|Wikibooks:Szablony/Infoboksy/Tom II|Szablony - Infoboksy - Tom II
|Wikibooks:Szablony/Infoboksy/Tom III|Szablony - Infoboksy - Tom III
|Wikibooks:Szablony/Infoboksy/Tom IV|Szablony - Infoboksy - Tom IV
|Wikibooks:Szablony/Infoboksy/Tom V|Szablony - Infoboksy - Tom V
|Wikibooks:Szablony/Infoboksy/Tom VI|Szablony - Infoboksy - Tom VI
|Wikibooks:Szablony/Infoboksy/Komponenty|Szablony - Infoboksy - Komponenty
|Wikibooks:Szablony/Infoboksy/Komponenty (organizmy żywe)|Infoboksy - Komponenty (organizmy żywe)
|Wikibooks:Szablony/Porządkowe|Szablony - Porządkowe
|Wikibooks:Szablony/Źródła artykułów|Szablony - Źródła artykułów
|Wikibooks:Szablony/Linki|Szablony - Linki
|Wikibooks:Szablony/Linki inteligentne|Szablony - Linki inteligentne
|Wikibooks:Szablony/Do usunięcia|Szablony - Do usunięcia
|Wikibooks:Szablony/Nawigacja|Szablony - Nawigacja
|Wikibooks:Szablony/Media|Szablony - Media
|Wikibooks:Szablony/Grafika|Szablony - Grafika
|Wikibooks:Szablony/Licencjonowanie|Szablony - Licencjonowanie
|Wikibooks:Szablony/Techniczne|Szablony - Techniczne
|Wikibooks:Szablony/Warunkowe|Szablony - Warunkowe
|Wikibooks:Szablony/Wikipedysta|Szablony - Wikipedysta
|Wikibooks:Szablony/Dyskusja Wikipedysty|Szablony - Dyskusja Wikipedysty
|Wikibooks:Szablony/MediaWiki|Szablony - MediaWiki
|Wikibooks:Szablony/Systemowe|Szablony - Systemowe
|Pomoc:Spis treści/Szablony/Tom I|Szablony - Tom I
|Pomoc:Spis treści/Szablony/Tom II|Szablony - Tom II
|Pomoc:Spis treści/Szablony/Tom III|Szablony - Tom III
|Pomoc:Spis treści/Szablony/Tom IV|Szablony - Tom IV
|Pomoc:Spis treści/Administracja|Administracja
|Wikibooks:Kwestie techniczne|Kwestie techniczne
|Wikibooks:Wikipedyści potrzebujący pomocy|Wikipedyści potrzebujący pomocy
|Wikibooks:Zgłoś błąd (ZB)|Zgłoś błąd (ZB)
|Wikibooks:Lista Naruszeń Praw Autorskich (NPA)|Lista Naruszeń Praw Autorskich (NPA)
|Wikibooks:Administratorzy|Administratorzy
|Wikibooks:Prośby do administratorów|Prośby do administratorów
|Wikibooks:Administratorzy interfejsu|Administratorzy interfejsu
|Wikibooks:Prośby do administratorów interfejsu|Prośby do administratorów interfejsu
|Wikibooks:Biurokraci|Biurokraci
|Wikibooks:Boty|Boty
|Wikibooks:Stewardzi|Stewardzi
|Wikibooks:Użytkownicy|Użytkownicy
|Wikibooks:Automatycznie zatwierdzeni użytkownicy|Automatycznie zatwierdzeni użytkownicy
|Wikibooks:Zatwierdzeni użytkownicy|Zatwierdzeni użytkownicy
|Wikibooks:Przyznawanie uprawnień|Przyznawanie uprawnień
|Wikibooks:Nazwa użytkownika|Nazwa użytkownika
|Wikibooks:Prośby o zmianę nazwy użytkownika|Prośby o zmianę nazwy użytkownika
|Wikibooks:Uprawnieni do logowania się z zablokowanych adresów IP|Uprawnieni do logowania się z zablokowanych adresów IP
|Wikibooks:GNU Free Documentation License|GNU Free Documentation License
}}</includeonly><noinclude>{{Dokumentacja|zawartość=Szablon manualny (ręczny), nie automatyczny, bo ustawiony za pomocą {{Parametr|automat manualny|tak}}, wskazujący poprzedni i następny artykuł pomocy oraz ich stronę główną, czyli spis po {{LinkPomoc2|Spis treści}}.}}{{Kategoria|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}</noinclude>
31xvwk29xmmo49daekmfoz8jgu3dqwi
Wikibooks:Moduły/Szeregi
4
63251
560646
558208
2026-11-08T14:03:25Z
Persino
2851
560646
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Szeregi}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Moduł służy do obsługi na ciągach (szeregach) języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local szeregi_modul=require("Module:Szeregi");
</syntaxhighlight>
Dzięki, któremu można wypisywać funkcje należącego do niego.
Funkcje opisane w module, która opisuje ta dokumentacja, służą do operacji na szeregach, też na wydzielaniu poszczególnych linii i robienia na nich operacji, a także wykonywania operacji na niepomijanych elementach znakowych.
Przykładowe użycie modułu: {{Code|{{ld2|Szeregi}}}}, jest użyte w module: {{Code|{{ld2|Szablonowe/Potrzebne}}}}.
Na tej stronie będziemy wchodzili do pliku: {{Code|Moduły/Szeregi}}, w przestrzeni nazw: {{Np|Project|link=tak}}, ściągając jego zawartość w funkcjach: {{LinkŚródtytuł|p.WyszukiwanieNaPodstawieWzorca}}, {{LinkŚródtytuł|p.ZamianaZnakowaSzeregu}}, {{LinkŚródtytuł|p.IteratorLiniiTekstu}}, i {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}.
== {{Śródtytuł|p.WyszukiwanieNaPodstawieWzorca}}{{Code|p.WyszukiwanieNaPodstawieWzorca}} ==
Funkcja wyszukuje począwszy od miejsca pierwszego (trzeci argument) funkcji, czyli z podwójnymi nawiasami klamrowymi, a jeżeli w nim są początki, np. innych szablonów, to wyszukuje kolejne przykładowe dwa miejsca dalej względem poprzedniego przykładowego wyszukiwania.
Funkcja do swojego działania wykorzystuje funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.WyszukiwanieNaPodstawieWzorca=function(szereg,wzor,numer,funkcja_sprawdzanie_wyszukania,funkcja_wzor,licznik_wzor)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|szereg}} | _1 = Jak w: {{LinkPatrz|szereg}}.
| 2 = {{Code|wzor}} | _2 = Jak w: {{LinkPatrz|wzor}}.
| 3 = {{Code|numer}} | _3 = Numer, od którego ma rozpocząc wyszukiwanie.
| 4 = {{Code|funkcja_sprawdzanie_wyszukania}} | _4 = Jak w: {{LinkPatrz|funkcja_sprawdzanie_wyszukania}}.
| 5 = {{Code|funkcja_wzor}} | _5 = Jak w: {{LinkPatrz|funkcja_wzor}}.
| 6 = {{Code|licznik_wzor}} | _6 = Licznik wykorzystywany w ciele funkcji: {{Code|funkcja_sprawdzanie_wyszukania}}, gdy parametr: {{Code|funkcja_wzor}}, nie jest: {{Code|nil}}, tylko funkcją.
}}
A {{Code|numer}} w czwartym argumencie (funkcji) ten parametr wskazany jest przez trzeci argument, czyli {{Code|1}}, a jeżeli pierwsze wyszukiwanie się nie powiodło się, ona wyszukuje następne, aż do całkowitego niepowodzenia, lub do nieznalezienia następnych ciągów, wtedy jest zwracana wartość {{Code|nil}}, ale przez tym liczba ponownym wyszukań może być dowolna, w zależności od długości tekstu.
Przykład wywołania:
<syntaxhighlight lang="lua">
local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi");
local tekst=title:getContent();
local szeregi_modul=require("Module:Szeregi");
local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1,
function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej)
return mw.ustring.match(zawartosc,"%{%{"),2;
end,
function(wzor,licznik_wzor,czy)
-- Obojętne jaka definicja, ta funkcja ma definicję, bo w p.ZamianaZnakowaSzeregu jest ona tam potrzebna.
end,1);
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis zmiennych zwracanych w przykładzie:
| 1 = {{Code|numer_a}} | _1 = Początek wyszukania.
| 2 = {{Code|numer_b}} | _2 = Koniec wyszukania.
| 3 = {{Code|zawartosc}} i {{Code|dalej}} | _3 = Zawartość i dalszy element, elementy zwaracane z przechwytywania okazane wzorem {{Code|<nowiki>%{%{(.-)%}%}(%l*)</nowiki>}} za pomocą dwóch części przechwytujących ciągu znakowe.
}}
Funkcja ta zwraca dwa dalsze parametry, najwięcej dalszych parametrów (od {{Code|zawartość}}) może być dziewięć, taka bowiem jest właściwość funkcji:
<syntaxhighlight lang="lua">
local stronicowyparser_analizaspisurzeczy_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local numer_a,numer_b,a,b,c,d,e,f,g,h,i=stronicowyparser_analizaspisurzeczy_modul.SzukanieNaPodstawieWzoru(szereg,wzor,numer,#szereg,false);
</syntaxhighlight>
Ta funkcja jest w definicji omawianej funkcji.
Tę funkcję równie dobrze można napisać prościej:
<syntaxhighlight lang="lua">
local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi");
local tekst=title:getContent();
local szeregi_modul=require("Module:Szeregi");
local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1,
function(tekst,numer,numer_a,numer_b,zawartosc,dalej)
return mw.ustring.match(zawartosc,"%{%{"),2;
end
);
</syntaxhighlight>
== {{Śródtytuł|p.ZamianaZnakowaSzeregu}}{{Code|p.ZamianaZnakowaSzeregu}} ==
Funkcja do podmiany wyszukiwanego tekstu spełniający pewne warunki według szeregu wzorów, ale niekoniecznie, może być według tylko jednego, na inną zmodyfikowaną z poprzedniego zawartość.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.ZamianaZnakowaSzeregu=function(szereg,wzor,funkcja_sprawdzanie_wyszukania,funkcja_zamiana,funkcja_wzor,funkcja_licznik)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|szereg}} {{Patrz|szereg}} | _1 = Szeregi (ciąg znakowy) do przeanalizowania i przetworzenia.
| 2 = {{Code|wzor}} {{Patrz|wzor}} | _2 = Wzór w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}} do przeszukiwania ciągów.
| 3 = {{Code|funkcja_sprawdzanie_wyszukania}} {{Patrz|funkcja_sprawdzanie_wyszukania}} | _3 = Sprawdza, czy wyszukany ciąg zawiera pewny element, a jeżeli tak, to tą funkcją w nagłówku powtarzane jest wyszukiwanie aż do skutku, lub do końca szeregu, ale od pewnego znaku, ale dalszego określonego.
Obecność funkcji: {{Code|funkcja_wzor}} {{LinkPatrz|funkcja_wzor}}, sugeruje, że trzeba wywołać:
<syntaxhighlight lang="lua">
tak,ile=funkcja_sprawdzanie_wyszukania(szereg,numer,licznik_wzor,numer_a,numer_b,a,b,c,d,e,f,g,h,i);
</syntaxhighlight>
W przeciwnym wypadku:
<syntaxhighlight lang="lua">
tak,ile=funkcja_sprawdzanie_wyszukania(szereg,numer,numer_a,numer_b,a,b,c,d,e,f,g,h,i);
</syntaxhighlight>
Parametr {{Code|tak}}, tak mówi, czy powtórzyć wyszukiwanie, a {{Code|ile}}, wskazuje ile znaków dalej ma wyszukać, a jeżeli wartość ta jest {{Code|nil}}, to ona przyjmuje wartość domyślną {{Code|1}}.
| 4 = {{Code|funkcja_zamiana}} {{Patrz|funkcja_zamiana}} | _4 = Funkcja robiąca operacje na wydzielonych ciągach znakowych.
Obecność funkcji: {{Code|funkcja_wzor}} {{LinkPatrz|funkcja_wzor}}, wskazuje na:
<syntaxhighlight lang="lua">
ciag=funkcja_zamiana(licznik_wzor,a,b,c,d,e,f,g,h,i);
</syntaxhighlight>
Przeciwnie na:
<syntaxhighlight lang="lua">
ciag=funkcja_zamiana(a,b,c,d,e,f,g,h,i);
</syntaxhighlight>
| 5 = {{Code|funkcja_wzor}} {{Patrz|funkcja_wzor}} | _5 =
Funkcja sterująca powtarzaniem wyszukiwania ciągu, ale od tego samego numeru znaku, jeżeli poprzednie wyszukiwanie się nie powiodło. Funkcja może być niepodana, wtedy zmienia się zespół parametrów pewnych funkcji tych podawanych jako parametry, tzn.: {{Code|funkcja_sprawdzanie_wyszukania}} {{LinkPatrz|funkcja_sprawdzanie_wyszukania}}, i {{Code|funkcja_zamiana}} {{LinkPatrz|funkcja_zamiana}}.
{{P|Definicja funkcji:}}
<syntaxhighlight lang="lua">
__wzor,czy=funkcja_wzor(wzor,licznik_wzor,czy);
</syntaxhighlight>
Funkcja ta zwraca wartość w zmiennych: {{Code|__wzor}} i {{Code|czy}}, ta pierwsza mówi, jaki jest wzór wyszukiwania, a druga, czy powtórzyć wyszukiwanie, ale względem innego niż poprzednio, zwracanego wzoru.
| 6 = {{Code|funkcja_licznik}} {{Patrz|funkcja_licznik}} | _6 =
Funkcja liczy numer wzoru wyszukiwanego, na podstawie tego podstawowego. Funkcja używana w skojarzeniu z funkcją: {{Code|funkcja_wzor}} {{LinkPatrz|funkcja_wzor}}, wtedy jedynie ona jest wywoływana i liczona, przeciwnie nie jest wcale używana.
{{P|Definicja funkcji:}}
<syntaxhighlight lang="lua">
licznik_wzor=funkcja_licznik(wzor,licznik_wzor,numer_begin);
</syntaxhighlight>
Parametry: {{Code|wzor}} - jest to wzór podstawowy, {{Code|licznik_wzor}} - numer wzoru, i {{Code|numer_begin}} - jest to początek wyszukiwania.
}}
Funkcja wykorzystuje do działania: {{LinkŚródtytuł|p.WyszukiwanieNaPodstawieWzorca}}, w celu wyszukiwanych ciągów.
; Jest podany przykład, według którego wyszukujemy odpowiednie szablony pod pewnymi warunkami{{dk}}
Wyszukuje tekst wskazany przez pierwszy argument, drugi parametr jako wzór (wyszukuj szablony z podwójnymi nawiasami klamrowymi), a jeżeli ona zawiera początek następnego szablonu (funkcja wskazana przez trzeci argument), to wyszukuje ona dwa miejsca dalej znakowe, czy jest on tym właściwym szablonem bez innych szablonów, których nie ma tam tego. Następnie po wyszukaniu szablonu przez funkcję podaną jako czwarty argument, usuwa w nim odstępy, i robi z niego inny szablon. Funkcja najpierw wyszukuje według wzoru trzeciej funkcji (piąty argument), dla {{Code|licznik_wzor {{=}} 1}}, sprawdza dodatkowo, jakie są małe litery po linku, jeżeli po nim one są tam.
Przykład wywołania:
<syntaxhighlight lang="lua">
local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi");
local tekst=title:getContent();
local szeregi_modul=require("Module:Szeregi");
tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}",
function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej)
return mw.ustring.match(zawartosc,"%{%{"),2;
end,
function(licznik_wzor,zawartosc,dalej)
zawartosc=mw.ustring.gsub(zawartosc,"%s+","");
return "[["..zawartosc.."]]"..((licznik_wzor==1)and dalej or "");
end,
function(wzor,licznik_wzor,czy)
if(czy)then
if(licznik_wzor==1)then return wzor.."(%l*)",true;end;
end;
return wzor,false;
end,
function(wzor,licznk_wzor,numer_begin)
licznik_wzor=licznik_wzor+1;
return licznik_wzor;
end
);
</syntaxhighlight>
A jeżeli piąty argument (funkcja) nie zostanie podany, a więc i też szósty, bo wtedy on jest niepotrzebny, to w pierwszej funkcji argument trzeci można pominąć, a wdrugiej zmienną pierwszą pomijamy, bo w tych funkcjach po prostu ich nie podajemy, wtedy tę funkcję można napisać w uproszczony sposób:
<syntaxhighlight lang="lua">
local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi");
local tekst=title:getContent();
local szeregi_modul=require("Module:Szeregi");
tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}",
function(tekst,numer,numer_a,numer_b,zawartosc)
return mw.ustring.match(zawartosc,"%{%{"),2;
end,
function(zawartosc)
zawartosc=mw.ustring.gsub(zawartosc,"%s+","");
return "[["..zawartosc.."]]";
end
);
</syntaxhighlight>
Ta funkcja zwraca zmodyfikowany tekst uzyskany z omawianej funkcji. Tą funkcję możemy wykorzystać do kodowania dowolnego tekstu i operowania na nim, co jest wykorzystane, nie tylko jako przykładach, ale też jako treściwy kod według tego wspomnianego w tym module powyżej. Z funkcji tej korzystamy w module: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, właśnie do kodowania tekstu.
== {{Śródtytuł|p.IteratorLiniiTekstu}}{{Code|p.IteratorLiniiTekstu}} ==
Funkcja uzyskany tekst iteruje linia po linii według iteracji poniżej przy pomocy operacji {{Code|for}}, gdzie tam możemy robić operacje na nich, by dodać je później do tablicy: ściśle określonej przez kod, by je połączyć przy pomocy łącznika znaku nowej linii: {{Code|\n}}, jak to się łączy linie w tekście. Poniższy kod robi to samo, co przykład dla funkcji: {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}, tylko, że dłużej kodowo, ale wychodzi na to samo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IteratorLiniiTekstu(tekst)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst}} | _1 = Tekst, z którego są wydzielane kolejne linie.
}}
Przykład wywołania:
<syntaxhighlight lang="lua">
local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi");
local tekst=title:getContent();
local szeregi_modul=require("Module:Szeregi");
local iter=szeregi_modul.IteratorLiniiTekstu(tekst);
local tab_linia={};
for linia in iter do
linia=mw.ustring.gsub(linia,"%s+","");
table.insert(tab_linia,linia);
end;
tekst=table.concat(tab_linia,"\n");
</syntaxhighlight>
== {{Śródtytuł|p.ZamianaZnakowaLinii}}{{Code|p.ZamianaZnakowaLinii}} ==
Funkcja zamienia tekst uzyskany wstawiony do pierwszego argumentu tej funkcji, gdzie poszczególne linie są zmieniane przez anonimową funkcję podaną jako drugi argument. Jeżeli ta funkcja zwraca {{Code|nil}} dla jakieś linii, to ta linia nie jest zmieniana, tylko przypisywana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZamianaZnakowaLinii(szereg,funkcja)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|szereg}} | _1 = Szereg do przetworzenia, z którego są wydzielane kolejne linie i są robione na nich pewne operacje.
| 2 = {{Code|funkcja}} | _2 = Funkcja robiąca operacje na kolejnych liniach, nawet pustych.
}}
Funkcja korzysta z innej: {{LinkŚródtytuł|p.IteratorLiniiTekstu}}, w celu uzyskiwania kolejnych linii tekstu, linie są oddzielone znakiem: {{Code|\n}}, w ogólnym podanym tekście.
Przykład wywołania:
<syntaxhighlight lang="lua">
local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi");
local tekst=title:getContent();
local szeregi_modul=require("Module:Szeregi");
tekst=szeregi_modul.ZamianaZnakowaLinii(tekst,function(linia)
local linia,ile=mw.ustring.gsub(linia,"%s+","");
if(ile>0)then return linia;end;
return nil;
end);
</syntaxhighlight>
Ta funkcja usuwa wszystkie odstępy w liniach, ale nie pomiędzy liniami.
== {{Śródtytuł|p.SzeregiOmijanieFunkcyjne}}{{Code|p.SzeregiOmijanieFunkcyjne}} ==
Funkcja do operacji na szeregach (ciągach), przy pomocy pewnej funkcji, z pominięciem pewnych ciągów określonym, jako opisywanym przez wzór (zmienna {{Code|wzor}}), podanym do parametru funkcji z operacją na nich podanym jako druga funkcja {{Code|funkcja2}}.
Funkcja do swojego działania wykorzystuje funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
Funkcja zwraca przetworzony tekst: {{Code|tekst}} {{LinkPatrz|tekst-p.SzeregiOmijanieFunkcyjne}}, przez funkcję: {{Code|funkcja}} {{LinkPatrz|funkcja-p.SzeregiOmijanieFunkcyjne}}, jeśli; {{Code|normalnie}} {{LinkPatrz|normalnie-p.SzeregiOmijanieFunkcyjne}} {{Code|{{=}}}} {{Code|false}}, a jeśli ta zmienna jest przeciwna, to elementy niepomijalne są przekształcane przez tą samą funkcją, a elementy pomijalne wykryte przez {{Code|wzor}} {{LinkPatrz|wzor-p.SzeregiOmijanieFunkcyjne}}, są przekształcane natomiast przez: {{Code|funkcja2}} {{LinkPatrz|funkcja2-p.SzeregiOmijanieFunkcyjne}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzeregiOmijanieFunkcyjne(tekst,normalnie,wzor,funkcja,funkcja2)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst}} {{Patrz|tekst-p.SzeregiOmijanieFunkcyjne}} | _1 = Tekst do przetworzenia, omijając pewne elementy, jeżeli drugi element odpowiada wartości logicznej {{Code|false}}, przeciwnie już nie.
| 2 = {{Code|normalnie}} {{Patrz|normalnie-p.SzeregiOmijanieFunkcyjne}} | _2 = Czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi.
| 3 = {{Code|wzor}} {{Patrz|wzor-p.SzeregiOmijanieFunkcyjne}} | _3 = Wzór do elementów pomijanych, wzór może mieć do ośmiu elementów przechwytywanych.
| 4 = {{Code|funkcja}} {{Patrz|funkcja-p.SzeregiOmijanieFunkcyjne}} | _4 = Funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych.
{{P|Definicja:}}
<syntaxhighlight lang="lua">
ciag=funkcja(ciag);
</syntaxhighlight>
Jest to funkcja zamiany ciągu niepomijalnego, w inny ciąg, a jeżeli ona nie istnieje, wtedy te ciągi nie są przekształcane.
| 5 = {{Code|funkcja2}} {{Patrz|funkcja2-p.SzeregiOmijanieFunkcyjne}} | _5 =
Funkcja używana gdy: {{Code|normalnie}} {{LinkPatrz|normalnie-p.SzeregiOmijanieFunkcyjne}}, ma wartość odpowiadającej prawdziwej.
Co ma robić z częściami elementów pomijanych, czyli z elementami przechwytywanymi, funkcja przyjmuje do dziewięciu parametrów przechwytywania w podanym wzorze {{Code|wzor}}, tzn.:
<syntaxhighlight lang="lua">
element_pomijany=funkcja2(kod_1,kod_2,kod_3,kod_4,kod_5,kod_6,kod_7,kod_8,kod_9);
</syntaxhighlight>
Gdy nie ma tej funkcji, to elementem pomijanym jest:
<syntaxhighlight lang="lua">
element_pomijany=kod_1 or "";
</syntaxhighlight>
}}
=== Rozważane przypadki drugiej zmiennej ===
==== Jeśli zmienna: {{Code|normalnie}} {{LinkPatrz|normalnie-p.SzeregiOmijanieFunkcyjne}}, odpowiada wartości fałszywej ====
Jeśli: {{Code|normalnie}} {{LinkPatrz|normalnie-p.SzeregiOmijanieFunkcyjne}}, ma wartość fałszywą, wtedy jest tylko zamiana podanego tekstu według:
<syntaxhighlight lang="lua">
tekst=funkcja and funkcja(tekst) or tekst;
</syntaxhighlight>
Jeżeli funkcja: {{Code|funkcja}} {{LinkPatrz|funkcja-p.SzeregiOmijanieFunkcyjne}}, nie istnieje, to ten ciąg zwracany, wcale nie będzie przekształcony.
==== Jeśli zmienna: {{Code|normalnie}} {{LinkPatrz|normalnie-p.SzeregiOmijanieFunkcyjne}}, odpowiada wartości prawdziwej ====
Funkcja wywołuje na początku moduł przed pętlą, jeżeli parametr: {{Code|normalnie}} {{LinkPatrz|normalnie-p.SzeregiOmijanieFunkcyjne}}, ma wartość odpowiadającej wartości prawdziwej:
<syntaxhighlight lang="lua">
local stronicowyparser_analizaspisurzeczy_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
</syntaxhighlight>
Zdefiniujmy tabelę ciągów:
<syntaxhighlight lang="lua">
local tab_str={};
</syntaxhighlight>
Funkcja wyszukująca w tej funkcji, wywoływana w pętli, elementy pomijalne:
<syntaxhighlight lang="lua">
local kod_1;local kod_2;local kod_3;local kod_4;local kod_5;local kod_6;local kod_7;local kod_8;local kod_9;
pozycja1,pozycja2,kod_1,kod_2,kod_3,kod_4,kod_5,kod_6,kod_7,kod_8,kod_9=stronicowyparser_analizaspisurzeczy_modul.SzukanieNaPodstawieWzoru(tekst,wzor,pozycja2+1,#tekst,false);
</syntaxhighlight>
Element niepomijalny jest wyznaczany, na podstawie powyższego przedstawienia, i jest wsadzany do tabeli:
<syntaxhighlight lang="lua">
ciag=(pozycja_poczatek<pozycja1) and mw.ustring.sub(tekst,pozycja_poczatek,pozycja1-1) or "";
pozycja_poczatek=pozycja2+1;
table.insert(tab_str,ciag);
</syntaxhighlight>
A element pomijalny jest przekształcany, i wstawiany do tabeli:
<syntaxhighlight lang="lua">
ciag=funkcja2 and funkcja2(kod_1,kod_2,kod_3,kod_4,kod_5,kod_6,kod_7,kod_8,kod_9) or kod_1 or "";
table.insert(tab_str,ciag);
</syntaxhighlight>
Na samym końcu są doliczane do ciągów niepomijalnych, pod warunkiem sensowności istniejących zwracanych dwóch pierwszych parametrów, umieszczanych w tabeli:
<syntaxhighlight lang="lua">
pozycja_temp=pozycja_temp or 0;
local pozycja1,pozycja2,ciag=stronicowyparser_analizaspisurzeczy_modul.SzukanieNaPodstawieWzoru(tekst,"(.-)$",pozycja_temp+1,#tekst,false);
if((pozycja1)and(pozycja2)and(pozycja1<=pozycja2))then
ciag=funkcja and funkcja(ciag) or ciag;
table.insert(tab_str,ciag);
end;
</syntaxhighlight>
Przy zwracaniu wyniku jest pisane:
<syntaxhighlight lang="lua">
local str=table.concat(tab_str,"");
return str;
</syntaxhighlight>
Zatem jest zwracany przekształcony ciąg zarówno ze strony niepomijalnej, jak i pomijalnej. A jeżeli funkcje obie: {{Code|funkcja}} {{LinkPatrz|funkcja-p.SzeregiOmijanieFunkcyjne}}, i {{Code|funkcja2}} {{LinkPatrz|funkcja2-p.SzeregiOmijanieFunkcyjne}}, nie istnieją, to ten ciąg zwracany, wcale nie będzie przekształcony.
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Szeregi/SzeregiOmijanieFunkcyjne/}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
0981el4zt8l82qikwa2xytzn8w5a3gu
Wikibooks:Moduły/Skrót
4
63279
560647
555614
2026-11-08T14:08:53Z
Persino
2851
560647
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Skrót}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Moduł {{ld2|Skrót}} służy do krótszego operowania szablonami {{s|Kategoria}} i {{s|Kategorie}} przy pomocy funkcji {{m|Ramka|Szablon}} z dodatkowymi parametrami obsługiwanymi przez tę funkcję, które jawnie nie podajemy w funkcjach zawartych w tym module, ale które są podane są za to niejawnie w definicji tych procedur, aby do nich trafiały niektóre zmienne szablonu rodzica, w której została ona wywołana ta ramka, wtedy wywołanie tego szablonu wygląda na krótsze i estetyczne.
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local skrot_modul=require("Module:Skrót");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
== {{Code|WykazSzablon}} ==
Funkcja, która uruchamia szablon z dodatkowymi parametrami lub dodaje dodatkowe kategorie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local WykazSzablon=function(frame,szablon,czy_inne_kategorie)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu.
| 2 = {{Code|szablon}} | _2 = Nazwa szablonu do wywołania.
| 3 = {{Code|czy_inne_kategorie}} | _3 = Jeśli {{Code|true}}, i nazwa szablonu jest {{Code|Kategoria}}, to ją zamienia na {{Code|Kategorie}}.
}}
Parametry ramki tablicy transportu {{Code|frame}}: parametry ramki dziecka i jej rodzica są te same, co parametry ramki funkcji modułu {{ld2|Skrót}}.
Funkcja przyjmuje parametr tablicę ramki tablicy transportu, i drugi parametr, który jest nazwą podstawową szablonu, przyjmować może on jedynie wartości: {{Code|Kategoria}} i {{Code|Kategorie}}, trzeci, który może nie być podany lub przyjmować wartość {{Code|nil}}, albo przyjmować wartość {{Code|true}}.
{{OpisParametrów
| tytuł = Te szablony przyjmują w module {{ld2|Skrót}} na pewno parametry:
| 1 = {{Code|parametry podstawowe funkcji modułu pudełek}} | _1 = Funkcja przyjmuje tylko parametry modułu pudełek {{ld2|Pudełko}}.
| 2 = {{Code|bez dodatkowych sprawdzeń}} | _2 = funkcja wyłącza sprawdzanie (walidację) błędów w szablonie.
}}
Gdy drugi parametr tego szablonu jest {{Code|Kategoria}} (przyjmujący jedną kategorię), a trzeci {{Code|true}}, wtedy ten szablon jest zamieniany na {{Code|Kategorie}} (przyjmujący jako argumenty wiele kategorii), tak się dzieje, bo funkcja dodatkowo zwraca kategorie do szablonu, w którym on został wywołany, na stronie o takiej samej pełnej nazwie, co on.
Funkcja uruchamia ramkę {{Code|{{m|Ramka|Szablon}}}} (opis tej funkcji jest w: {{sr|#p.Szablon|p=Ramka}}), która dla szablonu, bez trzeciego parametru tej funkcji, {{Code|Kategoria}} wygląda tak, co jest równoważne wywołaniu ramki:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Szablon|Nazwa=Kategoria|parametry podstawowe funkcji modułu pudełek=tak|bez dodatkowych sprawdzeń=tak|1=...}}
</syntaxhighlight>
A dla szablonu {{Code|Kategorie}} uruchamianie jego jest:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Szablon|Nazwa=Kategorie|parametry podstawowe funkcji modułu pudełek=tak|bez dodatkowych sprawdzeń=tak|1=...|_1=...|2=...|_2==...|...|<n>=...|_<n>=...|...}}
</syntaxhighlight>
* Gdzie {{Code|<n>}} to pewne liczba naturalna nie równa zero.
A gdy trzeci parametr jest {{Code|true}}, a drugi {{Code|Kategoria}} lub {{Code|Kategorie}}, wtedy rozwijany jest wikikod równoważny temu, dla tego pierwszego szablonu:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Szablon|Nazwa=Kategorie|parametry podstawowe funkcji modułu pudełek=tak|bez dodatkowych sprawdzeń=tak|1=...|2=Szablony dodające kategorie|_i=..}}
</syntaxhighlight>
A dla tego drugiego szablonu:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Szablon|Nazwa=Kategorie|parametry podstawowe funkcji modułu pudełek=tak|bez dodatkowych sprawdzeń=tak|1=...|2=...|...|<n>=...|..|2=Szablony dodające kategorie}}
</syntaxhighlight>
Widzimy, jakie skomplikowane wywołania tworzy ta funkcja, a to jest wszystko ukryte pod nią, a my używając modułu {{ld2|Skrót}} możemy tworzyć proste wywołania, które są tłumaczone na te skomplikowane.
== Skróty szablonów kategorii ==
Kateria funkcji do uruchamiania szablonów kategorii: {{Code|{{ls2|Kategoria}}}} i {{Code|{{ls2|Kategorie}}}}, zamieniające proste wywołania kategorii na skomplikowane, co oszczedza rozmiary odpowiednich szablonów.
Funkcja jest uruchamiana w ramce modułu {{Code|{{ld2|Skrót}}}}.
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu.
}}
Parametry ramki tablicy transportu {{Code|frame}}: parametry ramki dziecka i jej rodzica są te same, co parametry ramki funkcji modułu {{ld2|Skrót}}.
=== {{Code|p.Kategoria}} ===
Funkcja przyjmuje jedną tylko nazwę kategorii i jej nazwę sortowania, a zwraca zestaw gotowych kategorii do uruchomienia. Ta funkcja tworzy skomplikowane wywołania bez funkcji zwracania kategorii: {{Code|{{lk2|Szablony dodające kategorie}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Kategoria(frame)
return WykazSzablon(frame,"Kategoria");
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów ramki {{nobold|{{Code|frame}}}} funkcji tablicy transportu modułu:
| 1 = Szablon ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} przyjmuje te same parametry, co szablon {{s|Kategoria}} | nagłówek1=tak
}}
Przykłady użycia:
<syntaxhighlight lang="mediawiki">
{{#invoke:Skrót|Kategoria|<kategoria>|<nazwa sortowania>}}
</syntaxhighlight>
=== {{Code|p.Kategorie}} ===
Funkcja przyjmuje wiele nazw kategorii i ich nazwy sortowania, a zwraca zestaw gotowych kategorii do uruchomienia. Ta funkcja tworzy skomplikowane wywołania bez funkcji zwracania kategorii: {{Code|{{lk2|Szablony dodające kategorie}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Kategorie(frame)
return WykazSzablon(frame,"Kategorie");
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów ramki {{nobold|{{Code|frame}}}} funkcji tablicy transportu modułu:
| 1 = Szablon ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} przyjmuje te same parametry, co szablon {{s|Kategorie}} | nagłówek1=tak
}}
Przykłady użycia:
<syntaxhighlight lang="mediawiki">
{{#invoke:Skrót|Kategorie|1=<kategoria 1>|_1=<nazwa sortowania 1>|2=<kategoria 2>|_2=<nazwa sortowania 2>|...}}
</syntaxhighlight>
=== {{Code|p.Kategoria2}} ===
Funkcja przyjmuje jedną tylko nazwę kategorii i jej nazwę sortowania, a zwraca zestaw gotowych kategorii do uruchomienia. Ta funkcja tworzy skomplikowane wywołania z funkcją zwracania kategorii: {{Code|{{lk2|Szablony dodające kategorie}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Kategoria2(frame)
return WykazSzablon(frame,"Kategoria",true);
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów ramki {{nobold|{{Code|frame}}}} funkcji tablicy transportu modułu:
| 1 = Szablon ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} przyjmuje te same parametry, co szablon {{s|Kategoria}} | nagłówek1=tak
}}
Przykłady użycia:
<syntaxhighlight lang="mediawiki">
{{#invoke:Skrót|Kategoria2|<kategoria>|<nazwa sortowania>}}
</syntaxhighlight>
=== {{Code|p.Kategorie2}} ===
Funkcja przyjmuje wiele nazw kategorii i ich nazwy sortowania, a zwraca zestaw gotowych kategorii do uruchomienia. Ta funkcja tworzy skomplikowane wywołania z funkcją zwracania kategorii: {{Code|{{lk2|Szablony dodające kategorie}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Kategorie2(frame)
return WykazSzablon(frame,"Kategorie",true);
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów ramki {{nobold|{{Code|frame}}}} funkcji tablicy transportu modułu:
| 1 = Szablon ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} przyjmuje te same parametry, co szablon {{s|Kategorie}} | nagłówek1=tak
}}
Przykłady użycia:
<syntaxhighlight lang="mediawiki">
{{#invoke:Skrót|Kategorie2|1=<kategoria 1>|_1=<nazwa sortowania 1>|2=<kategoria 2>|_2=<nazwa sortowania 2>|...}}
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
qhonnkr4b818r3qtauzwrgjoxmaybdh
Wikibooks:Moduły/Sekcja referencyjna
4
63280
560649
555619
2026-11-08T14:19:05Z
Persino
2851
560649
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Sekcja referencyjna}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Ta funkcja o nazwie: {{Code|{{sr|#p["Sekcja referencyjna"]|p=Sekcja referencyjna}}}}, jak i szablon: {{Code|{{s|Sekcja referencyjna}}}} (lub jego wersja skrótowa: {{Code|{{s|sr}}}} - w postaci przekierowania do jego dłuższej wersji), służy do wyświetlania na normalnej lub stronie zbiorczej linków inteligentnych danego podręcznika, jeżeli podamy jego artykuł wraz z, lub bez, nagłówka, lub nagłówek z hashem, z artykułem w zmiennej w: {{Code|podstrona}} (lub ten parametr podany w wersji skrótowej {{Code|p}}), też można linkować do strony głównej podręcznika, nie podając żadnego artykułu w funkcji w: {{sr|#p["Sekcja referencyjna"]|p=Sekcja referencyjna}}, w zmiennej: {{Code|strona}} (lub w wersji jego skrótowej {{Code|s}}), w zmiennej w jej pierwszym parametrze numerowanym, lub w jej wersji szablonowej.
Ta funkcja lub jej odpowiednik szablonowy wyświetla na stronie normalnej artykułu link do artykułu, a na stronie zbiorczej link do identyfikatora jakiegoś obiektu na stronie.
Inne funkcje użyte w module: {{Code|{{ld2|Sekcja referencyjna}}}}, są funkcjami pomocniczymi do głównej jego funkcji, która służy do wywołania w ramce w jej odpowiedniku szablonowym, podany tutaj na samym początku tej strony, te funkcje służą też do użycia w innych modułach, np.: {{ld2|StronicowyParser/Potrzebne}}.
Funkcje tutaj opisują obsługę linków inteligentnych (tzw. linki inteligentne), który koloruje linki w zależności do jakiej kategorii szablon zaliczy stronę wskazaną w nim. Zestaw możliwych kodów linkowych, znajduje się na stronie {{s|Link wewnętrzny}}, w miejscu pod tabelą nawigacyjną {{s|Tabela nawigacyjna}}, według jego wikikodu opisu.
=== Dlaczego te funkcje w opisywanym module, jak i szablon, o który jest zdefiniowany ===
Moduł {{ld2|Sekcja referencyjna}}, i też szablon {{s|Sekcja referencyjna}} (używany w postaci przekierowania do niego {{s|sr}}), który wykorzystuje ten moduł do swojej definicji, zostały stworzone do używania w spisach treści, oraz wewnątrz zwyczajnych stron książki jako odnośnik do sekcji (rozdziału/podrozdziału/itp.).
Ideą tego modułu (szablonu) było rozwiązanie pewnego problemu pojawiającego się, gdy strona zostanie wydrukowana w formie PDF-a, ale nie na papier.
Normalnie, gdy spis treści zawiera linki do rozdziałów tworzonych normalnym sposobem (przez wikilinki), to w wydrukowanej formie
te linki zostają odnośnikami bezwzględnymi do strony Wikibooks. Gdy użytkownik kliknie w taki link w PDF-ie, to zostanie
przekierowany do przeglądarki '''WWW''' z otwartą stroną Wikibooks. Psuje to użytkowanie takiej strony, gdyż użytkownik zazwyczaj
zakłada, że gdy kliknie na odnośnik w spisie treści, to ten przeniesie go na odpowiednią stronę ''wewnątrz'' PDF-a.
Ten moduł (szablon) rozwiązuje ten problem, przez warunkową zamianę linków do stron sekcji w linki lokalne do sekcji wewnątrz strony do druku.
W niektórych generatorach '''PDF'''-a taka zamiana skutkuje tym, że takie linki umieszczone w spisach treści, powodują przeniesienie do odpowiedniej
strony, a nie przeskok do strony '''WWW''' (pozostałe generatory po prostu nie generują linków w ogóle).
== {{Śródtytuł|p.Indentyfikator_lub_podstrona_wikiadresu_strony}}{{Code|p.Indentyfikator_lub_podstrona_wikiadresu_strony}} ==
Funkcja zwraca nagłówek strony, jeżeli istnieje, lub jego podstronę, a jeżeli ona nie ma żadnej podstrony według tego adresu, to cały ten adres, który nie jest adresem {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|ustep}} | _1 = Nazwa strony ustępu strony, co z niego robimy nazwę linku,
| 2 = {{Code|czy_ustep}} | _2 = Jeżeli {{Code|true}} liczy wtedy nagłówek, a jeżeli tego nie ma to podstronę.
}}
Jeżeli {{Code|ustep{{=}}nil}}, w takim razie jest zwracana wartość parametru tego, czyli {{Code|nil}}.
Aby nie uzyskać identyfikatora strony, to drugi parametr, czyli {{Code|czy_ustep}}, nie może przyjmować wartości logicznej {{Code|true}}, tylko jako {{Code|false}} lub {{Code|nil}} - wtedy zwracana jest wartość argumentu {{Code|ustęp}}. A jeżeli podamy wartość {{Code|true}}, gdy zmienna {{Code|ustep}} zawiera nagłówek, to zwracany jest właśnie on bez znaku {{Code|#}}, a jeżeli nie zawiera on tego, tylko podstronę, wtedy zwracana jest jego podstrona. W przeciwny wypadku zwracana jest sama wartość argumentu {{Code|ustep}}.
== {{Śródtytuł|p.Nazwa_od_niewielkiej_lub_wielkiej_litery}}{{Code|p.Nazwa_od_niewielkiej_lub_wielkiej_litery}} ==
Funkcja zamienia w nazwie linku pierwszy znak, który jest od litery, aby był od dużej lub małej litery, w zależności od parametrów.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|nazwa}} | _1 = Nazwa linku strony.
| 2 = {{Code|od malej}} | _2 = Zamienia pierwszą literę, pierwszy znak, nazwy linku na małą literę.
| 3 = {{Code|od dużej}} |_3 = Zamienia pierwszą literę, pierwszy znak, nazwy linku na dużą literę.
}}
Te parametry nie mogą się zaprzeczać między sobą, tzn. oba ostatnie parametry nie mogą być nie {{Code|true}}.
W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony.
== {{Śródtytuł|p.Strona_zbiorcza}}{{Code|p.Strona_zbiorcza}} ==
Funkcja zwraca parametry trzy linku wskazane w stopce tego rozdziału przygotowane specjalne dla stron zbiorczych sama do siebie do elementu wskazywanego przez stworzony nagłówek z parametrów tej funkcji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Strona_zbiorcza(strona,podstrona,nazwa,czy_ustep,czy_pod_ustep,od_malej,od_duzej,pelnanazwajednostki)...end;
</syntaxhighlight>
Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy.
Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"]|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jej parametrach.
Nagłówek strony jest tworzony z: {{Code|strona}} i {{Code|podstrona}}, także na podstawie parametru {{Code|czy_pod_ustep}}, gdy nagłówek jest pusty, on jesty wyznaczany z: {{Code|pelnanazwajednostki}} {{LinkPatrz|pelnanazwajednostki}}, a później jest do tego wykorzystywana zmienna: {{Code|czy_pod_ustep}}, do liczenia właściwego nagłówka.
Parametr nazwy linku jest w zmiennej: {{Code|nazwa}}, a jezeli ona nie istnieje, wtedy wykorzystujemy do tego element {{Code|strona}}, do którego wykorzystywana jest w: {{LinkŚródtytuł|p.Indentyfikator_lub_podstrona_wikiadresu_strony}}, która nie zawsze musi modyfikować tej zmiennej.
Funkcja: {{LinkŚródtytuł|p.Nazwa_od_niewielkiej_lub_wielkiej_litery}}, ustala odpowiednio zmodyfikowaną nazwę, według zmiennych, które powinny być niesprzeczne, chodzi tu o: {{Code|od_malej}} i {{Code|od_duzej}}, w przeciwnym wypadku lub jeżeli one nie są ustawione, wtedy nazwa linku pozostaje niezmieniona.
Funkcja zwraca trzy parametry jednocześnie, czyli '''nazwę strony''', jej '''nagłówek''' i '''nazwę linku'''.
== {{Śródtytuł|p.Wolumin}}{{Code|p.Wolumin}} ==
Funkcja zwraca paraetry linku do podnego artykułu podręcznika, ewentualnie z nazwą nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Wolumin(strona,podstrona,nazwa,czy_ustep,od_malej,od_duzej,pelnanazwajednostki)...end;
</syntaxhighlight>
Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy.
Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jej definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji: {{LinkŚródtytuł|p["Sekcja referencyjna"]}}, przy których znajduje się ich opis, podanych przy jej parametrach.
Jeżeli parametr: {{Code|strona}}, nie istnieje, to ona jest tworzona na podstawie: {{Code|pelnanazwajednostki}} {{LinkPatrz|pelnanazwajednostki}}, nie używajac parametru: {{Code|podstrona}}. A jeżeli on istnieje, to nowa wartość: {{Code|strona}}, jest tworzona ze starego: {{Code|strona}} i {{Code|podstrona}}.
Funkcja zwraca dwa parametry jednocześnie, czyli policzoną '''nazwę strony''' ona może być z nagłówkiem, policzonej z parametru: {{Code|strona}}, ewentualnie: {{Code|podstrona}}, i '''nazwę linku''' z: {{Code|nazwa}}, a jeżeli ona nie istnieje to ona jest tworzona z: {{Code|strona}}, wykorzystując funkcję: {{LinkŚródtytuł|p.Indentyfikator_lub_podstrona_wikiadresu_strony}}.
== {{Śródtytuł|p["Sekcja referencyjna"]}}{{Code|p["Sekcja referencyjna"]}} ==
Szablon stylowy linków inteligentnych, jest on z kodami na stronie {{s|Link wewnętrzny/opis}}, który się mieści pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jej parametrze, tam są też linkujące do tej samej strony, czyli do kaskadowych szablonu arkusza stylów '''CSS''', które są odnadawania barwy linków, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Funkcja koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez kody, a do tego celu używa {{NS|k=d|l=tak}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Sekcja referencyjna"]=function(frame)...end;
</syntaxhighlight>
; Parametry podstawowe{{dk}}
: Parametry, które raczej powinny być umieszczone w parametrach szablonu, ale nie muszą być tam w szczególnych przypadkach
{{OpisParametrów
| tytuł = Parametrami tablicy ramki modułu, które są podane w rodzicu w szablonie lub w samej ramce, jeżeli jest podany parametr {{Parametr|wyspecjalizowana|tak}} w niej, a one są:
| 1 = {{Code|1}}, {{Code|s}} lub {{Code|strona}} | _1 = Jest to artykuł w podręczniku, ewentualnie z nagłówkiem, zdefiniujmy go jako: {{Code|strona}}.
| 2 = {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} | _2 = Nazwa linku wyświetlana w artykule, zdefiniujmy go jako: {{Code|nazwa}}.
| 3 = {{Code|3}}, {{Code|p}} lub {{Code|podstrona}} | _3 = Podstrona dodawana do linku podczas rozważać, wtedy artykuł, będzie o jeden lub wyżej, głębiej w drzewie danej przestrzeni nazw, zdefiniujmy go jako: {{Code|podstrona}}.
| 4 = {{Code|4}}. {{Code|u}} lub {{Code|ustęp}} | _4 = Jeśli przyjmuje wartość niepustą, to nazwa wyświetlana linku jest jego nagłówek, jeżeli istnieje, lub jego podstrona albo sama strona, w przypadku przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz nibyprzestrzeni nazw {{lr2|Brudnopis}}, w przestrzeni nazw {{Np|Project|link=tak}}, a także przestrzeni użytkownika {{Np|User|link=tak}}, a w przypadku nie podania nazwy strony {{Code|strona}} (lub jego skrót: {{Code|s}}) lub {{Code|1}}, to parametr {{Code|ustęp}} zachowuje się odwrotnie, wtedy nazwę strony, do której linkuje szablon, przyjmujemy domyślnie, że jest to nazwa książki, w przestrzeniach nazw w dwóch pierwszych nie widać różnicy działania tego parametru, już jest różnica w nibyprzestrzeniach nazw dwóch ostatnich, tutaj ten szablon podaje subnazwę książki, a nie jej adres, gdzie przy {{Parametr|ustęp|tak}} (lub jego synonim numerowany: {{Parametr|4|tak}}) (lub jego skrót: {{Parametr|u|tak}}) podaje cały adres, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|czy_ustęp}}.
| 5 = {{Code|m}}, {{Code|od małej}} | _5 = Jeśli niepuste, wyświetlany jest link od małej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od malej}}.
| 6 = {{Code|d}}, {{Code|od dużej}} | _6 = jeśli niepuste, wyświetlany jest link od dużej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od dużej}}.
| 7 = {{Code|t}}, {{Code|pod-ustęp}} | _7 = na stronach zbiorczych skraca nazwę nagłówka, która na stronie artykułów podręcznika byłaby nazwą strony, do substrony, zdefiujmy go jako: {{Code|czy_pod_ustep}}.
| 8 = {{Code|b}}, {{Code|bieżąca}} | _8 = Jeśli zmienna: {{Code|podstrona}}, lub jej koledzy nie są podane, wtedy adres książki jest liczony względem bieżącej.
}}
{{OpisParametrów
| tytuł = Parametry dodatkowe:
| 1 = Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego. | nagłówek1=tak
}}
{{OpisParametrów
| tytuł = Parametry sterowania instrukcją warunkową:
| 1 = {{Code|o}}, {{Code|astandardowo}} | _1 = Funkcja generuje link do artykułu na stronie zbiorczej, wtedy funkcja tak działa na stronie zbiorczej, jak by nie była nią.
| 2 = {{Code|c}}, {{Code|nagłówkowo}} | _2 = Funkcja przy fałszywej wartości powyższego parametry, funkcja generuje odśnośnik na danej stronie do obiektu na niej, do identyfikatora jakiegoś elementu, wtedy szablon działa na stronie, jak by był stroną zbiorczą.
}}
----
W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}} {{Patrz|pelnanazwajednostki}}, oznaczająca: '''pełną nazwa jednostki''' uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli według: {{Code|nazwa przestrzeni nazw}} {{Patrz|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}, a jeżeli jakaś z tych zmiennych nie została podana, to traktowana jest, jakby była podana, w takim razie te niepodane są liczona na podstawie parametrów aktualnej strony, a jeśli są niepodane, wtedy jest sprawdzane jedynie ich nieistnienie, na podstawie tego wszystkiego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"]|p=Pudełko/Tom II}}, z tej zmiennej jest liczona '''pełna nazwa książki''', używając funkcji: {{sr|#m["PEŁNANAZWAKSIĄŻKI"]|p=Nazwy/Tom IV}} w funkcjach: {{LinkŚródtytuł|p.Strona_zbiorcza}} i {{LinkŚródtytuł|p.Wolumin}}, parametry pudełek mogą wskazywać na inny artykuł niż aktualny, ale tak nie musi być, byle tylko adres książki się zgadzał z tą aktualną, przy nie podaniu parametrów przestrzennych i jednostki, a z nimi adres woluminy może być inny. Ale parametry pudełek też mogą wskazywać na inny podręcznik, czy wielopoziomowy podręcznik w przestrzeniach nieksiążkowych, jak w przestrzeni {{Np|Project|link=tak}}.
----
Te parametry powyżej są jednocześnie parametrami szablonu {{s|Sekcja referencyjna}} (lub jego wersji skrótowej {{s|sr}}). Te parametry możemy podać też w formie funkcyjnej:
<syntaxhighlight lang="lua">
local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna");
local link=sekcja_referencyjna_modul["Sekcja referencyjna"]{args={strona=..., nazwa=.., podstrona=..., ...}};
</syntaxhighlight>
W ramce funkcyjnej parametry ze znakami nienależącymi do alfabetu łacińskiego piszmy w cudzysłowach w nawiasach kwadratowych, czyli w formie: {{Code|["pod-ustęp"]{{=}}...}}, czy parametry numerowe w nawiasach bez cudzysłowu: {{Code|[1]{{=}}...}}, a parametry normalne piszemy: {{Code|strona{{=}}...}}.
Funkcja w uruchamianiu ma dwa warianty, na normalnej stronie niezbiorczej uruchamiana jest funkcja: {{LinkŚródtytuł|p.Wolumin}}, a na jakikolwiek stronie zbiorczej według '''{{ld|StronicowyParser|Stronicowego Parsera}}''' na podstawie modułu {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli strony zefiniowanej w: {{Code|{{m|StronicowyParser/StronaSubst}}}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.Strona_zbiorcza}}, (a ta przedostatnia jest uruchamiana przez funkcję: {{Code|{{m|StronicowyParser|CzyStronaSubst}}}}, która zwraca wynik {{Code|tak}}, gdy strona dana jest bieżąca lub podana na podstawie parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, która jest stroną zbiorczą, w przeciwnym wypadku mamy wynik: {{Code|nil}}, gdy nie).
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
97q17max3gsyx10f6fikr3fwnvonc24
Wikibooks:Moduły/Strony
4
63361
560648
560422
2026-11-08T14:14:20Z
Persino
2851
560648
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Strony}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local strony_modul=require("Module:Strony");
</syntaxhighlight>
Dzięki któremu można wypisywać funkcje należącego do niego.
Funkcje z {{Code|p.}} należą do tablicy transportu zwracanej przez moduł: {{Code|{{ld2|Strony}}}}, a bez niego to są funkcje lokalne w tym module oznaczone słowem {{Code|local}}.
Funkcje w tym module są wykorzystywane do sprawdzania, czy dany tekst spełnia jakieś warunki, funkcje bez {{Code|p.}} są wykorzystywane tylko w tym module, a z tym są bazą do implementacji modułu: {{Code|{{ld2|Sprawdź}}}}, w funkcji: {{Code|{{m|Sprawdź|Parametry}}}}, które służą do sprawdzania parametrów szablonów za pomocą funkcji w module: {{Code|{{ld2|Strony}}}}, ta funkcja też korzysta z innych funkcji z innych modułów w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
== Właściwe lokalne funkcje sprawdzające ==
=== {{Śródtytuł|checkUri}}{{Code|checkUri}} ===
Funkcja jest formułowana do użycia tylko w module, w której został zdefiniowany, ze względu na lokalność tej funkcji.
Funkcja sprawdza, czy podany: {{Code|uri}}, jest adresem URL.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function checkUri(uri)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|uri}} | _1 = Sprawdzany tekst, który ma spełniać pewne kryteria.
}}
Funkcja obsługuje protokoły dla adresów URL podane w liście dla stronie {{ld2|Strony/dane}}:
{{Tbl|uchwyt=p.obslugiwaneUriSchematy|tekst=
<syntaxhighlight lang="lua">
p.obslugiwaneUriSchematy={
-- najczęściej używane
'http://', 'https://', '//',
-- możliwe
'bitcoin:', 'ftp://', 'ftps://', 'geo:', 'git://', 'gopher://',
'irc://', 'ircs://', 'magnet:', 'mailto:', 'mms://', 'news:',
'nntp://', 'redis://', 'sftp://', 'sip:', 'sips:', 'sms:', 'ssh://',
'svn://', 'tel:', 'telnet://', 'urn:', 'worldwind://', 'xmpp:',
};
</syntaxhighlight>}}
Funkcja zwraca wartość logiczną {{Code|true}}, gdy podany adres jest adresem URL, według obsługiwanych protokołów, a jeśli nie, to ona zwróci wartość {{Code|false}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local uri="https://em.wikibooks.org/wiki/Mechanik_teoretyczna";
local czy_tak=checkUri(uri);
</syntaxhighlight>
Funkcja w przykładzie zrzuci wartość logiczną {{Code|czy_tak {{=}} true}}, czyli prawdę.
=== {{Śródtytuł|checkImageName}}{{Code|checkImageName}} ===
Funkcja jest formułowana do użycia tylko w module, w której został zdefiniowany, ze względu na lokalność tej funkcji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function checkImageName(name_nieprzetworzone,przestrzen)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|name_nieprzetworzone}} | _1 = Nazwa pliku z przestrzenia nazw lub nie, w zależności od drugiego parametru.
| 2 = {{Code|przestrzen}} | _2 = Czy w nazwie pliku mają być uwzględniane przestrzenie nazw.
}}
Funkcja sprawdza, czy podany adres wewnętrzny jest adresem pliku. Możliwe są dwa warianty, wariant: {{Code|przestrzen {{=}} false}}, gdzie nie może być podana przestrzeń nazw plikowa, tzn., która jest podana w zmiennej na stronie: {{Code|{{ld2|Strony/dane}}}}, którego fragment:
{{Tbl|uchwyt=prefix|tekst=
<syntaxhighlight lang="lua">
prefix = {
plik = true,
image = true,
grafika = true,
file = true,
media = true,
},
</syntaxhighlight>}}
lub może, ale nie musi być podana z dodatkowymi przestrzeniami, nawet nieplikowymi, w takim przypadku ta funkcji zwróci wynik: {{Code|false}}, a w przeciwnym wypadku, funkcja może zrzucić wartość {{Code|true}}, ale nie musi.
Możliwe są rozszerzenia plików, dla których ta funkcja może dać wynik {{Code|true}}, tzn.:
{{Tbl|uchwyt=extension|tekst=
<syntaxhighlight lang="lua">
extension = {
flac = true,
jpg = true,
jpeg = true,
jpe = true,
mid = true,
midi =true,
mp3 = true,
mpg = true,
mpeg = true,
oga = true,
ogg = true,
ogv = true,
opus = true,
png = true,
svg = true,
tif = true,
tiff = true,
gif = true,
xcf = true,
pdf = true,
djvu = true,
wav = true,
webm = true,
webp = true,
},
</syntaxhighlight>}}
Ale plik też nie musi mieć rozszerzenia, ale może, pliki bez nich bez przestrzeni plikowych:
{{Tbl|uchwyt=name|tekst=
<syntaxhighlight lang="lua">
name = {
["@"]=true,
},
</syntaxhighlight>}}
Funkcja zwróci wartość {{Code|true}}, gdy strona jest prawidłowych adresem wewnętrznym strony przestrzeni plikowej, gdy drugi argument jest {{Code|false}}, strona nie może być podana z przestrzeniami plikowymi, ale z innymi już tak, co wtedy jest to traktowane jako część nazwy w przestrzeni nazw: {{Np|File|link=tak}}. Gdy drugi parametr ma wartość prawdziwą, wtedy strona może być podana z przestrzenią lub nie, byle tylko był to, pełny lub nie, adres strony pliku.
Przykłady użycia:
; Pierwszy
<syntaxhighlight lang="lua">
local plik="Grafika:Strona_pliku.jPG";
local czy_tak=checkImageName(plik,true);
</syntaxhighlight>
Strona jest podana, z prawidłową przestrzenią plikową, z prawidłowym rozszerzeniem pliku, więc wtedy funkcja zrzuci wartość {{Code|czy_tak}} równą {{Code|true}}.
; Drugi
<syntaxhighlight lang="lua">
local plik="Strona_pliku.jPG";
local czy_tak=checkImageName(plik,false);
</syntaxhighlight>
Strona jest podana bez przestrzeni plikowej, ale z prawidłowym rozszerzeniem pliku, więc wtedy funkcja zrzuci wartość {{Code|czy_tak}} równą {{Code|true}}.
=== {{Śródtytuł|findPlainHttp}}{{Code|findPlainHttp}} ===
Funkcja jest formułowana do użycia tylko w module, w której został zdefiniowany, ze względu na lokalność tej funkcji.
Funkcja sprawdza, czy adres: {{Strong|http://}}, czy {{Strong|https://}}, w tekście, czy istnieje, sprawdza, czy ona nie jest częścią linku zewnętrznego, a jeśli tak, to funkcja zwraca wynik równy, ale nie {{Code|nil}}, w przeciwnym wypadku {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function findPlainHttp(text)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|text}} | _1 = Sprawdzany tekst, który ma spełniać pewne kryteria.
}}
Przykłady użycia:
; Pierwszy
<syntaxhighlight lang="lua">
local tekst="Oto jest tekst z linkiem https://pl.wikibooks.org ilustrujący zasada działania Wikibooks";
local czy_tak=findPlainHttp(tekst);
</syntaxhighlight>
Funkcja zrzuci wynik pozytywny nienilowy.
; Drugi
<syntaxhighlight lang="lua">
local tekst="Oto jest tekst z linkiem [https://pl.wikibooks.org pl.wikibooks.org] ilustrujący zasada działania Wikibooks";
local czy_tak=findPlainHttp(tekst);
</syntaxhighlight>
Funkcja zrzuci wynik {{Code|nil}}.
=== {{Śródtytuł|findAnyHttp}}{{Code|findAnyHttp}} ===
Funkcja jest formułowana do użycia tylko w module, w której został zdefiniowany, ze względu na lokalność tej funkcji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function findAnyHttp(text)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|text}} | _1 = Sprawdzany tekst, który ma spełniać pewne kryteria.
}}
Funkcja sprawdza, czy adres: {{Strong|http://}}, czy {{Strong|https://}}, jest w tekście, wtedy funkcji zwróci wynik nienilowy, a w przeciwnym wypadku {{Code|nil}}.
Przykłady użycia:
; Pierwszy
<syntaxhighlight lang="lua">
local tekst="Oto jest tekst z linkiem https://pl.wikibooks.org ilustrujący zasada działania Wikibooks";
local czy_tak=findAnyHttp(tekst);
</syntaxhighlight>
Funkcja zrzuci wynik pozytywny nienilowy.
; Drugi
<syntaxhighlight lang="lua">
local tekst="Oto jest tekst z linkiem [https://pl.wikibooks.org pl.wikibooks.org] ilustrujący zasada działania Wikibooks";
local czy_tak=findAnyHttp(tekst);
</syntaxhighlight>
Funkcja zrzuci wynik pozytywny nienilowy.
=== {{Śródtytuł|findFile}}{{Code|findFile}} ===
Funkcja jest formułowana do użycia tylko w module, w której został zdefiniowany, ze względu na lokalność tej funkcji.
Funkcja sprawdza, czy w tekście jest wywołanie plikowe. Funkcja chowaj wyjątek z obrazka generowanego przez: {{Code|{{s|Link-interwiki|z przestrzenią=tak}}}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function findFile(text)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|text}} | _1 = Sprawdzany tekst, który ma spełniać pewne kryteria.
}}
Funkcja rozpoznaje rozszerzenia plików: {{Strong|Plik}}, {{Strong|File}}, {{Strong|Grafika}} i {{Strong|Image}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local tekst="Strona z plikiem: [[Plik:Strona_plikowa.jpg|thumb|right|250px|link=w:Strona_na_wikipedii|Oto jest opis]], a oto jest dalszy tekst.";
local czy_tak=findFile(tekst);
</syntaxhighlight>
Funkcja zwróci wartość nienilową, czyli pozytywną.
=== {{Śródtytuł|checkSizeFile}}{{Code|checkSizeFile}} ===
Funkcja sprawdza rozmiary, który jest łańcuchem znaków, czy zgadza się z określonym formatem według ustawień w module: {{Code|{{ld2|Strony/dane}}}}, według dwóch dostępnych trybów.
; Tryb {{nobold|{{ZobaczTeż|Tryb fałszywy}}}} fałszywy, gdy {{Nobold|{{Code|tryb {{=}} false}}}} {{nobold|{{Patrz|tryb {{=}} false}}}}{{Dk}}
{{Tbl|uchwyt=p.tablica_parsowania_rozmiaru_pliku|tekst=
<syntaxhighlight lang="lua">
p.tablica_parsowania_rozmiaru_pliku={
"^%s*%d+px%s*$",
"^%s*x%d+px%s*$",
"^%s*%d+x%d+px%s*$",
};
</syntaxhighlight>}}
Wtedy to jest zgodne te rozmiary z mechanizmem {{NS|k=mw|w=tak|pk=n|l=tak}}, przeciwieństwie do: {{LinkZobaczTeż|Tryb prawdziwy}}, trybu prawdziwego.
; Tryb {{nobold|{{ZobaczTeż|Tryb prawdziwy}}}} prawdziwy, gdy {{Nobold|{{Code|tryb {{=}} true}}}} {{nobold|{{Patrz|tryb {{=}} true}}}}{{Dk}}
{{Tbl|uchwyt=p.tablica_parsowania_rozmiaru_pliku_2|tekst=
<syntaxhighlight lang="lua">
p.tablica_parsowania_rozmiaru_pliku_2={
"^%d+%.?%d*(%a*)$",
"^%d+%.?%d*(%%)$",
"^x%d+%.?%d*(%a*)$",
"^x%d+%.?%d*(%%)$",
"^%d+%.?%d*(%a*)x%d+%.?%d*(%a*)$",
"^%d+%.?%d*(%%)x%d+%.?%d*(%a*)$",
"^%d+%.?%d*(%a*)x%d+%.?%d*(%%)$",
"^%d+%.?%d*(%%)x%d+%.?%d*(%%)$",
};
</syntaxhighlight>}}
Jest to tryb rozrzeszerzony do mechanizmu: {{LinkZobaczTeż|Tryb fałszywy}}, trybu fałszywego.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function checkSizeFile(size,tryb)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|size}} {{Patrz|size}} | _1 = Łańcuch znaków,który przedstawia tylko szerokość lub tylko wysokość albo jednocześniew jednym szerokość i wysokość,
| 2 = {{Code|tryb}} {{Patrz|tryb}} | _2 = Dostępne tryby: {{Code|false/true}}, pierwszy tryb, to dla {{LinkPatrz|tryb {{=}} false}}, a drugi {{LinkPatrz|tryb {{=}} true}}.
}}
Przykłady użycia:
<syntaxhighlight lang="lua">
local rozmiar="12emx150px";
local tryb=true;
local czy_tak=checkSizeFile(rozmiar,tryb);
</syntaxhighlight>
Funkcja zwróci wartość nienilową, czyli pozytywną.
== Funkcje obuduwujące właściwe funkcje sprawdzające ==
=== {{Śródtytuł|p.SprawdzanieURL}}{{Code|p.SprawdzanieURL}} ===
Funkcję uruchamia się w ramce w wikikodzie w szablonie lub w kodzie {{lpg|Lua}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SprawdzanieURL(frame)...end;
</syntaxhighlight>
Funkcja w swojej budowie bezpośrednio wykorzystuje funkcję {{LinkŚródtytuł|checkUri}}.
Funkcja wykorzystuje do zbierania parametrów funkcji funkcję: {{LinkŚródtytuł|p.PobierzParametr|Parametry/Tom XIV}}, którego parametr może być podany w postaci zmiennej łańcuchowej znaków, lub w postaci tablicy, a również w zmiennej {{Code|args}}, w tablicy, która jest parametrem funkcji, a nawet mogą być parametry podane w ramce z wywołaniem tej funkcji.
{{OpisParametrów
| tytuł = Parametry ramki funkcji {{nobold|{{Code|frame}}}} tablicy transportu:
| 1 = {{Code|url}} lub {{Code|1}} | _1 = Adres URL strony internetowej.
}}
Kolejność ważności parametrów jest podana w kolejności prostej jak to wyliczono parametry ramki.
Ramka wywołana w wikikodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} uwzględnia parametry ramki, gdy ma on dodatkowy parametr dziecka {{Parametr|wyspecjalizowana|tak}}, w pezeciwnym wypadku liczą się parametry rodzica.
Jeżeli tym argumentem funkcji nie jest tabela, czy sama ramka, wtedy jest to łańcuch znakowych, który tyle znaczy, co te jej parametry, czyli: {{Code|url}}, czy {{Code|1}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local uri="https://em.wikibooks.org/wiki/Mechanik_teoretyczna";
local strony_modul=require("Module:Strony");
local czy_tak=strony_modul.SprawdzanieURL(uri);
</syntaxhighlight>
Funkcja w przykładzie zrzuci wartość logiczną {{Code|czy_tak {{=}} true}}, czyli prawdę.
=== {{Śródtytuł|p.SprawdzanieNazwyPlikowe}}{{Code|p.SprawdzanieNazwyPlikowe}} ===
Funkcję uruchamia się w ramce w wikikodzie w szablonie lub w kodzie {{lpg|Lua}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SprawdzanieNazwyPlikowe(frame)...end;
</syntaxhighlight>
Funkcja w swojej budowie bezpośrednio wykorzystuje funkcję {{LinkŚródtytuł|checkImageName}}.
Funkcja wykorzystuje do zbierania parametrów funkcji funkcję: {{LinkŚródtytuł|p.PobierzParametr|Parametry/Tom XIV}}, którego parametr może być podany w postaci zmiennej łańcuchowej znaków, lub w postaci tablicy, a również w zmiennej {{Code|args}}, w tablicy, która jest parametrem funkcji, a nawet mogą być parametry podane w ramce z wywołaniem tej funkcji.
{{OpisParametrów
| tytuł = Parametry ramki funkcji {{nobold|{{Code|frame}}}} tablicy transportu:
| 1 = {{Code|nazwa}} lub {{Code|1}} | _1 = Nazwa strony, ewentualnie z rozszerzeniem strony.
| 2 = {{Code|przestrzeń}} lub {{Code|2}} | _2 = Czy ma uwzględniać przestrzeń nazw strony.
}}
Kolejność ważności parametrów jest podana w kolejności prostej jak to wyliczono parametry ramki.
Ramka wywołana w wikikodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} uwzględnia parametry ramki, gdy ma on dodatkowy parametr dziecka {{Parametr|wyspecjalizowana|tak}}, w pezeciwnym wypadku liczą się parametry rodzica.
Jeżeli tym argumentem funkcji nie jest tabela, czy sama ramka, wtedy jest to łańcuch znakowych, który tyle znaczy, co te jej parametry, czyli: {{Code|nazwa}}, czy {{Code|1}}.
Przykłady użycia:
; Pierwszy
<syntaxhighlight lang="lua">
local plik="Grafika:Strona_pliku.jPG";
local strony_modul=require("Module:Strony");
local czy_tak=strony_modul.SprawdzanieNazwyPlikowe(plik);
</syntaxhighlight>
Funkcja zrzuci wynik pozytywny nienilowy.
; Drugi
<syntaxhighlight lang="lua">
local plik="Strona_pliku.jPG";
local strony_modul=require("Module:Strony");
local czy_tak=strony_modul.SprawdzanieNazwyPlikowe(plik);
</syntaxhighlight>
Funkcja zrzuci wynik nienilowy.
=== {{Śródtytuł|p.ZnajdowanieNormalnychStronHttp}}{{Code|p.ZnajdowanieNormalnychStronHttp}} ===
Funkcję uruchamia się w ramce w wikikodzie w szablonie lub w kodzie {{lpg|Lua}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieNormalnychStronHttp(frame)...end;
</syntaxhighlight>
Funkcja w swojej budowie bezpośrednio wykorzystuje funkcję {{LinkŚródtytuł|findPlainHttp}}.
Funkcja wykorzystuje do zbierania parametrów funkcji funkcję: {{LinkŚródtytuł|p.PobierzParametr|Parametry/Tom XIV}}, którego parametr może być podany w postaci zmiennej łańcuchowej znaków, lub w postaci tablicy, a również w zmiennej {{Code|args}}, w tablicy, która jest parametrem funkcji, a nawet mogą być parametry podane w ramce z wywołaniem tej funkcji.
{{OpisParametrów
| tytuł = Parametry ramki funkcji {{nobold|{{Code|frame}}}} tablicy transportu:
| 1 = {{Code|tekst}} lub {{Code|1}} | _1 = Jest to tekst do sprawdzenia, czy strony {{Strong|http://}} i {{Strong|https://}}, są nie w linku zewnętrznym.
}}
Kolejność ważności parametrów jest podana w kolejności prostej jak to wyliczono parametry ramki.
Ramka wywołana w wikikodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} uwzględnia parametry ramki, gdy ma on dodatkowy parametr dziecka {{Parametr|wyspecjalizowana|tak}}, w pezeciwnym wypadku liczą się parametry rodzica.
Jeżeli tym argumentem funkcji nie jest tabela, czy sama ramka, wtedy jest to łańcuch znakowych, który tyle znaczy, co te jej parametry, czyli: {{Code|tekst}}, czy {{Code|1}}.
Przykłady użycia:
; Pierwszy
<syntaxhighlight lang="lua">
local tekst="Oto jest tekst z linkiem https://pl.wikibooks.org ilustrujący zasada działania Wikibooks";
local strony_modul=require("Module:Strony");
local czy_tak=strony_modul.ZnajdowanieNormalnychStronHttp(tekst);
</syntaxhighlight>
Funkcja zrzuci wynik pozytywny nienilowy.
; Drugi
<syntaxhighlight lang="lua">
local tekst="Oto jest tekst z linkiem [https://pl.wikibooks.org pl.wikibooks.org] ilustrujący zasada działania Wikibooks";
local strony_modul=require("Module:Strony");
local czy_tak=strony_modul.ZnajdowanieNormalnychStronHttp(tekst);
</syntaxhighlight>
Funkcja zrzuci wynik {{Code|nil}}.
=== {{Śródtytuł|p.ZnajdowanieJakikolwiekStronHttp}}{{Code|p.ZnajdowanieJakikolwiekStronHttp}} ===
Funkcję uruchamia się w ramce w wikikodzie w szablonie lub w kodzie {{lpg|Lua}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieJakikolwiekStronHttp(frame)...end;
</syntaxhighlight>
Funkcja w swojej budowie bezpośrednio wykorzystuje funkcję {{LinkŚródtytuł|findAnyHttp}}.
Funkcja wykorzystuje do zbierania parametrów funkcji funkcję: {{LinkŚródtytuł|p.PobierzParametr|Parametry/Tom XIV}}, którego parametr może być podany w postaci zmiennej łańcuchowej znaków, lub w postaci tablicy, a również w zmiennej {{Code|args}}, w tablicy, która jest parametrem funkcji, a nawet mogą być parametry podane w ramce z wywołaniem tej funkcji.
{{OpisParametrów
| tytuł = Parametry ramki funkcji {{nobold|{{Code|frame}}}} tablicy transportu:
| 1 = {{Code|tekst}} lub {{Code|1}} | _1 = Jest to tekst do sprawdzenia, czy strony {{Strong|http://}} i {{Strong|https://}}, są w tekście.
}}
Kolejność ważności parametrów jest podana w kolejności prostej jak to wyliczono parametry ramki.
Ramka wywołana w wikikodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} uwzględnia parametry ramki, gdy ma on dodatkowy parametr dziecka {{Parametr|wyspecjalizowana|tak}}, w pezeciwnym wypadku liczą się parametry rodzica.
Jeżeli tym argumentem funkcji nie jest tabela, czy sama ramka, wtedy jest to łańcuch znakowych, który tyle znaczy, co te jej parametry, czyli: {{Code|tekst}}, czy {{Code|1}}.
Przykłady użycia:
; Pierwszy
<syntaxhighlight lang="lua">
local tekst="Oto jest tekst z linkiem https://pl.wikibooks.org ilustrujący zasada działania Wikibooks";
local strony_modul=require("Module:Strony");
local czy_tak=strony_modul.ZnajdowanieJakikolwiekStronHttp(tekst);
</syntaxhighlight>
Funkcja zrzuci wynik pozytywny nienilowy.
; Drugi
<syntaxhighlight lang="lua">
local tekst="Oto jest tekst z linkiem [https://pl.wikibooks.org pl.wikibooks.org] ilustrujący zasada działania Wikibooks";
local strony_modul=require("Module:Strony");
local czy_tak=strony_modul.ZnajdowanieJakikolwiekStronHttp(tekst);
</syntaxhighlight>
Funkcja zrzuci wynik pozytywny nienilowy.
=== {{Śródtytuł|p.ZnajdowaniePlikowe}}{{Code|p.ZnajdowaniePlikowe}} ===
Funkcję uruchamia się w ramce w wikikodzie w szablonie lub w kodzie {{lpg|Lua}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowaniePlikowe(frame)...end;
</syntaxhighlight>
Funkcja w swojej budowie bezpośrednio wykorzystuje funkcję {{LinkŚródtytuł|findFile}}.
Funkcja wykorzystuje do zbierania parametrów funkcji funkcję: {{LinkŚródtytuł|p.PobierzParametr|Parametry/Tom XIV}}, którego parametr może być podany w postaci zmiennej łańcuchowej znaków, lub w postaci tablicy, a również w zmiennej {{Code|args}}, w tablicy, która jest parametrem funkcji, a nawet mogą być parametry podane w ramce z wywołaniem tej funkcji.
{{OpisParametrów
| tytuł = Parametry ramki funkcji {{nobold|{{Code|frame}}}} tablicy transportu:
| 1 = {{Code|tekst}} lub {{Code|1}}| _1 = Tekst do spradzenia, czy strona ma wywołania plikowe.
}}
Kolejność ważności parametrów jest podana w kolejności prostej jak to wyliczono parametry ramki.
Ramka wywołana w wikikodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} uwzględnia parametry ramki, gdy ma on dodatkowy parametr dziecka {{Parametr|wyspecjalizowana|tak}}, w pezeciwnym wypadku liczą się parametry rodzica.
Jeżeli tym argumentem funkcji nie jest tabela, czy sama ramka, wtedy jest to łańcuch znakowych, który tyle znaczy, co te jej parametry, czyli: {{Code|tekst}}, czy {{Code|1}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local tekst="Strona z plikiem: [[Plik:Strona_plikowa.jpg|thumb|right|250px|link=w:Strona_na_wikipedii|Oto jest opis]], a oto jest dalszy tekst.";
local strony_modul=require("Module:Strony");
local czy_tak=strony_modul.ZnajdowaniePlikowe(tekst);
</syntaxhighlight>
Funkcja zwróci wartość nienilową, czyli pozytywną.
=== {{Śródtytuł|p.SprawdzanieRozmiaruPliku}}{{Code|p.SprawdzanieRozmiaruPliku}} ===
Funkcję uruchamia się w ramce w wikikodzie w szablonie lub w kodzie {{lpg|Lua}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SprawdzanieRozmiaruPliku(frame)...end;
</syntaxhighlight>
Funkcja w swojej budowie bezpośrednio wykorzystuje funkcję {{LinkŚródtytuł|checkSizeFile}}.
Funkcja wykorzystuje do zbierania parametrów funkcji funkcję: {{LinkŚródtytuł|p.PobierzParametr|Parametry/Tom XIV}}, którego parametr może być podany w postaci zmiennej łańcuchowej znaków, lub w postaci tablicy, a również w zmiennej {{Code|args}}, w tablicy, która jest parametrem funkcji, a nawet mogą być parametry podane w ramce z wywołaniem tej funkcji.
{{OpisParametrów
| tytuł = Parametry ramki funkcji {{nobold|{{Code|frame}}}} tablicy transportu:
| 1 = {{Code|rozmiar}} lub {{Code|1}} | _1 = Jak w: {{LinkPatrz|size}}.
| 2 = {{Code|tryb}} lub {{Code|2}} | _2 = Jak w: {{LinkPatrz|tryb}}.
}}
Kolejność ważności parametrów jest podana w kolejności prostej jak to wyliczono parametry ramki.
Ramka wywołana w wikikodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} uwzględnia parametry ramki, gdy ma on dodatkowy parametr dziecka {{Parametr|wyspecjalizowana|tak}}, w pezeciwnym wypadku liczą się parametry rodzica.
Jeżeli tym argumentem funkcji nie jest tabela, czy sama ramka, wtedy jest to łańcuch znakowych, który tyle znaczy, co te jej parametry, czyli: {{Code|rozmiar}}, czy {{Code|1}}, wtedy zachodzi {{LinkPatrz|tryb {{=}} false}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
d83xzpe08qxb0mo2m20s72eq52vqoex
Wikibooks:Moduły/StronicowyParser/SpisTreści/Tom I
4
63522
560630
560419
2026-11-08T12:56:55Z
Persino
2851
560630
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SpisTreści}}|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 lokalne ==
=== {{Śródtytuł|Ile}}{{Code|Ile}} ===
Funkcja liczy liczbę elementów we wszystkich podtabelach tabeli {{Code|tabela_rozdzial_artykulow2}} {{Patrz|tabela_rozdzial_artykulow2}}, licząc od drugiej tabeli, po pierwszej tabeli mieści się podtabela z informacjami o rozdziale, w której znajdują się artykuły określone dalszymi podtabelami.
Tymi podtabelami są od {{Code|2}} do {{Code|7}}, czyli {{Code|6}} tabelek, w których są artykuły, które zaliczamy do kategorii wliczane, tzn. one nie znajdują się w takich rozdziałach {{ZobaczTeż|przetłumaczone rozdziały}} przetłumaczonych na małą literę, ale przedtem na niego była działana funkcją: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, usuwając z nich odstępy na końcach, w tym dolne myślniki, a wewnątrz zamieniając kolejne dolne myślniki i spacje na jedną spację.
Metafunkcja, w metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}, w: {{Code|{{ld2|Parametry}}}}, aby porównać to z tablicą {{Code|{{sr|#p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu|p=StronicowyParser/obiekty}}}}, by zaliczyć je do tego typu:
{{Tbl|uchwyt=p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu|tekst=
<syntaxhighlight lang="lua">
p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu={
["licencja"]=true,
["inne"]=true,
["bibliografia"]=true,
["zobacz też"]=true,
["linki zewnętrzne"]=true,
};
</syntaxhighlight>}}
Musimy wykorzystać tak przetłumaczone rozdziały {{LinkZobaczTeż|przetłumaczone rozdziały}}, przy pomocy tej metatabelki, czy one zgadzają się z tą tablicą.
Te rozdziały należą do kategorii rozdziałów, w których artykuły są pomijane przez: '''{{ld|StronicowyParser|Stronicowy parser}}''', ale jeżeli one należą do rozdziału spisu treści lub rzeczy, to tam jednak nie są takie, inaczej jest poza.
A od: {{Code|7}} do {{Code|13}}, znajdują się podtabele z artykułami, które już należą już tam, czyli wtedy te drugie {{Code|6}} tabel.
A ta powyższa tabela mieści się: {{Code|{{ld2|StronicowyParser/obiekty}}}}, a jego opis w: {{Code|{{sr|#p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu|p=StronicowyParser/obiekty}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow2)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|numer_rodzaju_artykulu}} | _1 = Numer podtabeli elementtu, do którego wsadzamy element.
| 2 = {{Code|tabela_rozdzial_artykulow2}} | _2 = Tabela wraz podtabelami, od {{Code|1}} do {{Code|13}}, ale liczenie jest od {{Code|2}}.
}}
=== {{Śródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}{{Code|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}} ===
==== Opis pobieżny funkcji ====
Funkcja do wstawiania elementów z ogólnej tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}, za pomocą funkcji wstawianej jako parametr: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} {{Patrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}, do odpowiedniej pozycji artykularnej od: {{Code|2}} do {{Code|13}}, a pozycja {{Code|1}}, to pozycja rozdziałowa, ona jest określana przez zmienną: {{Code|numer_rodzaju_artykulow_w_nie_podreczniku}} {{Patrz|numer_rodzaju_artykulow_w_nie_podreczniku}}, a pozycja, którą wsadzamy to: {{Code|tab_stare}} {{Patrz|tab_stare}}.
Funkcja zwraca pozycje:
<syntaxhighlight lang="lua">
return numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy,tablica_artykulow_zebranych;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis tych parametrów funkcji:
| 1 = {{Code|numer_rodzaju_artykulu_poprz}} {{Patrz|numer_rodzaju_artykulu_poprz}} | _1 = Jest to wartość zwrócona przez funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}}, w odróżnieniu od: {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}}, jest mniejszy o jeden, czyli wtedy to była a poziomie przypisywania wartość {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}},
| 2 = {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{Patrz|tab_pozycja_elementow_w_spisie_rzeczy}} | _2 = Pierwsza artykularna zmienna zwrócona przez funkcję {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}.
| 3 = {{Code|tablica_artykulow_zebranych}} {{Patrz|tablica_artykulow_zebranych}} | _3 = Tablica do sprawdzania, czy artykuł z nagłówkiem, ma powtórzenie tego bez nagłówka, czyli dla tego bez tego jest inna numeracja niż z nagłówkiem, a gdy niema tego bez, to wtedy dzięki tej funkcji numeracja tak się zachowuje, jak tam by był ten element, co prawda jest tam dodawany, ale jako z informacją taką, że bz numeru ustalanym przez funkcję: {{LinkŚródtytuł|Ile}}, A przy okazji, aby tego elementu nie dodawać ponownie, to w nim jest ustalana druga zmienna na {{Code|1}}, a wcześniej była na {{Code|0}}, i dlatego ona była wtedy dodawana, a później już tak nie jest.
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY,tabela_rozdzial_artykulow2,tablica_artykulow_zebranych,wliczaj_artykuly_tego_rozdzialu,szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,--[[]]przedrostek_listy,tekstowy_przedrostek,w_rozdziale,linia_artykokow--[[]])...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|self}} {{Patrz|self}} | _1 = Zmienna obiektowa funkcji, z pominięciem, której funkcję można napisać zamiast {{Code|p.}} {{Patrz|p.}} jako {{Code|p:}} {{Patrz|p:}}.
| 2 = {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} | _2 = Opis jest jak w: {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulow_w_nie_podreczniku,tab_stare);
</syntaxhighlight>
Funkcja jest wywoływana w:
<syntaxhighlight lang="lua">
numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy,tablica_artykulow_zebranych=WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,WsadzanieParametryDoTablicy(linia,czy_linia_uwzgledniana),tabela_rozdzial_artykulow,tablica_artykulow_zebranych,wliczaj_artykuly_tego_rozdzialu,szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,--[[]]przedrostek_listy,tekstowy_przedrostek,w_rozdziale,linia_artykokow);
</syntaxhighlight>
Gdzie funkcja: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}, to jest: {{LinkŚródtytuł|WsadzanieParametryDoTablicy}}.
| 3 = {{Code|tabela_rozdzial_artykulow2}} | _3 = Ta tabela działa według opisu jak w: {{LinkPatrz|tabela_rozdzial_artykulow2}}.
| 4 = {{Code|tablica_artykulow_zebranych}} | _4 = Diała jak w: {{LinkPatrz|tablica_artykulow_zebranych}}.
| 5 = {{Code|wliczaj_artykuly_tego_rozdzialu}} {{Patrz|wliczaj_artykuly_tego_rozdzialu}} | _5 = Jak przybiera odpowiadającą wartość fałszywą, to do: {{LinkPatrz|numer_rodzaju_artykulu}}, dodawane jest {{Code|6}}.
| 6 = {{Code|szablon}} {{Patrz|szablon}} | _6 = Jest to tekst zakodowany całego linku wewnętrznego, czy zewnętrznego, czy linku inteligentnego w postaci szablonu.
| 7 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} - | _7 = Kolejno to jest: '''nazwa przestrzeni nazw''', '''nazwa przestrzeni książki''' i '''nazwa książki'''.
| 8 = {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} | _8 = Jest to nazwa artykułu danego spisu treści.
| 9 = {{Code|pelna_nazwa_spisu_tresci}} {{Patrz|pelna_nazwa_spisu_tresci}} | _9 = Uchwyt do bazy kodowania tekstu strony spisu treści.
| 10 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} | _10 = Nazwa strony szablonowa, jak są wywoływane w postaci szablonowej, gdzie są rozwijane adresy względne stron, poczytaj: {{lr2|Moduły/StronicowyParser/Rozdziały}} {{Patrz|Moduły/StronicowyParser/Rozdziały}}.
| 11 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _11 = Uchwyt do tablicy bazy kodowania zapisany w samej bazie dla danego artykułu, używany zamiast:{{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 12 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _12 = Tablica bazy zapisana w postaci osobnej tablicy, a nie jej w wewnętrznej bazie, nie jak to było w postaci zmiennej {{LinkPatrz|nazwa_modulu}}, używana zamiast: {{LinkPatrz|nazwa_modulu}}.
| 13 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _13 = Tablica rozłożeń zmiennej {{Code|szablon}}, dla zmiennych szablonowych, i dla funkcji: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}.
| 14 = {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} | _14 = Obiekt i kod, czyli: zmienne charakteryzujące zmienną wnętrza: {{Code|szablon}} {{LinkPatrz|szablon}}.
| 15 = {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} | _15 = Tablica przekierować, aby nie rozpatrywać tego samego przekierowania wiele razy.
| 16 = {{Code|przedrostek_listy}} {{Patrz|przedrostek_listy}} | _16 = Tekstowy przedrostek listy z przedziału znaków: {{Code|<nowiki>[;%*:#]+</nowiki>}} {{Patrz|wzor_do_linii_z_lista}}, rozpoczynających pojedyncza linię.
| 17 = {{Code|tekstowy_przedrostek}} {{Patrz|tekstowy_przedrostek}} | _17 = Numeracja rozdziału, z jakim rozpoczyna się rozdział.
| 18 = {{Code|w_rozdziale}} {{Patrz|w_rozdziale}}} | _18 = Gdy link znajduje się w rozdziale dodatnim.
| 19 = {{Code|linia_artykokow}} {{Patrz|linia_artykokow}} | _19 = Cała linia z artykułem lub artykułami, tą linią równie dobrze może być rozdział, tu chodzi o rozdział dodatni.
}}
==== Opis pobieżny funkcji {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} ====
Przedstawiamy tutaj funkcję: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}, która jest opisana w punkcie: {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}.
Definicja funkcji w nagłówku:
<syntaxhighlight lang="lua">
__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulow_w_nie_podreczniku,tab_stare);
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tabela_rozdzial_artykulow2}} | _1 = Jak w: {{LinkPatrz|tabela_rozdzial_artykulow2}},
| 2 = {{Code|numer_rodzaju_artykulow_w_nie_podreczniku}} | _2 = Jak w: {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}},
| 3 = {{Code|tab_stare}} | _3 = Jak w: {{LinkPatrz|tab_stare}}.
}}
Ta funkcja została opisana już wcześniej.
==== Szczegółowy opis funkcji głównej ====
Uruchamiamy funkcję {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}, która jest zdefiniowana w module: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}.
Wywołujemy tę funkcję:
<syntaxhighlight lang="lua">
local tab_pozycja_elementow_w_spisie_rzeczy,numer_rodzaju_artykulu,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,nil,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych);
</syntaxhighlight>
Pierwszy zwracanym elementem: {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, jest to zmienna tablicowa, która opisuje parametry artykularno-linkowe, drugi: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, do której kategorii należy dany artykuł w linku, a trzeci parametr, to: {{Code|id}} {{Patrz|id}}, to zbierane są parametry linkowe z szablonu {{s|SpisTreści}}, czwarty to: {{Code|parametry_szablonu}} {{Patrz|parametry_szablonu}}, w przypadku szablonów inteligentnych linków, to są parametry wywołań tych szablonów, ostatni parametr to: {{Code|kom}} {{Patrz|kom}}, przedstawia on, jeśli {{Code|false}}, to artykuł zakwalifikowany został poprawnie do rozważań, a {{Code|true}} już nie.
To {{LinkPatrz|parametry szablonu}}, to jest tablica z trzech elementów, tzn.:
<syntaxhighlight lang="lua">
local parametry szablonu={tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,};
</syntaxhighlight>
{{OpisParametrów
| tytuł = Elementy tablicy:
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Tablica parametrów uzyskanych z argumentów, i ich wartości, nazwanych i nienazwanych.
| 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _2 = To jest nazwa uzyskanego szablonu linków inteligentnych lub nie.
| 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} | _3 = Tabela modyfikatorów rozkładanego szablonu.
}}
Jeśli parametr: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, istnieje, to tworzona jest z niego taka sama wersja lub przy nieistnieniu parametru {{LinkPatrz|wliczaj_artykuly_tego_rozdzialu}}, do niego jest dodawana jest liczba {{Code|6}}. W ten sposób możemy zbierać artykuły książki i inne, które należą do pewnych rozdziałów i które nie należą.
===== {{Śródtytuł|ParametrPierwszy}}{{Code|ParametrPierwszy}} =====
Funkcja zbierające dane z {{Code|tab_artykul}} {{Patrz|tab_artykul}}, którego to jest czteroelementowa tablica, dotycząca danego artykułu. Drugim parametrem: {{Code|czy_niedozwolone}} {{Patrz|czy_niedozwolone}}, jest zmienna logiczna mówiąca, czy wskazać w nazwie artykułu, czy są dozwolone znaki, jest to sprawdzenie według wyrażenia regularnego: {{Code|<nowiki>[|<>{}%[%]]</nowiki>}} {{Patrz|wzor_znaki_niedozwolone}} na podstawie funkcji {{LzLua|mw.ustring.match}}, czyli: {{Code|znaki_niedozwolone}} {{Patrz|znaki_niedozwolone}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
ParametrPierwszy(tab_artykul,czy_niedozwolone)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tab_artykul}} | _1 = Jak w: {{LinkPatrz|tab_artykul}}.
| 2 = {{Code|czy_niedozwolone}} | _2 = Jak w: {{LinkPatrz|czy_niedozwolone}}.
}}
Gdzie: {{Code|tab_artykul}} {{LinkPatrz|tab_artykul}}, który jest pierwszym parametrem przyjmowanym przez funkcję, jest zdefiniowany jako czteroelementowa tablica, którą przypisujemy do czterem osobnych parametrów:
<syntaxhighlight lang="lua">
local artykul=tab_artykul[1];
local parametry=tab_artykul[2];
local naglowek=tab_artykul[3];
local tablica_przekierowania=tab_artykul[4];
</syntaxhighlight>
Jeżeli, któreś z parametrów z: {{LinkPatrz|tab_artykul}}, tzn. element jego {{Code|2}}-gi i {{Code|3}}-ci, istnieje, to układana jest trzyelementowa tablica z elementów od {{Code|1}} do {{Code|3}}, z dodatkowym elementem: {{Code|<nowiki>["LINK"] = true</nowiki>}}, a element czwarty to jest: {{Code|tablica_przekierowania}} {{Patrz|tablica_przekierowania}}, a jeżeli te dwa elementy, nie licząc czwartego, wcale nie istnieją, wtedy jest tworzony łańcuch znakowy z tego pierwszego elementu. Tak tworzymy, nową wersję tablicy: {{Code|tab_artykul}} {{Patrz|tab_artykul-nowa wersja}}, lub łańcuch znakowy, w postaci:
<syntaxhighlight lang="lua">
tab_artykul=((artykul)and(parametry or naglowek))and{[1]=artykul,[2]=parametry,[3]=naglowek,["LINK"]=true,} or artykul;
</syntaxhighlight>
Funkcja zwraca trzy parametry, tzn. parametry: {{LinkPatrz|tab_artykul-nowa wersja}}, {{LinkPatrz|znaki_niedozwolone}} i tablicę przekierowania: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, co skrótowo piszemy: {{Patrz|zwracane-ParametrPierwszy}}:
<syntaxhighlight lang="lua">
return tab_artykul,znaki_niedozwolone,tablica_przekierowania;
</syntaxhighlight>
===== Rozwijanie nazwy linku artykułu =====
Do rozwijania nazwy linku służy funkcja: {{Code|{{sr|#p.DekodowanieTekstuNazwLinku|p=StronicowyParser/Pomocne}}}} {{Patrz|p.DekodowanieTekstuNazwLinku}}, pod względem szablonowym i nie tylko.
Funkcja rozwija tą nazwę tym: {{LzLua|frame:preprocess}}, jedynie nie rozwija szablonów stronicowego parsera, podane podkategoriach w kategorii: {{Code|{{lk2|Szablony stronicowe}}}}, za pomocą odpowiednich metod, bo to by wywołało nieskończoną pętle, i dlatego takie szablony są zamieniane tylko na wywołania symboliczne.
==== Dalszy opis funkcji nadrzędnej przy istnieniu parametrów linkowych normalnych, czy szablonowych (linków inteligentnych) ====
===== Gdy: {{Code|numer_rodzaju_artykulu_poprz}} {{Code|{{=}}}} {{Code|1}} =====
Tworzony jest numerek: {{Code|numer_rodzaju_artykulu_w_podreczniku}} {{Patrz|numer_rodzaju_artykulu_w_podreczniku}}, który w stosunku do: {{LinkPatrz|numer_rodzaju_artykulu}}, jest większy o jeden, a schemat tej operacji:
<syntaxhighlight lang="lua">
local numer_rodzaju_artykulu_w_podreczniku=numer_rodzaju_artykulu+1;
</syntaxhighlight>
====== Tworzenie tablicy: {{nobold|{{Code|tablica_artykulow_zebranych}}}} ======
Opiszemy tutaj tablicę: {{Code|tablica_artykulow_zebranych}}, opisaną wstępnie w punkcie: {{LinkPatrz|tablica_artykulow_zebranych}}.
; Tablica{{dk}} {{nobold|{{Code|tab_pozycja_elementow_w_spisie_rzeczy[1]}}}}, nie jest tablicą{{dk}}
Gdy element pierwszy: {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, nie jest tablicą, wtedy jedynie liczymy, czy ona ma znaki niedozwolone: {{Code|wzor_znaki_niedozwolone}} {{LinkPatrz|wzor_znaki_niedozwolone}}, a póżniej wiedząc ten element, który jest aktualną nazwą artykułu kiążki, tworzymy tabelę: {{ZobaczTeż|tablica_artykulow_zebranych-inicjacja}}:
<syntaxhighlight lang="lua">
tablica_artykulow_zebranych={aktualny_artykul_ksiazki,0,false,};
</syntaxhighlight>
; Gdy element{{dk}} {{nobold|{{Code|tab_pozycja_elementow_w_spisie_rzeczy[1]}}}}, jest łańcuchem znaków{{dk}}
Wpierw liczone są parametry z wywołania, z opcją, czy ma liczyć, czy nazwa artykułu ma znaki niedozwolone, z funkcji: {{LinkŚródtytuł|ParametrPierwszy}}:
<syntaxhighlight lang="lua">
tab_pozycja_elementow_w_spisie_rzeczy[1],znaki_niedozwolone,tablica_przekierowania=ParametrPierwszy(tab_pozycja_elementow_w_spisie_rzeczy[1],true);
</syntaxhighlight>
; Inna książka - atrybut, tzn. czy artykuł wychodzi poza daną książkę, lub jego przekierowanie w niej kieruje na stronę poza nią{{dk}}
Dalej sprawdzane jest, czy książka przyjmuje atrybut, tzn.: '''czy inna książka''', wtedy liczymy to z kodu z tablicy przekierowania: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, jeżeli jej wartość istnieje, tzn.: {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}}:
<syntaxhighlight lang="lua">
local czy_inna_ksiazka=tablica_przekierowania and tablica_przekierowania[1] and tablica_przekierowania[1][5] or nil;
</syntaxhighlight>
; Tablica przekierowania artykułu względem bieżącej książki{{dk}}
Element: {{Code|<nowiki>[1][5]</nowiki>}}, to jest element tablicy: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, który przedstawia, czy to jest artykuł bieżącej książki, którego przekierowanie kieruje, wtedy ten parametr ma wartość {{Code|true}}, a gdy adres przekierowania wskazuje na inną książkę, wtedy {{Code|false}}. Jeśli ten parametr ma wartość fałszywą, wtedy jest sprawdzane, czy jest tablicą w: {{Code|czy_tablica}} {{Patrz|czy_tablica}}, według:
<syntaxhighlight lang="lua">
czy_tablica=parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1]);
</syntaxhighlight>
Lub w przeciwnym wypadku liczymy parametry artykularne z tablicy przekierowania: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, a jeżeli parametry lub nagłówek przekierowania, w tej tablicy, istnieje, wtedy parametr: {{Code|czy_tablica}} {{LinkPatrz|czy_tablica}}, przyjmuje wartość {{Code|true}}, w przeciwnym wypadku wartość fałszywą.
Gdy ten element nie jest tablicą, to tworzona jest nazwa pełna artykułu: {{Code|tab_pozycja_elementow_w_spisie_rzeczy[1]}} i umieszczana w tablicy: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, w sposób, co dalej jest tworzona w dalszych operacjach tablica: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, z podobną tablicą początkową jak w poprzednim przypadku jego tworzenia, czyli jak w: {{LinkZobaczTeż|tablica_artykulow_zebranych-inicjacja}}.
; Tablica zebranych artykułów i porównywanie artykułu z nagłówkiem, czy istnieje wcześniejszy artykuł bez niego{{dk}}
Gdy element jest jednak tablicą, też jest liczona pełna nazwa artykułu (gdy nazwa artykułu przekierowania istnieje, wtedy ona jest liczona z: {{Code|tablica_przekierowania[2]}}, w przeciwnym wypadku, jeśli element: {{Code|tab_pozycja_elementow_w_spisie_rzeczy[1]}}, jest tablicą, wtedy liczymy ją z: {{Code|tab_pozycja_elementow_w_spisie_rzeczy[1][1]}}, w innym wypadku z: {{Code|tab_pozycja_elementow_w_spisie_rzeczy[1]}}), a z niej liczymy tablicę: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, jak w: {{LinkZobaczTeż|tablica_artykulow_zebranych-inicjacja}}, w przypadku pierwszego artykułu nienagłówkowego.
A w przypadku pierwszego artykułu, który może być tylko z nagłówkiem, bo tego bez, w spisie, artykuł poprzedni nie istnieje, a więc tego tam nie ma tam w takim przypadku.
Gdy funkcja napotkała artykuł o takim samym stronie, co poprzednio, to do wartości początkowej, bez definiowania jeszcze raz tej samej tablicy, jest ustawiane odpowiednio:
<syntaxhighlight lang="lua">
tablica_artykulow_zebranych[3]=true;
</syntaxhighlight>
Co informuje, że artykuł jest ten sam, tylko inny nagłówek niż poprzedni, a poprzedni pierwszy jest bez niego.
====== Rozwijanie nazwy linku ======
Kompletowany jest drugi element tablicy: {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, rozwijając szablony w nim względem funkcji: {{LinkPatrz|p.DekodowanieTekstuNazwLinku}}. Dalej z tej nazwy są usuwane znaki specjalne według funkcji: {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}, z modułu: {{Code|{{ld2|Specjalne}}}}. Następnie działamy funkcją: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, które końcowe spacje usuwa, a wewnętrz powtarzające zamienia kolejne na jedną spację.
====== Dodawanie do tablicy problemów, jeśli nastąpił problem ze znakami niedozwolonymi ======
A między czasie, gdy mamy niedozwolone znaki: {{Code|znaki_niedozwolone}} {{LinkPatrz|znaki_niedozwolone}}, za pomocą funkcji pytającej sprawdzamy, czy element inny zgłoszeniowy został dodany do tablicy problemów: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, aż w końcu dodajemy ten problem, jeśli go nie ma przy pomocy funkcji: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
====== {{Śródtytuł|inicjacja_i_kompletowanie_zmiennych}}Ustalanie nazwy jednostki, kompletowanie linii artykułów i inicjowanie pozycji, w tabeli zebranych elementów, w tabeli zebranych elementów ======
Ustalamy nazwę jednostki z funkcji: {{Code|{{sr|#p.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem|p=StronicowyParser/Potrzebne}}}}, i inicjujemy tą wartością, czyli: {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}, wartość starą: {{Code|stara_nazwa_jednostki}} {{Patrz|stara_nazwa_jednostki}}, według:
<syntaxhighlight lang="lua">
---- Piszanie pełnej nazwy jednostki bez parametrów i nagłówka;
local nazwa_jednostki=stronicowyparser_potrzebne_modul.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(tab_pozycja_elementow_w_spisie_rzeczy[1],false);
---- Inicjowanie starej wartości tą policzoną;
local stara_nazwa_jednostki=nazwa_jednostki;
</syntaxhighlight>
Dalej {{Śródtekst|uchwyt=tabela_rozdzial_artykulow2|tekst=inicjujemy pozycję, jeżeli nie istnieje taka, na podstawie policzonej wartości: {{Code|numer_rodzaju_artykulu_w_podreczniku}} {{LinkPatrz|numer_rodzaju_artykulu_w_podreczniku}}, w tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}}}, według:
<syntaxhighlight lang="lua">
if(not tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku])then tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku]={};end;
</syntaxhighlight>
Co {{Śródtekst|uchwyt=linia_artykokow|tekst=dalej linię artykułów {{Code|linia_artykokow}} {{LinkPatrz|linia_artykokow}}, kompletujemy, funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, z modułu: {{Code|{{ld2|Szablonowe}}}}, znając tablicę: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}}}, według:
<syntaxhighlight lang="lua">
linia_artykokow=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(linia_artykokow,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
</syntaxhighlight>
====== Uwzględnianie niepodanego elementu nienagłówkowego w tablicy zebranych parametrów ======
Gdy tablica przekierowania: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, istnieje, wtedy sprawdzamy, czy zmienna logiczna: {{Code|czy_tablica}} {{LinkPatrz|czy_tablica}}, jest prawdą i czy: {{Code|stara_nazwa_jednostki}} {{LinkPatrz|stara_nazwa_jednostki}}, czy jest nie pusta, w takim razie jej element: {{Code|<nowiki>[2]</nowiki>}}, przydzielany jest do zmiennej: {{Code|przekierowanie}} {{Patrz|przekierowanie}}, czyli parametrów nazwy artykułu przekierowania.
Inicjujemy nową zmienną: {{Code|przekierowanie}} {{LinkPatrz|przekierowanie}}, z artykułu, parametrów i nagłówka, ale wpierw sprawdzamy, czy dwa ostatnie istnieją, według:
<syntaxhighlight lang="lua">
przekierowanie=przekierowanie and ((tablica_przekierowania[3] or tablica_przekierowania[4]) and {przekierowanie, tablica_przekierowania[3], tablica_przekierowania[4],["LINK"]=true,} or przekierowanie) or nil;
</syntaxhighlight>
Tworzony jest nowy element: {{Code|nazwa jednostki}} {{Patrz|nazwajednostki-nowy}}, z: {{LinkPatrz|nazwa jednostki}}, parametrów i nagłówka, według rysu:
<syntaxhighlight lang="lua">
nazwa_jednostki={nazwa_jednostki, tab_pozycja_elementow_w_spisie_rzeczy[1][2], tab_pozycja_elementow_w_spisie_rzeczy[1][3],["LINK"]=true,};
</syntaxhighlight>
Jeżeli parametr drugi: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, a trzeci jej jest: {{Code|false}}, wtedy kreujemy tablicę: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}.
Wsadzamy element: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, do zbioru: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, przy pomocy funkcji: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}.
Następnie jej drugiemu elementowi: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, dawana jest wartość {{Code|1}}, aby nie dało się ponownie tworzyć i wsadzać element: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, do tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}, na pozycji: {{Code|numer_rodzaju_artykulu_w_podreczniku}} {{LinkPatrz|numer_rodzaju_artykulu_w_podreczniku}}, według funkcji: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}, odpowiedzialny za artykuł nienagłówkowy, którego nie ma w spisach treści książki, ale są one w wersji nagłówkowej.
Jeżeli tablica przekierowania: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, jednak nie istnieje, wtedy tak samo sprawdzamy, co poprzednio potem, ale po spełnieniu tych warunków robimy inną tablicą: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, i tę tablicę robimy podobnie, i inicjujemy te same elementy też podobnie.
====== Uwzględnianie pozycji podanej w tablicy zebranych elementów ======
Tworzymy zmienną: {{Code|ile_dodac_do_poziomu_artykulu}} {{Patrz|ile_dodac_do_poziomu_artykulu}}, z drugiego elementu tablicy: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, następnię tworzymy inną zmienną: {{Code|ile_dodac_do_poziomu_artykulu_lub_nil}} {{Patrz|ile_dodac_do_poziomu_artykulu_lub_nil}}, co uwidaczniamy wzorem:
<syntaxhighlight lang="lua">
local ile_dodac_do_poziomu_artykulu_lub_nil=((ile_dodac_do_poziomu_artykulu)and(ile_dodac_do_poziomu_artykulu>0))and ile_dodac_do_poziomu_artykulu or nil;
</syntaxhighlight>
Tą zmienną wykorzystamy do sformułowania: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}.
{{Śródtekst|tekst=Tworzymy zmienną: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, którą wsadzamy do tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}, na pozycji: {{Code|numer_rodzaju_artykulu_w_podreczniku}} {{LinkPatrz|numer_rodzaju_artykulu_w_podreczniku}}, przy pomocy funkcji: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}.|uchwyt=__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}
===== Gdy: {{Code|numer_rodzaju_artykulu_poprz}} {{Code|>{{=}}}} {{Code|2}} =====
Będziemy tutaj operowali, gdy parametr drugi zwracany z funkcji: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}, wskazuje na nie artykuł książki, zatem ten rozdział jest właśnie dla tego przypadku.
====== Odkodowanie i przygotowanie zmiennych artykułu linku, jej nazwy, także kodu języka i projektu ======
* Gdy pierwszy element tablicy: {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, jest tabelką, wtedy do przetworzenia jego wykorzystujemy funkcję: {{LinkŚródtytuł|ParametrPierwszy}}.
* Dla drugiego takiego elementu z tego, co jest nazwą linku, wtedy gdy nazwa linku normalnego, czy szablonowego, jest zakodowana, to ją odkodujemy, którego każdy jego element kod odkodujemy według funkcji: {{LinkPatrz|p.DekodowanieTekstuNazwLinku}}, następnie z niej usuwamy znaki specjalne według: {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}, następnie usuwamy końcowe spacje i wewnątrz kolejne spacje zastępujemy jedną spacją, co robimy według: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}.
* Dla trzeciego i czwartego takiego elementu, to jest kolejno kod języka i projektu, z: {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, te elementy odkodujemy, następnie z nich usuwamy końcowe spacje, a wewnątrz kolejne spacje zastępujemy jedną, według tej samej funkcji, co powyżej.
====== Przygotowanie zmiennych, inicjowanie tablicy: {{Code|tab_stare}}, i wsadzanie jej do tablicy ogólnej: {{Code|tabela_rozdzial_artykulow2}} ======
Dalej {{PobierzŚródtekst|tabela_rozdzial_artykulow2}}, także co {{PobierzŚródtekst|linia_artykokow}}, co wszystko robimy podobnie jak w rozdziale: {{LinkŚródtytuł|inicjacja_i_kompletowanie_zmiennych}}.
{{PobierzŚródtekst|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}
==== Definicja tablicy: {{Code|tab_stare}}, inicjowanie jej elementów w różnych przypadkach ====
Przedstawiamy tutaj ogólną definicję zmiennej: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, które określają ogólnie jaką jego wersję użyć w poszczególnych punktach funkcji: {{LinkŚródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}. Ta wersja jest jedynie sformułowana dla artykułów w rozdziale, a nie dla rozdziałów, bo w tablicy, do której jest ona wsadzana przyjmuje ona możliwy numerek od "2" do "13", a nie również "1". Jej wersja ogólna:
<syntaxhighlight lang="lua">
local tab_stare=
{
---- Początek elementów alternatywnych
{
---- Początek wersji dla artykułu
tab_pozycja_elementow_w_spisie_rzeczy[1], -- artykuł bez pełnej nazwy ksiązki, bez parametrów i nagłówka, bo ich nie posiadałna samym początku;
---- lub
{
tab_pozycja_elementow_w_spisie_rzeczy[1][1], -- artykuł bez pełnej nazwy książki, bez parametrów i nagłówka;
tab_pozycja_elementow_w_spisie_rzeczy[1][2], -- parametry artykułu, z którym on został wywołany w linku;
tab_pozycja_elementow_w_spisie_rzeczy[1][3], -- nagłówek strony, wstawiany po parametrach lub nazwie strony;
["LINK"]=true, -- zmienna świadcząca, że nazwa artykułu jest z parametrami i nagłówkiem;
},
---- Koniec wersji dla artykułu
tab_pozycja_elementow_w_spisie_rzeczy[2], -- nazwa linku artykułu normalnego, czy szablonowego;
---- Początek elementów alternatywnych dla przekierowania
---- Początek parametrów przekierowania
{
tablica_przekierowania[2], -- nazwa przekierowania artykułu;
tablica_przekierowania[3], -- parametry przekierowania artykułu;
tablica_przekierowania[4], -- nagłówek przekierowania artykułu;
["LINK"]=true, -- zmienna świadcząca, że nazwa przekierowania artykułu jest z parametrami i nagłówkiem;
},
---- lub
tablica_przekierowania[2], -- nazwa przekierowania artykułu;
---- Koniec parametrów przekierowania
tablica_przekierowania[1], -- tablica o definicji, którego przedstawienie:
{
nazwa_przestrzeni_strony_przekierowania, -- nazwa przestrzzeni nazw przekierowania artykułu;
nazwa_przestrzeni_ksiazki_strony_przekierowania, -- nazwa przestrzeni książki przekierowania artykułu;
nazwa_ksiazki_strony_przekierowania, -- nazwa książki orzekierowania artykułu;
true/false, -- true - gdy strona jest przekierowaniem, gdy strona główna jest taka, lub przekierowanie wskazuje na tą samą książkę, chociaż ono jest w innej;
true/false, -- true, gdy przekierowanie wskazuje na artykuł w taj samej książce, false, gdy nie;
czy_przekierowanie, -- (true/false): true - gdy strona, nie główna podręcznika, jest przekierowaniem, false - jak nie, to strona główna książki;
};
-- koniec przedstawienia;
---- lub
nil, -- dotycząca przekierowania artykułu, a tutaj strona nie ma przekierowania, więc: nil;
nil, -- dotycząca tablicy książki, na którą wskazuje przekierowanie, a tutaj nie ma tablicy, więc: nil;
---- Koniec elementów alternatywnych dla przekierowania
tab_pozycja_elementow_w_spisie_rzeczy[3], -- kod języka;
tab_pozycja_elementow_w_spisie_rzeczy[4], -- kod projektu;
tab_pozycja_elementow_w_spisie_rzeczy[5], -- adres artykułu bez przetworzenia w linku normalnym,czy szablonowym;
ile_dodac_do_poziomu_artykulu_lub_nil, -- parametr mający tylko wartości: 1, gdy do aktualnego poziomu musi być dodane jeden - ta wartość, tylko dotyczy artykułów należących do tej samej książki, lub: nil, gdy nic, czyli w pozostałych przypadkach;
tab_pozycja_elementow_w_spisie_rzeczy[6], -- "url", pozycja świadcząca, że to jest link zewnętrzny, a nil, gdy to jest normalny link;
},
---- lub
tab_pozycja_elementow_w_spisie_rzeczy[1], -- nazwa artykułu linku, która nie posiada, ani parametrów w sobie, a po nim nagłówka, lub bezpośrednio po nazwie;
---- lub
{
tab_pozycja_elementow_w_spisie_rzeczy[1][1], -- nazwa artykułu bez parametrów i nagłówka;
tab_pozycja_elementow_w_spisie_rzeczy[1][2], -- parametry artykułu, z którym on został wywołany w linku;
tab_pozycja_elementow_w_spisie_rzeczy[1][3], -- nagłówek strony, wstawiany po parametrach lub nazwie strony;
["LINK"]=true, -- zmienna świadcząca, że nazwa artykułu jest z parametrami i nagłówkiem;
},
---- Koniec elementów alternatywnych
{
#przedrostek_listy, -- poziom listy, w którym jest artykuł, dla artykułów w linii z listą, w innym wypadku dla artykułu znajdującego się w rozdziale dodatnim, czy ujemnym jest zero;
przedrostek_listy, -- przedrostek listy w postaci wzoru, który jest w nawiasie we wzorze do przechwytywaniem: "\n([;%*:#])", przeciwnie dla artykułów w rozdziale dodatnim ma wartość pustą;
tekstowy_przedrostek, -- numeracja dodatkowa w rozdziale dla artykułu, gdy nie ma takiej numeracji, bo nie da się jej wydzielić, to ma wartość pustą;
w_rozdziale, -- czy artykuł jest w rozdziale dodatnim normalnym, czy centrowanym znacznikowym lub szablonowym, wtedy "true", w przeciwnym wypadku: "false";
},
linia_artykokow, -- skompletowana linia z artykułem, dla którego jest pozycja: "tab_stare";
true/false, -- true, gdy nazwa artykułu pochodzi bezpośrednio od szablonu {{SpisTreści}}, a w przeciwnym wypadku ma wartość: false;
true/false, -- true, gdy artykuł pochodzi z tego samego podręcznika, przeciwnie: false;
---- Początek elementów alternaatywnych
Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow2), -- który numer artykułu, w momencie wsadzenia do tabeli zbierania rozdziałów i w nich artykułów, nawet w rozdziale;
---- lub
nil, -- nil, wtedy gdy link jest tak sobie dodany, który nie należy do żadnego spisu, a po nim elementy jego z nagłówkiem natomiast należą;
---- Koniec elementów alternatywnych
};
</syntaxhighlight>
W powyższym: {{Tag|syntaxhighlight|parametry=lang="lua"}}, dla elementu: {{Code|<nowiki>---- lub</nowiki>}}, jest powiedziane, że są dostępne alternatywy, które są zawarte w tablicy, że wybieramy te, aby nie spowodować czysto podwójnej tablicy, aby każda tablica zawierały inne elementy, jak wiele, a nie jedną tablicę, jak i łańcuchy znaków, wartość nil, powoduje, że czy ma być taka tablica, ale nie podwójna, co to znaczy podowójna, tzn. tablica w sobie zawiera inną jedyną tablicę, a tak nie może być, a jak zawiera jedną tablicę, to musi posiadać inne nienilowe elementy.
== Funkcje tablicy transportu ==
=== {{Śródtytuł|p.AnalizaNapisuWprowadzeniaTekstu}}{{Code|p.AnalizaNapisuWprowadzeniaTekstu}} ===
Funkcja przyjmuje jako parametr nieskompletowaną i nieprzetworzony tekst napisu wprowadzenia tekstu. On kompletuje i przekształca go w odpowiedni sposób, aby otrzymać czysty tekst tytułu rozdziału.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizaNapisuWprowadzeniaTekstu(rozdzial,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|rozdzial}} | _1 = Ten tekst tytułu rozdziału, o którym mówimy.
| 2 = {{Code|pelna_nazwa_spisu_tresci}} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci}}
| 3 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _3 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _5 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
}}
==== Obiekty typu {{nobold|{{Code|SZABLON}}}} ====
Funkcja korzysta z funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, funkcja ma zdefiniowaną pierwszą jej funkcję, która dla: {{Code|obiekt {{=}} "SZABLON"}}, używamy pierwsze dwie tabelę, te tabele:
Pierwsza, która służy do zamieniania szablonów na ich parametry, tutaj pierwsza, to jest tablica: {{Code|{{sr|#p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}:
{{tbl|uchwyt=p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu|tekst=
<syntaxhighlight lang="lua">
p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu={
["MDL:RozszerzonyLink"]=1,
["Kompletność"]="",
["Kompletność krótka"]="",
["Kompletność junior"]="",
["Książka"]="",
};
</syntaxhighlight>}}
Druga: {{Code|{{sr|#p.szablony_dozwolone_w_nazwach_linkowych|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.szablony_dozwolone_w_nazwach_linkowych}}, też służy do tego samego.
Funkcja wykorzystuje tablice szablonów korekt umieszczonych w nazwie linku, czy to normalnego, czy szablonowego (inteligentnego), którego definicja:
{{Tbl|uchwyt=p.szablony_dozwolone_w_nazwach_linkowych|tekst=
<syntaxhighlight lang="lua">
p.szablony_dozwolone_w_nazwach_linkowych={
["Korekta"] =2,
};
</syntaxhighlight>}}
===== Funkcje zawartości i dodatków, dla szablonów =====
One służą do zamieniania wywołań szablonowych na odpowiednie ich zawartości parametrów określone przez numery parametrów tych elementów w tych tabelach. Jeżeli przy którym wywołaniu przy wykorzystaniu kolejnych tych tabel przy użyciu funkcji: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}, nastąpiło zamienienie, to funkcja pierwsza w: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, zakańcza się z tą wartością. A jeżeli nie to uruchamia się funkcja dodatków: {{Code|{{sr|#p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu|p=StronicowyParser/Rozdziały}}}}, a jeśli nastąpiło zastąpienie, to funkcja kompletowania się kończy z tą wartością.
===== Szablonowe linki =====
Dalej, jeżeli tak się nie stało, to uruchamia się funkcja parametrów, w którym wywołanie szablonowe jest rozkładane na nazwę szablonu, modyfikatory i parametry. Dalej jest sprawdzanie, czy jest to link inteligentny według funkcji: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}}, a gdy jest, to funkcja kończy swoje działania z nazwą tego linku lub jego adresem wewnętrznym, a jeśli on nie jest tym, to sprawdza, czy są inne szablonowe linki, które podejrzewa się, poprzez wywołanie funkcji: {{Code|{{sr|#p.NazwaInnegoSzablonowegoLinkowegoObiektu|p=StronicowyParser/Potrzebne}}}}, a jeżeli jest tym linkiem, to funkcja składania zwraca też jak poprzednio nazwę linku lub jego adres wewnętrzny. A gdy nie, to w innym przypadku sprawdzane, czy to jest inny link wewnętrzny generowany przez szablony, które sprawdza funkcja tutaj: {{Code|{{sr|#p.NazwaInnegoSzablonowegoLinkowegoSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli szablon jest tym linkiem, to funkcja składania zwraca jego nazwę linkową.
===== Szablony rozwijane przez {{lpg|JavaScript}} =====
A następnym krokiem jest sprawdzanie, czy nazwa szablonu jest jednych z elementów z tablicy: {{LinkTbl|p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu}}, która ma ten element, te szablony wymienione w tej tablicy są po to, aby służyły do rozwijania przez JavaScript, są to elementy wikikodu, które są pracochłonne ze względu na ich skomplikowany kod, czy wikikod, nawet {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, i dlatego ich się nie rozwija przez stronicowy parser: {{Code|{{ld2|StronicowyParser}}}}, te nazwy szablonów są określone tablicą: {{Code|{{sr|#p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}:
{{Tbl|uchwyt=p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu|tekst=
<syntaxhighlight lang="lua">
p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu={
["Cytuj"]=true,
["Cytuj stronę"]=true,
["Cytuj pismo"]=true,
["Cytuj odcinek"]=true,
["Cytuj książkę"]=true,
["Cytuj grę komputerową"]=true,
};
</syntaxhighlight>}}
I funkcja wtedy zwraca skompletowany szablon bez rozwijania jego, pod warunkiem, jeżeli jest tym szablonem o tej nazwę szablonu wywołującego.
===== Co jest zwracane w przypadku szablonów =====
Te powyżej elementy dla funkcji parametrów, w niej wartości są zwracane do niej, a jeżeli ona przyjmuje wartość nienilową, to do funkcji składania zwracana jest jego wartość, a przeciwnie jest zwracane pierwszy parametr szablonu do niej.
==== Obiekty typu: {{nobold|{{Code|NOWIKI}}}}, {{nobold|{{Code|PRE}}}} i {{nobold|{{Code|ŹRÓDŁO}}}} ====
A gdy dla elementów, jeśli nazwa obiektu jest: {{Code|obiekt {{=}} "NOWIKI"}}, {{Code|obiekt {{=}} "PRE"}}, lub: {{Code|obiekt {{=}} "ŹRÓDŁO"}}, znacznik jest rozkładany na czynniki pierwsze, a jeżeli nie ma zawartości, to przez funkcję składania jest zwracana wartość pusta, a jeśli nie, to pewne znaki specjalne tagu {{Tag|nowiki}}, które mają w nim być zamienione na tekst, są zamieniane na kody '''HTML''', co po tym, ta ona jest zwracana.
==== Obiekty typu: {{nobold|{{Code|MATH}}}}, {{nobold|{{Code|GALERIA}}}}, {{nobold|{{Code|MAPAOBRAZU}}}}, i {{nobold|{{Code|INNEPRE}}}} ====
A jeżeli wartość: {{Code|obiekt}}, jest nie równa: {{Code|MATH}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} lub {{Code|INNEPRE}}, wtedy zawartość zmiennej: {{Code|szablon}}, jest wykorzystana przez funkcję z modułu: {{Code|{{ld2|Specjalne}}}}, które w tej podanej zmiennej usuwa komentarze według: {{Code|{{sr|#p["UsuńKomentarze"]|p=Specjalne}}}}. Zamieniane są w nim linki zewnętrzne i wewnętrzne na ich nazwy lub adresy według: {{Code|{{sr|#p["ZamieńLinkiZewnętrzneNaTekst"]|p=Specjalne}}}} i {{Code|{{sr|#p["ZamieńLinkiWewnętrzneNaTekst"]|p=Specjalne}}}}. Są usuwane rozwinięte znaczniki szablonów stylów, używając do tego celu: {{Code|{{sr|#p["UsuńSzablonyStylów"]|p=Specjalne}}}}. To samo jest robione ze znacznikami na podstawie: {{Code|{{sr|#p["UsuńZnaczniki"]|p=Specjalne}}}}. Z tekstu szablonu są kasowane normalne kategorie nieszablonowe: {{Code|{{sr|#p["UsuńKategorie"]|p=Specjalne}}}}. Pozbywamy się, z zawartości, wywołań plików i interwiki, na podstawie: {{Code|{{sr|#p["UsuńWywołaniaPlików"]|p=Specjalne}}}} i {{Code|{{sr|#p["UsuńInterwiki"]|p=Specjalne}}}}. Dalej z tego obiektu są usuwane znaki specjalne na podstawie: {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}.
A gdy mamy do czynienia z innymi znacznikami, to są zwracane zamiast nich wartości puste do funkcji kompletowania.
Dane, z funkcji kompletowania, które są zwracane do niej, są usuwane w niej znaki specjalne z całości tekstu rozdziału: {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}, i znaki białe z końców tekstu. Powtarzające się te znaki kolejne wewnątrz są zamieniane na jedną spację, to się dzieje według funkcji: {{Code|{{sr|#p["UsuńZbędneBiałeZnaki"]|p=Specjalne}}}}.
Cały taki wynik operacji robiony w funkcji w nagłówku jest zwracany do niej, to jest, co uzyskujemy, nazwą rozdziału w postaci przetworzonej.
=== {{Śródtytuł|p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}}{{Code|p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}} ===
Opisane tutaj są podfunkcje, z których korzysta ta funkcja, co one robią, do czego są wykorzystane.
==== Opis funkcji: {{nobold|{{Patrz|opis funkcji-ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}}}} ====
Funkcja służy do zbierania nagłówków i z niej danych, tzn. linków normalnych i inteligentnych, a także są zbierane nagłówki z listy bez artykułów i do nich elementy podlisty z artykułami w postaci wywołań linkowych w niej. Tworzona jest specjalnie dla tego tablica: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, która w odpowiedni sposób po przekształceniach wsadzana jest do tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self}}.
| 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _2 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}.
| 3 = {{Code|nazwa_spisu_tresci}} | _3 = Jak w: {{LinkPatrz|nazwa_spisu_tresci}}.
| 4 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _4 = Czy dany spis treści dla książki dla jej artykułu korzystanego, dla innej książki, wtedy to artykuł niekorzystany.
| 5 = {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}} | _5 = Jest to wewnętrzny adres książki głównego spisu treści, jest to taki adres, na który wskazuje przekierowanie innej książki.
| 6 = {{Code|__FUNKCJA_ZBIERANIA_DANYCH}} {{Patrz|__FUNKCJA_ZBIERANIA_DANYCH}} | _6 =
{{Śródtekst|uchwyt=__FUNKCJA_ZBIERANIA_DANYCH|tekst=
Jest to funkcja, która zbiera informacje o aktualnym artykule, która jest spisem treści, w postaci nieprzetworzonej przez funkcje z modułu: {{Code|{{ld2|StronicowyParser/Rozdziały}}}}, opisanego w: {{Code|{{sr|Rozdziały|StronicowyParser - Rozdziały|p=StronicowyParser}}}}, ta funkcja kopiuje, np. tabele danych bazy modułu: {{Code|{{m|Szablonowe}}}}, tzn: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, i tabelę rozkładu elementów w niej na czynniki pierwsze, tzn.: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, co jest napisane w module: {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}}, a w dokumentacji: {{Code|{{sr|#p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|p=StronicowyParser/ZbieranieDanychStron}}}}.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
__FUNKCJA_ZBIERANIA_DANYCH(nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona);
</syntaxhighlight>
Funkcja nie zwraca niczego, jest funkcją, zwykłą bezwartościową procedurą, niezwracającą niczego.
}}
}}
==== Funkcje lokalne ====
Funkcja ma w sobie też definicję funkcji lokalnych zdefiniowanej w tej funkcji tutaj opisywanej.
===== {{Śródtytuł|FunkcjaIteratoraTekstuZakodowego}}{{Code|FunkcjaIteratoraTekstuZakodowego}} =====
Funkcja służy do pomijania tego, co nie jest linkiem wewnętrznym, czy zewnętrznym, czyli oznaczone kodami: {{Code|LINKW}} lub {{Code|LINKZ}}, czy nawet szablonem linku inteligentnego, czy innego służącego do generowania spisu treści, do tego celu również używa funkcji: {{LinkŚródtytuł|CzySzablonLinkLubLicencja}}, oraz tego co nie jest w liście określonym wzorem: {{Code|<nowiki>\n([#:*;]+)</nowiki>}}, z możliwym na początku tekstem, ale nie z kodami, w danej pozycji listy, lub co ewentualnie nie może być w możliwej liście, tzn.: {{Code|<nowiki>\n([#:*;]*)</nowiki>}}, ale wtedy musi tam być z tekstem, ale nie z kodami, na początku danej pozycji listy, nawet jeśli to nie jest lista, to też tak samo.
Jeżeli funkcja nie ma kodów linków wewnętrznych, czy to normalnych, czy szablonowych, to się zakańcza z wartością domyślną {{Code|nil}}, w przeciwnym wypadku do sprawdzenia używa do tego funkcji: {{LinkŚródtytuł|PomijajLinkiOrazLicencje}}, do sprawdzania, czy to jest szablon linku, nawet licencji, a jeżeli ta funkcja zwraca wartość {{Code|true}}, to cała funkcja zwraca {{Code|nil}}. Jeżeli oba te sposoby nie dały rezultatu {{Code|true}}, to wtedy funkcja zwraca wartość pustą, czyli określonym ciągiem znakowym o szerokości zerowej.
Funkcja ma w sobie dwie definicje funkcji: {{LinkŚródtytuł|PomijajLinkiOrazLicencje}} i {{LinkŚródtytuł|CzySzablonLinkLubLicencja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FunkcjaIteratoraTekstuZakodowego=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|szablon}} | _1 = Jak w: {{LinkPatrz|szablon}}.
| 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}.
| 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod}}.
}}
====== {{Śródtytuł|PomijajLinkiOrazLicencje}}{{Code|PomijajLinkiOrazLicencje}} ======
Funkcja służy do sprawdzania, czy są odpowiednie szablony w kodzie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function PomijajLinkiOrazLicencje(szablon)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|szablon}} | _1 = Jak w: {{LinkPatrz|szablon}}.
}}
Funkcja sprawdza, czy to są szablony spisu treści określone tablicą o kluczach, którymi są nazwy szablonów, z wartościami {{Code|true}}, czyli: {{Code|{{sr|#p.szablony_licencji|p=StronicowyParser/obiekty}}}}:
{{Tbl|uchwyt=p.szablony_licencji|tekst=
<syntaxhighlight lang="lua">
p.szablony_licencji={
["Licencja"]=true,
};
</syntaxhighlight>}}
Tzn., czy to są szablony ozdobne woluminu, którego tablica: {{Code|{{sr|#p.szablony_ozdobne_stron_woluminu|p=StronicowyParser/obiekty}}}}, jest podobnie zbudowana, co poprzednia:
{{Tbl|uchwyt=p.szablony_ozdobne_stron_woluminu|tekst=
<syntaxhighlight lang="lua">
p.szablony_ozdobne_stron_woluminu={
["MDL:RozszerzonyLink"]=true,
};
</syntaxhighlight>}}
A jeżeli to są te szablony, to funkcja zwraca wartość {{Code|true}}.
Jeżeli jednak to nie są te szablony, należy użyć tablic, tak samo zbudowanej jak poprzednie, czyli: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}}:
{{Tbl|uchwyt=p.linki_szablony_elementy_spisu_rzeczy|tekst=
<syntaxhighlight lang="lua">
p.linki_szablony_elementy_spisu_rzeczy={
["SpisTreści"]=true,
["Sekcja referencyjna"]=true,
["Sr"]=true,
["Link wewnętrzny"]=true,
["Ly"]=true,
["LinkOgólne"]=true,
["Lo"]=true,
};
</syntaxhighlight>}}
Lub innej, inaczej zbudowanej niż poprzednie, ale ważne, że ma wartość niefałszywą, czyli taką tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}}, jest:
{{Tbl|uchwyt=p.inne_linki_szablony_elementy_spisu_rzeczy|tekst=
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>}}
Jak są te nazwy szablonów określone ich kluczami tych tablic, to funkcja zwraca wartość {{Code|true}}. A jeżeli jednak nie, to funkcją: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}}, jest sprawdzane, czy to jest link inteligentny, nawet przekierowanie, jeżeli link taki jest, to funkcja zwraca wartość w tym wypadku {{Code|true}}. W przeciwnym wypadku, jak nie zwrócił tej wartości, bo taka nie jest nazwa szablonu, to funkcja nic nie zwraca.
====== {{Śródtytuł|CzySzablonLinkLubLicencja}}{{Code|CzySzablonLinkLubLicencja}} ======
Funkcja sprawdzająca za pomocą: {{LinkŚródtytuł|PomijajLinkiOrazLicencje}}, na podstawie parsowania tekstu szablonu funkcją: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, z parsowanym przechwytywanym typem obiektu: {{Code|obiekt}} {{LinkPatrz|obiekt}}, równym {{Code|SZABLON}}. A jeżeli funkcja ta wspomniana w tekście zwróci {{Code|true}}, to funkcja taki obiekt policzy.
Jeżeli liczba policzonych obiektów i znalezionych w wyniku parsowania jest większa od zera, to funkcja w nagłówku zwróci wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local CzySzablonLinkLubLicencja=function(szablon)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|szablon}} | _1 = Jak w: {{LinkPatrz|szablon}}.
}}
===== {{Śródtytuł|iteratorTekstuNaglowka}}{{Code|iteratorTekstuNaglowka}} =====
Jest to funkcja iteratora, którego funkcja zwracana (iterator) zwraca parametry, dla rozdziałów dodatnich i pozycji list.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function iteratorTekstuNaglowka()
... ---- Kod przed zwróceniem iteratora;
return function()
... ---- Ciało funkcji iteratora;
end;
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = Brak parametrów. | komórka1 = tak
}}
Iterator (funkcja zwracana przez funkcję w nagłówku) zwraca parametry w wyniku kolejnych wywołań:
<syntaxhighlight lang="lua">
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,true/false;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Parametry zwracane przez iterator:
| 1 = {{Code|przedrostek_listy}} | _1 = Przedrostek pozycji listy, dla rozdziałów dodatnich jest wartością pustą.
| 2 = {{Code|tekstowy_przedrostek}} | _2 = Numeracja pozycji w liście lub w nagłówku dodatnim.
| 3 = {{Code|wyzyskane_wywolanie_szablonu_spis_tresci}} | _3 = Jest to rozdział bez numeracji i przedrostka pozycji listy.
| 4 = {{Code|true/false}} | _4 = Wartość {{Code|true}} świadczy o rozdziale dodatnim, a w przypadku innym funkcja zwraca zawsze wartość tą {{Code|false}}, jako ostatni element zwracany.
}}
Funkcja jest przykowana na rozdziałów dodatnich i pozycji list oraz innych linii, dla tego pierwszego funkcja zwraca:
<syntaxhighlight lang="lua">
return "","",wartosc,true;
</syntaxhighlight>
Gdzie {{Code|wartość}} jest to zawartość napisu wprowadzenia tekstu (rozdziału dodatniego).
W przypadku list oraz innych niż rozdziały dodatnie samo wyrażenie regularne {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest okreslone przez wyrażenie:
<syntaxhighlight lang="lua">
local re="([#:*;]*)[^%S\n]*([%d%.]*[^%S\n]*[^\n]+)";
</syntaxhighlight>
Funkcja wykorzystuje funkcję: {{Code|{{sr|#p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu|p=StronicowyParser/Rozdziały}}}}, aby zamienić zawartość pozycji listy na rozdział bez numeracji i numerację, i dlatego ta funkcja zwraca te dwie wartości. Gdy funkcja jak nie znajdzie więcej linii (wyszukań), to zwraca wartość {{Code|nil}} mówiąca o zakończeniu iteracji iteratora, tzn. dane dla iteratora się zakończyły.
===== {{Śródtytuł|LiniaArtykulow}}{{Code|LiniaArtykulow}} =====
Funkcja dla szablonów kompletowania określonym tabelką: {{Code|{{sr|#p.szablony_kompletowania_stron_woluminu|p=StronicowyParser/obiekty}}}}, o definicji:
{{Tbl|uchwyt=p.szablony_kompletowania_stron_woluminu|tekst=
<syntaxhighlight lang="lua">
p.szablony_kompletowania_stron_woluminu={
["Kompletność"]=true,
["Kompletność krótka"]=true,
["Kompletność junior"]=true,
["Książka"]=true,
};
</syntaxhighlight>}}
Rozdziela linię na wiele obsługiwanych podlinii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaArtykulow(linia)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|linia}} {{Patrz|linia}} | _1 = Pojedyncza przetworzona linia.
}}
====== {{Śródtytuł|SzablonAnalizujKompletnosc}}{{Code|SzablonAnalizujKompletnosc}} ======
Funkcja sprawdza, czy dane wywołania szablonu, ma swoją nazwę szablonu, która jest nazwą szablonu kompletowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function SzablonAnalizujKompletnosc(szablon)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|szablon}} | _1 = Jak w: {{LinkPatrz|szablon}}.
}}
====== Dalszy opis funkcji ======
Możliwe są dwie opcje, szablon kompletowania jest pierwszy, a drugi drugi, lub odwrotnie. Funkcja obsługuje te oba przypadki. Ona stawia przecinek dla obu wersji ustawień, jeśli potraktować układem link i szablon kompletowania, to wstawiany jest on pomiędzy tymi układami, aby rozdzielić na kolejne podlinie, w liście bez tych znaków pozycji.
Dzielimy to na elementy przy pomocy funkcji: {{LzLua|mw.text.split}}, z opcją jako drugi parametr, aby uwzględniał wyrażenia regularne {{Code|false}}.
W tych rozdzielonych linią tą funkcją dzielącą ciąg znakowy na tabelę, kody '''HTML''' przecinka są zamieniane na zwykły przecinek.
Funkcja zwraca tabelę podzielonej linii na mniejsze podlinie, który można iterować funkcją: {{Code|pairs}} lub {{Code|ipairs}}.
===== {{Śródtytuł|WsadzanieParametryDoTablicy}}{{Code|WsadzanieParametryDoTablicy}} =====
Funkcja z parametrami, która uruchamiana jest inną w: {{LinkŚródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}, która wstawia tabelę: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, do ogólnej tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}, ewentualnie do: {{Code|tabela_rozdzial_artykulow}} {{Patrz|tabela_rozdzial_artykulow}} na pozycję {{Code|numer_podtablicy_w_tablicy}} {{Patrz|numer_podtablicy_w_tablicy}}, a dokładniej na: {{Code|numer_rodzaju_artykulow_w_nie_podreczniku}} {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}}, w funkcji: {{LinkŚródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function WsadzanieParametryDoTablicy(linia,czy_linia_uwzgledniana)
return function(tabela_rozdzial_artykulow2,numer_podtablicy_w_tablicy,tab_stare)
... ---- ciało funkcji.
end;
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|linia}} | _1 = Jak w: {{LinkPatrz|linia}}.
| 2 = {{Code|czy_linia_uwzgledniana}} {{Patrz|czy_linia_uwzgledniana}} | _2 = Czy linię ma uwzględnić w powiększaniu poziomu o jeden dla artykułu.
}}
{{OpisParametrów
| tytuł = Parametry zwracanej funkcji przez tę w nagłówku:
| 1 = {{Code|tabela_rozdzial_artykulow2}} | _1 = Jak w: {{LinkPatrz|tabela_rozdzial_artykulow2}}.
| 2 = {{Code|numer_podtablicy_w_tablicy}} | _2 = Jak w: {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}}.
| 3 = {{Code|tab_stare}} | _3 = Jak w: {{LinkPatrz|tab_stare}}.
}}
====== {{Śródtytuł|CzyZaliczac}}{{Code|CzyZaliczac}} ======
Funkcja sprawdza, czy z początkiem linii pozycji listy, bez przedrostka listy, jest z możliwym początkiem z odstępami i po nim cudzysłowem, po którym następują liczby, litery, w takim przypadku linia nie może składać się z tego z początkiem z literami lub cyframi, czyli ze znakami alfanumerycznymi, a po nim ze znakami interpunkcyjnymi. Jeśli to sprawdzenie było pozytywne, funkcja zwraca wartość logiczną odpowiadającą {{Code|true}}, w przeciwnym wypadku jest zwracane {{Code|false}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyZaliczac()...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = Brak parametrów funkcji. | komórka1 = tak
}}
Funkcja zwraca informację, czy daną linię traktować jako rozdział, chodzi tu o pozycje list, a w przypadku rozdziałów dodatnich wiadomo, że one są właśnie, że rozdziałami.
====== Dalszy opis funkcji ======
Funkcja sprawdza w funkcji zwracanej, czy rozważany rozdział jest centrowany danego artykułu, który siedzi pod rozdziałem lub w samym rozdziale, sprawdza, czy artykuł jest w rozdziale, sprawdza, czy linia jest uwzględniana: {{Code|czy_linia_uwzgledniana}} {{LinkPatrz|czy_linia_uwzgledniana}}. Funkcja sprawdza, czy w sekcji, czy w: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, czy istnieje element: {{Code|tab_stare[2]}} {{Patrz|tab_stare[2]}}, i dalszy: {{Code|tab_stare[2][1]}} {{Patrz|tab_stare[2][1]}} - ten element jest to w: {{Code|tab_stare}}, taki: {{Code|#przedrostek_listy}} {{Patrz|#przedrostek_listy}}, a jeżeli to sprawdzenie przeszło pozytywnie, który dla tego jest poziomem listy, lub zerowego rozdziału lub rozdziału dodatniego. Wtedy do: {{Code|tab_stare[2][1]}} {{LinkPatrz|tab_stare[2][1]}} jest ikrementowany on o liczbę jeden, czyli:
Dla każdej linii zmienna: {{Code|nowa_linia}} {{Patrz|nowa_linia}}, przyjmuje wartość {{Code|false}}, wtedy dla przypadku przeciwnego, tzn. gdy mamy rozdział i uwzględniamy artykuły w jednej linii, którym jest rozdział będący pozycją listy, w zmiennej: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, jest ustawiany element: {{Code|tab_stare[2][4]}} {{Patrz|tab_stare[2][4]}}, czyli zmienna: {{Code|w_rozdziale}} {{LinkPatrz|w_rozdziale}}, zaczyna przyjmować wartość {{Code|true}}. Wsadzany jest wtedy do tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}, na pozycję: {{Code|numer_podtablicy_w_tablicy}} {{LinkPatrz|numer_podtablicy_w_tablicy}}, czyli to jest też: {{Code|numer_rodzaju_artykulow_w_nie_podreczniku}} {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}}, element {{Code|tab_stare}} {{LinkPatrz|tab_stare}}.
Gdy: {{Code|nowa_linia}} {{LinkPatrz|nowa_linia}}, gdy jednak przyjmuje wartość {{Code|false}}, wtedy jeśli poziom rozdzialu istnieje lub przedrostek listy: {{Code|#przedrostek_listy}} {{LinkPatrz|#przedrostek_listy}}, jest większy od zera, i istnieje wiele artykułów w pozycji liście, wtedy: {{Code|ile>0}} (patrz na zmienną: {{Code|ile}} {{LinkPatrz|ile}}), lub funkcja: {{LinkŚródtytuł|CzyZaliczac}}, przyjmuje wartość odpowiadające prawdziwej, w taki przypadku zmiennej: {{Code|nowa_linia}} {{LinkPatrz|nowa_linia}}, przydzielamy wartość {{Code|true}}, by dalsze artykuły można było wsadzić, do tablicy z nowym rozdziałem. Powiększamy numer rozdziału o jeden, tzn.: {{Code|numer_rozdzialu_w_ksiazce}} {{Patrz|numer_rozdzialu_w_ksiazce}}, wtedy w zmiennej: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}, tabeli rozdziałów i w nich artykułów dla tej pozycji przydzielamy wartość równą tablicy pustej. Liczymy dla tego rozdział z artykułami, z funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}, czyli obliczamy napis rozdziału, wtedy do pierwszej pozycji tablicy utworzonej w: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, dla miejsca: {{Code|numer_rozdzialu_w_ksiazce}} {{LinkPatrz|numer_rozdzialu_w_ksiazce}}, czyli: {{Code|tabela_rozdzial_artykulow}} {{LinkPatrz|tabela_rozdzial_artykulow}}, piszemy:
<syntaxhighlight lang="lua">
tabela_rozdzial_artykulow[1]={rozdzial_na_tekst,{-#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,false,},linia,};
</syntaxhighlight>
Gdzie: {{Code|rozdzial_na_tekst}} {{Patrz|rozdzial_na_tekst}}, to policzony rozdział, a {{Code|-#przedrostek_listy}} {{Patrz|-#przedrostek_listy}} to poziom rozdziału ujemnego, i dlatego minus. A: {{Code|przedrostek_listy}}, to znaki początkowe z listy: {{Code|wzor_do_linii_z_lista}} {{LinkPatrz|wzor_do_linii_z_lista}}, a: {{Code|tekstowy_przedrostek}}, to numeracja tego rozdziału. Wartość {{Code|false}} to jest ze ten rozdział nie jest centrowany, a: {{Code|linia}} {{LinkPatrz|linia}}, to wyzyskana linia bez początku pozycji listy. Ustawiamy: {{Code|tab_stare[2][4]}} {{LinkPatrz|tab_stare[2][4]}}, na wartość {{Code|true}} i element: {{Code|tab_stare[6]}} {{Patrz|tab_stare[6]}}, ustawiamy na zero. Tworzymy tablicę pustą na pozycję: {{LinkPatrz|numer_podtablicy_w_tablicy}}, tablicy: {{Code|tabela_rozdzial_artykulow}} {{LinkPatrz|tabela_rozdzial_artykulow}}, i do tej tablicy dodajemy: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, za pomocą funkcji: {{LzLua|table.insert}}.
A jeżeli nie jest tworzony nowy rozdział z listy w tabeli: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, to na pozycję: {{Code|numer_podtablicy_w_tablicy}} {{LinkPatrz|numer_podtablicy_w_tablicy}}, jest dodawany element: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, również tak jest robione, gdy artykuły znajdują się w rozdziale dodatnim, tzn. równaniowej lub centrowanej, tzn. wtedy: {{Code|w_rozdziale}} {{LinkPatrz|w_rozdziale}}, przyjmuje wartość {{Code|true}}.
===== {{Śródtytuł|AnalizaLiniiObiekty}}{{Code|AnalizaLiniiObiekty}} =====
Za pomocą funkcji: {{LinkŚródtytuł|LiniaArtykulow}}, linia: {{Code|linia_rozwazana}} {{Patrz|linia_rozwazana}}, jest rozdzielana na wiele linii. To wiele linii w postaci tabeli, są iterowane od: {{Code|k {{=}} 1}}, do: {{Code|k {{=}} #tab_linia}}, gdzie: {{Code|#tab_linia}} {{Patrz|#tab_linia}}, jest to długość linii, tzn. liczba elementów numerowanych tablicy, tzn. od 1 do wzwyż aż do napotkania najbliższej przerwy lub końca. Wtedy dla pojedyńczej literacji mamy: {{Code|tab_linia[k]}} {{Patrz|tab_linia[k]}}.
Iterujemy po kodach dla linii: {{Code|tab_linia[k]}} {{LinkPatrz|tab_linia[k]}}, przy pomocy funkcji: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|p.IteratorSzablonowyZakodowanegoTekstu}}, iteratorem: {{Code|iterator2}} {{Patrz|iterator2}}.
Inicjujemy zmienną: {{Code|tab_nieobslugiwane {{=}} nil}}, następnie iterujemy: {{LinkPatrz|iterator2}}, uzyskując w każdej iteracji: {{Code|szablon}} {{LinkPatrz|szablon}}, {{Code|obiekt}} {{LinkPatrz|obiekt}}, i {{Code|kod}} {{LinkPatrz|kod}}.
Gdy mamy do czynienia: {{Code|SZABLON}}, lub: {{Code|LINKW}}, albo: {{Code|LINKZ}}, wtedy dla elementów tego pierwszego bierzemy tablicę: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.inne_linki_szablony_elementy_spisu_rzeczy}}, dla elementu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}.
Jeżeli ten element: {{Code|tabela_spisu}}, istnieje, element pierwszy: {{Code|tabela_spisu[1]}}, jest równy wartości {{Code|true}}, wtedy mamy do czynienia z szablonem {{s|SpisPozycja}}. Jej element: {{Code|tabela_spisu["numer_link"]}}, istnieje i jest równy: {{Code|tyt}} {{Patrz|tyt}}. Iterujemy po kluczach i jego wartościach tego szablonu i sprawdzamy, który element jest równy właśnie tej wartości, a jeżeli jest taki, to dla elementów nie równych niemu, a właściwie w jego wartości iterujemy po kodach funkcją: {{LinkPatrz|p.IteratorSzablonowyZakodowanegoTekstu}}, dla tej wartości, w ten sposób zbieramy tablicę wielowymiarową najpierw po: {{Code|obiekt}} {{LinkPatrz|obiekt}}, później po: {{Code|kod}}, {{LinkPatrz|kod}}, którą nazwiemy: {{Code|tab_nieobslugiwane}} {{Patrz|tab_nieobslugiwane}}, którego każda jej wartość jest równa {{Code|true}}. Ta tablica mówi dla jakich elementów ma nie zbierać w tablicy elementów w głównej tablicy rozdziałów i jego artykułach.
Dla elementu {{Code|tyt}} {{LinkPatrz|tyt}} tablicy parametrów przedrostek listy {{Code|przedrostek_listy}} ustawiamy na pusty, i liczmy numerację {{Code|tekstowy_przedrostek}} i zmienną: {{Code|szablon}} {{LinkPatrz|szablon}}, i ustawiamy zmienną {{Code|przerwij}} {{Patrz|przerwij}} na {{Code|true}}, aby dla tego szablonu nie zbierać elementów w tablicy rozdziałów i jego artykułów.
W przypadku przeciwnym dla: {{Code|tabela_spisu}}, gdy ma wartość {{Code|false}}, wtedy mamy do czynienia z funkcją: {{s|SpisZw}}. Dla niej liczymy: {{Code|przedrostek_listy}}, którą ustawiamy na pustą wartość. A: {{Code|tekstowy_przedrostek}}, liczmy uzyskując parametr o kluczu: {{Code|tabela_spisu["numer"]}}, którym jest parametr o numerze: {{Code|1}}, i {{Code|szablon}} {{LinkPatrz|szablon}}, który liczmy z parametrów szablonu o kluczu {{Code|tabela_spisu["link"]}}, którym jest numer {{Code|2}}. Ustawiamy tutaj zmienną: {{Code|przerwij}} {{LinkPatrz|przerwij}}, na wartosć {{Code|true}}.
====== {{Śródtytuł|CzyObslugiwane}}{{Code|CzyObslugiwane}} ======
Funkcja sprawdzająca, które elementy są obsługiwane, jeśli istnieje tablica: {{Code|tab_nieobslugiwane}} {{LinkPatrz|tab_nieobslugiwane}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local CzyObslugiwane=function()...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = Brak parametrów. | komórka1 = tak
}}
====== Dalszy opis funkcji ======
; Uwzględnianie tablicy, reprezentujące artykuł w rozdziale, wstawiany do tablicy danego rozdziału{{dk}}
Sprawdzany jest warunek:
<syntaxhighlight lang="lua">
if((--[[wliczaj_artykuly_tego_rozdzialu]] true)and(not przerwij)and((not tab_nieobslugiwane)or(CzyObslugiwane())))then
</syntaxhighlight>
Jeśli to nie jest spełnione, to sprawdzamy {{ZobaczTeż|link_szablon}}, czy jest zebrana licencja z autorem według zmiennej: {{Code|licencja_z_autorem}} {{Patrz|licencja_z_autorem}}, i sprawdzamy, czy: {{Code|szablon}} {{LinkPatrz|szablon}}, jest wnetrzem szablonu, jeżeli tak, to ono przyjmuje wartość odpowiadająca prawdziwej, przeciwnie ma fałszywą.
Jeżeli jest on spełniony, wtedy wywołujemy funkcję: {{LinkŚródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}, później dla:
<syntaxhighlight lang="lua">
if((not czy_obslugiwane)and(not numer_rodzaju_artykulu_poprz))then
</syntaxhighlight>
Sprawdzamy, czy jest zrobione {{LinkZobaczTeż|link_szablon}}.
; Szablony licencji, i jego parametry, uwzględnianie jego tylko raz ca całą książkę, mieszcząca się w artykule głównej książki{{dk}}
Następnie dla warunku, który musi być spełniony:
<syntaxhighlight lang="lua">
if((not numer_rodzaju_artykulu_poprz)and(not przerwij)and(link_szablon)and((not tab_pozycja_elementow_w_spisie_rzeczy)or(not tab_pozycja_elementow_w_spisie_rzeczy[1]))and(czy_artykul_korzystany)and(licencja_z_autorem))then
</syntaxhighlight>
Sprawdzamy szablony licencji, takich jak: {{s|Licencja}}, według tablicy: {{Code|{{sr|#p.szablony_licencji|p=StronicowyParser/obiekty}}}}.
Dla parametrów szablonu, liczymy jego parametry o kluczach, tzn.: {{Code|Autor}} {{Patrz|Autor}}, {{Code|Ukończone szkoły}} {{Patrz|Ukończone szkoły}}, {{Code|Email}} {{Patrz|Email}}, {{Code|Dotyczy}} {{Patrz|DotyczyDotyczy}}, {{Code|Licencjonowanie}} {{Patrz|Licencjonowanie}}, {{Code|Umowa prawna}} {{Patrz|Umowa prawna}} i {{Code|Konsekwencje}} {{Patrz|Konsekwencje}}, którego wartości przydzielamy do odpowiednich zmiennych. Każdą z tych zmiennych kompletujemy funkcją: {{Code|{{sr|#p.DekodowanieTekstuDekodowanieTekstu|p=StronicowyParser/Potrzebne}}}}, poprzez zwracaną przez nią funkcję, w której jest wykorzystywana: {{LzLua|frame:preprocess}}, do rozwijania. A dla elementu istniejącego: {{Code|Autor}}, piszemy zmienną: {{Code|licencja_z_autorem}} {{LinkPatrz|licencja_z_autorem}}, któremu przydzielamy wartość {{Code|false}}, co spowoduje, że nie będziemy analizowali jeszcze raz innego szablonu licencji.
Te zmienne tego szablonu zbieramy natomiast w tablicy: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}, dane dotyczące licencji, więc:
<syntaxhighlight lang="lua">
tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje};
</syntaxhighlight>
Co później przerywamy pętle po: {{Code|iterator2}} {{LinkPatrz|iterator2}}, instrukcją: {{Code|break}}.
==== Dalszy opis funkcji {{nobold|{{LinkPatrz|opis funkcji-ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}}}} ====
Ściągamy tekst, tabelę bazy i tabelę parametrów strony o nazwie: {{Code|nazwa_modulu}}, przy pomocy funkcji: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, według:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=nil;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
Uruchamiamy funkcję: {{Code|__FUNKCJA_ZBIERANIA_DANYCH}} {{LinkPatrz|__FUNKCJA_ZBIERANIA_DANYCH}}, jeżeli istnieje.
Dalej wywołujemy funkcję: {{Code|{{sr|#p.IterTekst|p=StronicowyParser/Rozdziały}}}}, w celu znalezienia tekstu: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, i iteratora: {{Code|iterator}} {{Patrz|iterator}}, po napisach wprowadzenia tekstu rozdziałów i ich zawartości rozdziałów i na podstawie:
<syntaxhighlight lang="lua">
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,
__FUNKCJA, ---- funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość;
__FUNKCJA2, ---- funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału);
__FUNKCJA_ANALIZA_SPISU ---- funkcja do analizy i modyfikacji tekstu (może zwracać wartość: nil) przed samym kodowaniem, jeżeli tekst jest w ogóle jest taki, a jeśli nie, ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: IterTekst, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: SpisTreści, co jest uwidocznione w module: Moduł:StronicowyParser/SpisTreści;
);
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów zwracanych:
| 1 = {{Code|iterator}} {{Patrz|iterator-IterTekst}} | _1 = Iterator po rozdziałach i jego zawartościach.
| 2 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu-IterTekst}} | _2 = Tekst przetworzony rozdziału.
}}
Odczytujemy tabelę: {{LinkTbl|p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu}} i dalej: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}, o definicji:
{{Tbl|uchwyt=p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|tekst=
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>}}
Robimy kopię tych tabel i przyłączamy do metatabeli: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}, przy pomocy funkcji: {{LzLua|setmetatable}}, aby nie odrózniać tych rozdziałów ze względu na wielkość liter i polskie znaki.
Inicjiujemy zmienną: {{Code|numer_rozdzialu_w_ksiazce}} {{LinkPatrz|numer_rozdzialu_w_ksiazce}}, wartością: {{Code|1}}, aby zbierać po kolei artykuły ze poszczególnego pojedynczego spisu treści.
Ustawiamy maksymalny rozmiar rozdziału zerowego na {{Code|50}}, w zmiennej: {{Code|maksymalny_rozmiar_rozdzialu_zerowego}} {{Patrz|maksymalny_rozmiar_rozdzialu_zerowego}}, według:
<syntaxhighlight lang="lua">
local maksymalny_rozmiar_rozdzialu_zerowego=50;
</syntaxhighlight>
===== {{Śródtytuł|AnalizaRozdzialu}}{{Code|AnalizaRozdzialu}} =====
Jest to funkcja do zbierania danych z pojedynczego rozdziału o pewnej linii, inicjowana z jego parametrami, także tekstem rozdziału.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaRozdzialu(rozdzial,linia_rozdzialu,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|rozdzial}} {{Patrz|rozdzial}} | _1 = Jest to tekst rozdziału.
| 2 = {{Code|linia_rozdzialu}} {{Patrz|linia_rozdzialu}} | _2 = Jest to linia z rozdziałem.
| 3 = {{Code|text}} {{Patrz|text}} | _3 = Jest to tekst rozdziału o pewnym napisie wprowadzenia tekstu.
| 4 = {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}} | _4 = Jest to poziom danego rozdziału.
| 5 = {{Code|poczatek_rozdzialu}} {{Patrz|poczatek_rozdzialu}} | _5 = Początek pozycji listy rozdziałów '''mechanizmu {{NS|k=mw|l=tak|pk=d}}'''.
| 6 = {{Code|numeracja}} {{Patrz|numeracja}} | _6 = Numeracja rozdziału.
| 7 = {{Code|czy_rozdzial_centrowany}} {{Patrz|czy_rozdzial_centrowany}} | _7 = Czy dany rozdział jest centrowany.
}}
====== Tabela artykułów rozdziałów i w nich artykułów oraz jego poszczególnych ======
Tworzymy tabelę: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, jeżeli nie istnieje, z pustą tablicą, a później dla elementu: {{Code|numer_rozdzialu_w_ksiazce}} {{LinkPatrz|numer_rozdzialu_w_ksiazce}}, jeżeli też go nie ma, to też pustą tablicą. Dalej liczymy napis wprowadzenia tekstu rozdziału dodatniego funkcją: {{LinkŚródtytuł|p.AnalizaNapisuWprowadzeniaTekstu}} i uwzględniamy je w tabeli rozdziałów dla danego rozdziału pod wartością: {{Code|tabela_rozdzial_artykulow[1]}}, w sposób:
<syntaxhighlight lang="lua">
tabela_rozdzial_artykulow[1]={rozdzial_na_tekst,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany,},rozdzial,};
</syntaxhighlight>
Dalej wprowadzamy zmienną: {{Code|czy_spis_rzeczy_napis_wprowadzenia_tekstu}} {{Patrz|czy_spis_rzeczy_napis_wprowadzenia_tekstu}}, mówiącą, że rozpatrujemy rozdziały i artykuły w ramach spisu treści o nagłówkach typu: {{Code|Spis treści}}, czy: {{Code|SPIS RZECZY}}. Jeżeli wyszliśmy poza to, to ta zmienna, wtedy przyjmuje wartość fałszywą, a definicja inicjacji tej zmiennej jest:
<syntaxhighlight lang="lua">
local czy_spis_rzeczy_napis_wprowadzenia_tekstu=(poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[spreparowany_uzyskany_tekst_rozdzialu]);
</syntaxhighlight>
{{OpisParametrów
| tytuł = Gdzie opis tych parametrów w definicji zmiennej:
| 1 = {{Code|poziom_rozdzialu}} | _1 = Jak w: {{LinkPatrz|poziom_rozdzialu}}.
| 2 = {{Code|czy_jest_spis_tresci}} {{Patrz|czy_jest_spis_tresci}} | _2 = Czy jesteśmy w spisie treści.
| 3 = {{Code|dalej_nie_rozwazaj_spis_tresci}} {{Patrz|dalej_nie_rozwazaj_spis_tresci}} | _3 = Zmienna mówiąca, że teraz jesteśmy poza spisem treści.
}}
====== Kiedy uwzględniamy artykuły rozdziału ======
Jeżeli jesteśmy w spisie, to zawsze są uwzględniane artykuły rozdziału, bo jest ustawiona zmienna: {{Code|wliczaj_artykuly_tego_rozdzialu}} {{LinkPatrz|wliczaj_artykuly_tego_rozdzialu}}, na {{Code|true}}, a poza na {{Code|nil}}.
Funkcja jest przyszykowana jest dla jednego spisu treści, o ściśle określonym specjalnym napisie wprowadzenia tekstu, w danym spisie na stronie.
====== Iterator linii artykułu spis treści ======
Uruchamiamy iterator, używając funkcji lokalnej: {{LinkŚródtytuł|iteratorTekstuNaglowka}}, według wywołania:
<syntaxhighlight lang="lua">
local iterator=iteratorTekstuNaglowka();
</syntaxhighlight>
Ustawiamy zmienną: {{Code|wliczaj_artykuly_tego_rozdzialu}} {{LinkPatrz|wliczaj_artykuly_tego_rozdzialu}}, aby wliczał lub nie, pewne artykuły rozdziału według:
<syntaxhighlight lang="lua">
local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial]));
</syntaxhighlight>
Iterujemy otrzymanym ostatnio iteratorem, uzyskując kolejno zmienne: {{Code|przedrostek_listy}} {{LinkPatrz|przedrostek_listy}}, {{Code|tekstowy_przedrostek}} {{LinkPatrz|tekstowy_przedrostek}}, {{Code|linia}} {{LinkPatrz|linia}}, i {{Code|w_rozdziale}} {{LinkPatrz|w_rozdziale}}.
; Kiedy rozdziałów zerowych nie liczymy jako je{{dk}}
Dla rozdziałów, które nie sa poziomami z listą, sprawdzamy, czy to jest rozdział zerowy przy pomocy funkcji: {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, i sprawdzamy, czy on przekracza rozmiar: {{Code|maksymalny_rozmiar_rozdzialu_zerowego}} {{LinkPatrz|maksymalny_rozmiar_rozdzialu_zerowego}}, jeżeli jest tym rozdziałem i nie przekracza pewnego rozmiaru, to to jest rozdział traktowany jako zerowy niepomijany rozdział zerowy, wtedy ustawiamy zmienną: {{Code|nie_pomijaj_tego_rozdzialu}} {{Patrz|nie_pomijaj_tego_rozdzialu}}, na {{Code|true}}.
; A jeśli to są rozdziały z listy zaczynające się od dwukropka w linii{{dk}}
Gdy taki rozdział nie pretenduje do zerowych, to sprawdzamy funkcją: {{Code|{{sr|#p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu|p=StronicowyParser/Rozdziały}}}}, czy ten rozdział pominąć, a jeżeli ona przyjmuje wartość odpowiadającej fałszywej, czyli {{Code|false}}, wtedy ustawiamy zmienną: {{Code|nie_pomijaj_tego_rozdzialu}} {{LinkPatrz|nie_pomijaj_tego_rozdzialu}}, na taką samą wartość jak poprzednio.
; Inne rozdziały{{dk}}
Dla rozdziałów innych ta wartość przyjmuje postać {{Code|false}}.
; Rozdziały jednak nie pomijane{{dk}}
Ustalamy wartość {{Code|ile}} {{Patrz|ile}}, na wartość zero.
Dla rozdziałów, które nie są pomijane, wtedy zmienna: {{Code|nie_pomijaj_tego_rozdzialu}} {{LinkPatrz|nie_pomijaj_tego_rozdzialu}}, przyjmuje wartość {{Code|true}}, w takim przypadku wchodzimy do funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami|p=Szablonowe}}}}, wtedy dla linków szablonowych sprawdzamy, czy to są linki określone tablicami: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.linki_szablony_elementy_spisu_rzeczy}}, {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.inne_linki_szablony_elementy_spisu_rzeczy}} lub ewentualnie funkcją: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}}.
Wtedy jeżeli jest to link, to ikrementujemy: {{Code|ile}} {{LinkPatrz|ile}}.
Innym sposobem sprawdzania, czy to jest szablon linkowy jest tablica: {{Code|{{sr|#p.szablony_kompletowania_stron_woluminu|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.szablony_kompletowania_stron_woluminu}}, lub {{Code|{{sr|#p.szablony_licencji|p=StroncowyParser/obiekty}}}} {{LinkTbl|p.szablony_licencji}}.
Wtedy jest zwracane to:
<syntaxhighlight lang="lua">
return czy_szablon,obiekt,kod;
</syntaxhighlight>
Jeżeli to jest szablon linków, wtedy jest zwracana wartość: {{Code|return true,obiekt,kod}}, w przeciwnym wypadku:
<syntaxhighlight lang="lua">
return false,obiekt,kod;
</syntaxhighlight>
Innym sposobem liczenia, czy to jest link, to wtedy może być to link normalny: {{Code|LINKW}}, który można sprawdzić funkcją: {{Code|{{sr|#p["CzyLinkWewnętrzny"]|p=Specjalne}}}}, wtedy jest zwracane {{Patrz|gołe linki}}:
<syntaxhighlight lang="lua">
return true,obiekt,kod;
</syntaxhighlight>
Link też może być zewnętrzny, wtedy to jest: {{Code|LINKZ}}, wtedy funkcja zwraca wartości {{LinkPatrz|gołe linki}}.
; Kiedy analizujemy artykuły rozdziału{{dk}}
Następnie dla linii: {{Code|linia_rozwazana}} {{LinkPatrz|linia_rozwazana}}, co na podstawie tego liczymy, czy daną linię nie uwzględnić, w obliczeniach według schematu:
<syntaxhighlight lang="lua">
local czy_linia_uwzgledniana=mw.ustring.match(linia_rozwazana,"^%s*%-%-+(.*)%-%-+%s*$");
local czy_linia=((not czy_linia_uwzgledniana)and(mw.ustring.match(linia_rozwazana,"^%s*[%-%+%=%~]+.*$")
or ((#przedrostek_listy==0)and((mw.ustring.match(linia_rozwazana,"!"))and(mw.ustring.match(linia_rozwazana,"[^!]%s*$"))))
or mw.ustring.match(linia_rozwazana,"^%s*<")) or nil);
</syntaxhighlight>
Co następnie jest ustawiana: {{Code|nowa_linia}} {{LinkPatrz|nowa_linia}} na wartość {{Code|false}}.
; Warunek analizowania artykułów rozdziałów{{dk}}
W obliczeniach raz uwzględniamy funkcję: {{LinkŚródtytuł|AnalizaLiniiObiekty}}, w ostatniej omawianej pętli, schematycznie:
<syntaxhighlight lang="lua">
if(not czy_linia)then AnalizaLiniiObiekty(linia_rozwazana);end;
</syntaxhighlight>
===== Dalsza część funkcji {{nobold|{{LinkPatrz|opis funkcji-ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}}}} =====
Bierzemy zakodowany tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu-IterTekst}}, i po nim iterator: {{Code|iterator}} {{LinkPatrz|iterator-IterTekst}}, wtedy iterujemy po parametrach:
<syntaxhighlight lang="lua">
local parsuj_rozdzialami=nil; ---- ta zmienna służy na wypadek, gdy by nie była żadnych rozwazanych rozdziałów;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
---- za każdym razem jest uruchamiana funkcja: AnalizaRozdzialu, przy rozważanym rozdziale;
AnalizaRozdzialu(rozdzial_tab[1],rozdzial_tab[2],text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany);
---- oznacz zmienną: parsuj_rozdzialami, wartością; true, a póżniej jąnie inicjuj;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Parametry zwracane przez iterator: {{nobold|{{Code|iterator}} {{LinkPatrz|iterator-IterTekst}}}}:
| 1 = {{Code|rozdzial_tab}} {{Code|{{=}}}} {{Code|<nowiki>{ [1] = rozdzial, [2] = linia_rozdzialu, }</nowiki>}} | _1 = tabela składająca się z dwóch elementów:
| 2 = Pod elementy tabeli: | nagłówek2 = tak
| 3 = {{Code|rozdzial}} | _3 = Jak w: {{LinkPatrz|rozdzial}}.
| 4 = {{Code|linia_rozdzialu}} | _4 = Jak w: {{LinkPatrz|linia_rozdzialu}}.
| 5 = Inne parametry: | nagłówek5 = tak
| 6 = {{Code|text}} | _6 = Jak w: {{LinkPatrz|text}}.
| 7 = {{Code|poziom_rozdzialu}} | _7 =Jak w: {{LinkPatrz|poziom_rozdzialu}}.
| 8 = {{Code|poczatek_rozdzialu}} | _8 = Jak w: {{LinkPatrz|poczatek_rozdzialu}}.
| 9 = {{Code|numeracja}} | _9 = Jak w: {{LinkPatrz|numeracja}}.
| 10 = {{Code|czy_rozdzial_centrowany}} | _10 = Jak w: {{LinkPatrz|czy_rozdzial_centrowany}}.
}}
Gdy nie napotkano żadnego rozważanego rozdziału, wtedy: {{Code|parsuj_rozdzialami}}, przyjmuje wartość {{Code|nil}}, w takim razie uruchamiana jest funkcja:
<syntaxhighlight lang="lua">
if(not parsuj_rozdzialami)then
AnalizaRozdzialu("Spis treści",nil,tekst_rozwiniety_calego_artykulu,nil,nil,nil,nil);
end;
</syntaxhighlight>
Funkcja zwraca parametry inaczej, gdy artykuł, do którego należy książka jest korzystana, a inaczej, jeśli nie. W takim razie możemy zwracać na dwa sposoby:
<syntaxhighlight lang="lua">
if(czy_artykul_korzystany)then
return tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci;
else
return tabela_artykulow,nil,przekierowanie_spisu_tresci;
end;
</syntaxhighlight>
Przy artykułach korzystanych, co jest określone zmienną: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, tabelę: {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, przy jego spisach treści w książkach, do której należy ten artykuł, zwracana jest jako wartość przeważnie jako nierówna {{Code|nil}}, a dla artykułów z innych książkach, ta wartość już jest taka, tzn. przyjmuje wartość {{Code|nil}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
pz8sqr3avb3q3oumkjfoz1sw2mtxv45
Wikibooks:Moduły/StronicowyParser/StronaSubst
4
63523
560632
558493
2026-11-08T13:12:58Z
Persino
2851
560632
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/StronaSubst}}|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.AnalizaStronaSubst}}{{Code|p.AnalizaStronaSubst}} ==
Funkcja sprawdzająca, czy dana strona jest strona zbiorczą o nazwie: w wersji do czytania: {{Tt|Wersja do czytania}} {{Patrz|Wersja do czytania}}, o nazwie: {{Code|nazwa artykulu}} {{LinkPatrz|nazwa artykulu}}, równej subnazwie danej książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, np. nazwa książki: {{lg|Matematyka dla liceum}}, to ta strona jest wtedy: {{lg|Matematyka dla liceum/Matematyka dla liceum}}, lub wersji do druku: {{Tt|Wersja do druku}} {{Patrz|Wersja do druku}}, jak: {{lg|Matematyka dla liceum/Wersja do druku}}. Funkcja sprawdza, czy dana strona równa nazwie rozdziału, do której należą jakieś artykuły, jest stroną zbiorczą. Aby dana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}} była stroną zbiorczą, to nie może być o nazwie: {{Code|Spis treści}}, {{Code|Spis rzeczy}}, {{Code|Bibliografia}} i {{Code|Licencja}}, czyli taką prawidłową stroną, np. jest: {{lg|Matematyka dla liceum/Zaczynamy}}.
Gdy dany artykuł, jest nierówny: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}} i {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}, należy do zbioru normalnych artykułów, to wtedy to nie jest na pewno stroną zbiorczą.
* Do wskazania, czy to jest strona zbiorcza, używamy tej funkcji, a do liczenia zawartości szablonów: {{Code|{{s|StronaSubst}}}} {{Patrz|StronaSubst-Szablon}} i {{Code|{{s|KsiążkaSubst}}}} {{Patrz|KsiążkaSubst-Szablon}}, wykorzystujemy do tego:{{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, i w niej funkcję nadrzędną: {{LinkŚródtytuł|WoluminSubst}}, która analizuje te dwa typy szablonów, i w zależności od tego uruchamia odpowiednie procedury wykonawcze, a dla tego drugiego szablonu, natomiast jest uruchomiana instrukcja: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, w celu przeanalizowania, czy wskazana strona jest stroną zbiorczą, nawet tą symulowaną, i jakie artykuły należą do tej właśnie strony, i je wypisuje w wywołaniu funkcyjnym.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizaStronaSubst(tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce_spis,pelnanazwastrony,TakFun-AnalizaStronaSubst,NieFun-AnalizaStronaSubst,FunRozdzial-AnalizaStronaSubst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = Najważniejsze zmienne: | nagłówek1 = tak
| 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} |_2 = Tablica, która jest wynikiem, jego wartości zwracanej, działania dotycząca modułów:
<syntaxhighlight lang="lua">
local stronicowyparser_informacje_modul=mw.loadData("Module:StronicowyParser/informacje");
local tablica_zebranych_danych_woluminowych=stronicowyparser_informacje_modul.tablica_zebranych_danych_woluminowych;
</syntaxhighlight>
| 3 = {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{Patrz|tab_lista_artykulow_w_ksiazce_spis}} | _3 = Tablica rozdziałów i artykułów oraz o nich informacji, różnych spisów treści należącej do danej książki, ta tablica ma ściśle określoną strukturę omówioną w artykule: {{Code|{{lr2|Moduły/StronicowyParser/SpisTreści}}}}.
| 4 = Zmienne potrzebne do zmiany nawigacji na inny niż dany artykuł, czy książkę: | nagłówek4 = tak
| 5 = {{Code|pelnanazwastrony}} {{Patrz|pelnanazwastrony}} | _5 = Jest to nazwa jednostki z przestrzenią nazw, ona jest wykorzystywana w parametrach pudełkowych: {{Code|{{m|Pudełko}}}}, modułu {{Code|{{ld|StronicowyParser|Stronicowego Parsera}}}}.
| 6 = Funkcje: | nagłówek6 = tak
| 7 = {{Code|TakFun}} {{Patrz|TakFun-AnalizaStronaSubst}} | _7 = Ona (musi być zdefiniowana) jest używana, gdy dana strona jest stroną zbiorczą, ale zwykle nierozdziałową.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
czy_tak=TakFun(tab_lista_artykulow_w_ksiazce_spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
</syntaxhighlight>
| 8 = {{Code|NieFun}} {{Patrz|NieFun-AnalizaStronaSubst}} | _8 = Ona (musi być zdefiniowana) jest używana, gdy dana strona nie jest stroną zbiorczą, ale jest artykułem spisu, też w wypadku, gdy strona nie ma artykułów spisu, bo nie jest książką, tylko np. stronami w innej przestrzeni, czy niby-przestrzeni, niż książkowa.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
czy_tak= NieFun(parametr);
</syntaxhighlight>
| 9 = {{Code|FunRozdzial}} {{Patrz|FunRozdzial-AnalizaStronaSubst}} | _9 = Ona (funkcja opcjonalna, w przeciwnym wypadku jest wykorzystywane: {{LinkPatrz|TakFun-AnalizaStronaSubst}}) jest używana, gdy dana strona jest zbiorczą, ale rozdziałową, równą nazwie rozdziału.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
czy_tak=FunRozdzial(tab_lista_artykulow_w_ksiazce_spis,nazwa_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
</syntaxhighlight>
| 10 = Zmienne nazw {{Patrz|ZMIENNE_NAZWOWE}}: | nagłówek10 = tak
| 11 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}} | _11 = Nazwa przestrzeni nazw, do której należy dany artykuł, czy książka, do której on należy.
| 12 = {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} | _12 = Mazwa przestrzeni książki, do której należy dana książka.
| 13 = {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _13 = Subnazwa książki, do której należą jej artykuły.
| 14 = {{Code|nazwa_artykulu}} {{Patrz|nazwa_artykulu}} | _14 = Nazwa artykułu danej książki, bez pełnej nazwy książki.
}}
A gdy parametr: {{Code|pelnanazwastrony}} {{LinkPatrz|pelnanazwastrony}}, istnieje {{Patrz|pelnanazwastrony-istnieje}}, lub parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, lub {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}}, nie istnieją, wtedy są uzyskiwane parametry pudełkowe, co na tej podstawie, gdy pełna nazwa strony: {{Code|pelnanazwastrony}} {{LinkPatrz|pelnanazwastrony}}, istnieje {{LinkPatrz|pelnanazwastrony-istnieje}}, lub {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}, nie istnieje {{Patrz|tab_lista_artykulow_w_ksiazce_spis-nie-istnieje}}, to są liczone parametry strony z tego, a jeżeli wtedy strona nadal nie ma artykułów, to funkcja jest zatrzymywana, bo np. to ta nibyże książka nie może mieć strony zbiorczej, przeciwnym wypadku otrzymywane są parametry: {{LinkPatrz|ZMIENNE_NAZWOWE}}.
A gdy warunki: {{LinkPatrz|pelnanazwastrony-istnieje}} i {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis-nie-istnieje}}, nie są spełnione, to dane są uzyskiwane bezpośrednio z tabeli: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tzn.: {{LinkPatrz|ZMIENNE_NAZWOWE}}. A jeżeli ten pierwszy warunek nie jest spełniony, to są liczone parametry z: {{LinkPatrz|ZMIENNE_NAZWOWE}}, uzyskiwany jest z niego spis rozdziałów i do nich artykułów, w zmiennej: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}, a jeżeli strona nie może mieć spisu, to funkcja jest zatrzymawana.
Jeżeli spis strony jednak istnieje po policzeniu, lub nie (wtedy to jest parametrem tej funkcji), wtedy funkcja sprawdza, czy nazwa przestrzeni nazw {{LinkPatrz|nazwa_przestrzeni}} jest: {{Np|(main)|link=tak}}, {{Np|Wikijunior|link=tak}}, lub {{Np|Wikibooks|link=tak}} w niby-przestrzeni nazw: {{lr2|Brudnopis}} z: {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, albo {{Np|User|link=tak}} (ale nie strona główna użytkownka, ale inne strony w tej przestrzeni, co jest policzone z: {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}).
A jeżeli któraś z tych parametrów jest spełnione, wtedy jest sprawdzane, czy artykuł: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}}, czy jest artykułem książki, co w przypadku stron zbiorczych rozdziałowych jest anulowany status strony zbiorczej, a w przypadku innym ta strona jest jednak stroną zbiorczą. A w innym wypadku, gdy to nie jest ta rozdziałowa, to jest sprawdzane, czy to jest strona zbiorcza.
== {{Śródtytuł|p.LiczOperacjeStronZbiorczych}}{{Code|p.LiczOperacjeStronZbiorczych}} ==
Tutaj jest zawarty opis tej funkcji i podfunkcji lokalnych dostępne tylko w niej, a nie gdzie indziej.
=== Opis funkcji ===
Gdy strona jest stroną zbiorczą, strona musi być w przestrzeni książkowej, lub gdy parametry pudełkowe: {{Code|{{m|Pudełko}}}}, wskazują na nią, to w przeciwnym wypadku parametry stron zbiorczych nie są liczone i nie są ustawiane, normalnie są liczone, za pomocą wywołań szablonowych: {{Code|{{s|StronaSubst}}}} {{LinkPatrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{LinkPatrz|KsiążkaSubst-Szablon}} - gdy liczymy całą stronę zbiorczą ze wszystkich stron z jakich składa się książka, oprócz artykułów, różnych stron zbiorczych. Ten pierwszy wywołujemy zawsze z parametrami liczonej strony (artykułu książki), a to drugie nie wywołujemy zwykle z parametrami, po prostu wywołanie jest prawie zawsze bezparametrowe. Te szablony umieszczamy na stronie zbiorczej lub symulowanej stronie zbiorczej, za pomocą szablonu {{s|Podręcznik}}, zobacz też zbiór szablonów ustawień {{Code|config}}, tego szablonu, tzn: {{s|Podręcznik/Ustawienia/}} {{Patrz|Podręcznik/Ustawienia/}}, co jest uwarunkowane wewnętrznym kodem w: {{Code|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}, w funkcji: {{Code|{{sr|#p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
Przykład ustawień {{LinkPatrz|Podręcznik/Ustawienia/}} symulowanej strony zbiorczej możemy znaleźć na stronie: {{Code|{{ls2|Podręcznik/Ustawienia/Szablon:StronaSubst/config}}}} (szablonu {{LinkPatrz|StronaSubst-Szablon}}) lub {{Code|{{ls2|Podręcznik/Ustawienia/Szablon:KsiążkaSubst/config}}}} (szablonu {{LinkPatrz|KsiążkaSubst-Szablon}}).
Funkcja wykorzystuje jako podstawę do działania procedurę zwracajace jakieś parametry: {{LinkŚródtytuł|p.AnalizaStronaSubst}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LiczOperacjeStronZbiorczych(glowna_tablica,tekst_rozwiniety_calego_artykulu,spis,nazwa_modulu_strony,nazwa_modulu_strony_szablonowa,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwala uruchomić tę funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}, wtedy jest brany obiekt z aktualnej tablicy, dzięki któremu liczymy pewne parametry, ten przed dwukropkiem.
| 2 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _2 = Tekst zakodowany całej strony.
| 3 = {{Code|spis}} {{Patrz|spis}} | _3 = Jest to spis rozdziałów i jego artykułów, jest to zmienna, taka jak: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}.
| 4 = {{Code|nazwa_modulu_strony}} {{Patrz|nazwa_modulu_strony}} | _4 = Uchwyt bazy danych {{Code|{{m|Szablonowe}}}}, używany zamiast: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}.
| 5 = {{Code|nazwa_modulu_strony_szablonowa}} {{Patrz|nazwa_modulu_strony_szablonowa}} | _5 = Nazwa strony w wersji szablonowej, czyli szablony pisane jakby były w przestrzeni głównej, a strony w tej przestrzeni nazw są pisane z dwukropkiem na początku.
| 6 = {{Code|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _6 = Gdy nie podano zmiennej: {{Code|nazwa_modulu_strony}}, wtedy jest używana ta zmienna, jest to zmienna bazy danych, tej samej bazy, co dotyczy: {{LinkPatrz|nazwa_modulu_strony}}.
| 7 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _7 = Zmienna, w której są zawarte rozkładania parametrów tabeli bazy danych: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}, na czynniki pierwsze, aby znów tego nie robił, gdy pierwszy raz badamy jakiś element jej, to rozłożenie jest umieszczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić, aby w ten sposób można przyszybszyć '''{{ld|StronicowyParser|Stronicowy parser}}'''.
}}
Funkcja ma w swoje definicji bezpośrednio zmienne: {{Code|toc_nowe}} do tworzenia spisu treści, którą zapisujemy pod zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}} w podtablicy {{Code|TOC_StronaZbiorcza}} {{Patrz|TOC_StronaZbiorcza}}.
Również ona używa funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}, do liczenia, ile razy dany rozdział się powtarza, w celu policzenia unikalnych identyfikatorów do nich, aby można było się do nich odwołać za pomocą linków wewnętrznych linkujących do bieżącej, lub nie, strony.
=== Funkcje lokalne ===
==== {{Śródtytuł|Powtarzane}}{{Code|Powtarzane}} ====
Funkcja, którego parametrem jest rozdział. Liczy numer takiego samego rozdziału. Do swojego działania funkcja wykorzystuje tabelę {{Code|tab_powtarzane}} {{Patrz|tab_powtarzane}} zdefiniowanej w funkcji: {{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, aby uzyskać unikalność danego nagłówka, tworząc kolejne pozycje spisu treści na stronie zbiorczej.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Powtarzane(rozdzial)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|parametr}} | _1 = Podany rozdzial spisu treści lub podanego rozdzialu w artykułach, w zależności od sytuacji, w której uruchomiono tą zmienną.
}}
Przykład użycia:
<syntaxhighlight lang="lua">
local liczba_powtarzanego=Powtarzane(naglowek);
</syntaxhighlight>
==== {{Śródtytuł|CzyStronaSubst}}{{Code|CzyStronaSubst}} ====
Funkcja sprawdzająca, czy składowa tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a później jego podelement: {{Code|CzyStronaSubst}} {{Patrz|CzyStronaSubst}}, czy nie istnieje, a jeżeli tak, to ustaw jego wartość na: {{Code|tak}}.
Zmienna mówi, że strona została przeanalizowana parserem strony zbiorczej, dlatego jest ustawiana właśnie ta zmienna, i że to jest strona zbiorcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyStronaSubst()...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = Brak parametrów. | komórka1 = 1
}}
Przykład analizy funkcji, podając je właściwie ciało:
<syntaxhighlight lang="lua">
if(not glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"])then
glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak";
end;
</syntaxhighlight>
==== {{Śródtytuł|WoluminSubst}}{{Code|WoluminSubst}} ====
Funkcja wyszukuje w zakodowanym tekście szablony: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}} i {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}, przy pomocy: {{Code|tablica_obiektow_strony_dany_modul_strony}} {{linkPatrz|tablica_obiektow_strony_dany_modul_strony}}, wywołując dla nich odpowiednie kolejno funkcje: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-WoluminSubst}} i {{Code|KsiążkaSubst}} {{LinkPatrz|KsiazkaSubst-WoluminSubst}}.
* To jest główna funkcja w: {{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, od której liczymy szablony stron zbiorczych. I całą historię tego liczenia od tego zaczynamy, w przypadku całościowego liczenia takich stron na stronie zbiorczej, funkcja wykorzystuje do tego celu: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, a do części szczególnej, dla jednego artykułu, używa do tego: {{LinkŚródtytuł|StronaSubst}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,nazwa_modulu_strony_szablonowa,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Jest to przeszukiwany tekst, w celu wyszukania szablonów: {{s|StronaSubst}} i {{s|KsiążkaSubst}}.
| 2 = {{Code|nazwa_modulu_strony}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_strony}}. Jest to uchwyt bazy kodowania zamiast używania zmiennej: {{Code|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}.
| 3 = {{Code|nazwa_modulu_strony_szablonowa}} | _3 = Jak w: {{LinkPatrz|nazwa_modulu_strony_szablonowa}}. To nazwa w wersji szablonowej, by napisać nazwę szablonu tak, by w ten sposób odnaleźć szablony: {{s|StronaSubst}} i {{s|KsiążkaSubst}}, by je w odpowiedni sposób obsłużyć.
| 4 = {{Code|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _4 = Jak w: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. Jeśli jest nienilowe, to używamy zamiast: {{Code|nazwa_modulu_strony}} {{LinkPatrz|nazwa_modulu_strony}}.
| 5 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
StronaSubst=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
...
end;
</syntaxhighlight>
| 6 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _6 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
KsiazkaSubst=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
...
end;
</syntaxhighlight>
}}
Przykłady wykorzystania:
<syntaxhighlight lang="lua">
WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,nazwa_modulu_strony_szablonowa,tablica_obiektow_strony_dany_modul_strony,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
...
StronaSubst(tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
...
p.AnalizaStronaSubst(glowna_tablica.tabela_listy_danych_analizy_ksiazki,spis_artykulow,pelnanazwastrony,TakFun(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny),NieFun(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny),FunRozdzial(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny));
end
);
</syntaxhighlight>
Funkcja wykorzystuje pierwszą funkcję, wywołując inną funkcję: {{LinkŚródtytuł|StronaSubst}}, a druga funkcję: {{LinkŚródtytuł|p.AnalizaStronaSubst}}.
==== {{Śródtytuł|StronaSubstParametr}}{{Code|StronaSubstParametr}} ====
Funkcja liczy łańcuch znakowy odpowiadający pojedynczemu wywołaniu, dotyczący danego rozdziału strony zbiorczej, czyli dla pojedynczego wywołania szablonu: {{LinkPatrz|StronaSubst-Szablon}}, lub dla pojedynczego artykułu z wielu generowanych przez szablon: {{LinkPatrz|KsiążkaSubst-Szablon}}. Szablon tworzy rozdział w postaci linku do artykułu, wtedy w nagłówku nie jest podawany adres pełny artykułu, tylko nazwa tego linku jest równa podanej nazwie nagłówka, chociaż adres jest pełną nazwą książki, wtedy w tekście w znaczniku nie jest podawany wcale żaden artykuł, ani w ogóle tekst, a jeżeli ona nie jest linkiem, to nagłówek i jego rozdział jest w postaci tekstu, wtedy w tekście rozdziału jest podawany pełny adres artykułu, a jeżeli, mamy włączony postęp, wtedy to jest ukryte właściwością '''{{lpg|CSS}}''': {{Code|display:none}}.
Rozdział jest pod elementem {{Tag|div|parametry=style="display:block;" class="rozdział_książki"}}, o odpowiednim poziomie, gdy poziom jest {{Code|nil}}, to wtedy przyjmuje on domyślną wartość {{Code|1}}, tworzonym przez funkcję: {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}. Następnym elementem jest postęp, pod warunkiem, jeżeli ustawiono zmienną: {{Code|postep}}, a dalej w osobnym {{ZobaczTeż|strona_subst}}: {{Tag|div|parametry=class="strona_subst"}}, jest zawartość rozdziału w postaci naszego adresu, lub w postaci wartości pustej, gdy rozdział jest linkiem, wtedy zmienna: {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}, jest niepusta, według ustawień funkcji: {{LinkŚródtytuł|StronaSubst}}, a więc tak się dzieke również w przypadku szablonu: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}, gdy ta funkcja została wywołana przez niego.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function StronaSubstParametr(strona,naglowek_strony,link,p,postep,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|strona}} {{Patrz|strona-StronaSubstParametr}} | _1 = Jak w: {{LinkPatrz|1-StronaSubst}} - jest to nazwa artykułu, który wraz z pozostałymi wartościami nazw książki, tworzy pełny adres, który mieści się na stronie w odpowiedniej sekcji w: {{LinkZobaczTeż|strona_subst}}, a jeżeli zmienna: {{Code|postęp}} {{LinkPatrz|postep-StronaSubstParametr}}, jest niepusta, wtedy ten rozdział jest ukryty, przeciwnie już nie. Ten adres może mieścić się w linku w nagłówku, w przypadku podania {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}. a ten znacznik podany tutaj jest wtedy pusty.
| 2 = {{Code|naglowek_strony}} {{Patrz|naglowek_strony-StronaSubstParametr}} | _2 = Nagłówek strony tworzony z pełnego adresu strony, który jest podstroną wraz z nagłówkiem.
| 3 = {{Code|link}} {{Patrz|link-StronaSubstParametr}} | _3 = Jak w: {{LinkPatrz|link-StronaSubst}}, tylko ta zmienna jest w postaci logicznej, jak ta ostatnia jest niepusta, wtedy ta zmienna odpowiada wartości logicznej prawda, w przeciwnym wypadku mamy fałsz. Wtedy nagłówek jest linkiem, a zawartość znacznika: {{LinkZobaczTeż|strona_subst}}, jest pusta.
| 4 = {{Code|p}} {{Patrz|p-StronaSubstParametr}} | _4 = Poziom tworzonego nagłówka rozdziału dodatniego równaniowego, jeżeli {{Code|p {{=}} nil}}, wtedy domyślny poziom jest 1, ten poziom jest liczba calkowitą dodatnią. To odpowiada pewnej liczbie równa się po obu jego stronach nagłówka: {{Code|naglowek_strony}} {{LinkPatrz|naglowek_strony-StronaSubstParametr}}.
| 5 = {{Code|postep}} {{Patrz|postep-StronaSubstParametr}} | _5 = Jak w: {{LinkPatrz|postep-StronaSubst}}, z wartością logiczną, jak u w: {{LinkPatrz|link-StronaSubstParametr}}.
| 6 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _6 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. Nazwy potrzebne do strorzenia pełnej nazwy adtesu strony, która mieści się w atrybucie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}, w zależności od podanego parametru: {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}.
}}
==== {{Śródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}}{{Code|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} ====
Funkcja liczy pojedynczą pozycję dla artykułu, na stronie zbiorczej, przy wywołaniu szablonu {{LinkPatrz|KsiążkaSubst-Szablon}}. Nie liczy tylko strony typu: wersji: wersji do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}} i wersji do druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}, i ich nie rozwaza w zbiorze artykułów,.
Gdy nie jest włączony parametr sekcji, ale też jest wyłączony parametr naglówków, to wtedy strona nie uwzględnia, że strony mogą się powtarzać, w przeciwnym wypadku, dalsze repetowane strony są nie uwzględniane, bo np. strony mogą być z nagłówkami w spisie treści, więc w tym przypadku ma sens używać ten parametr.
Gdy na stronie jest włączony parametr sekcji, to dla nazw strony niepowtarzających się, liczy stronę w postaci listy tej samej nazwy strony z jego nagłówkami, tzn. po: {{Code|#}}.
Funkcja wykorzystuje do liczenia pojedynczej pozycji artykularnej, a w przypadku włączonej sekcji, również te z nagłówkiem, aby policzyć pozycję adresową dla tekstu rozdziału, tzn. używa do tego: {{LinkŚródtytuł|StronaSubstParametr}}.
Fukcja do powtarzanych nagłówków na stronie wykorzystuje funkcję: {{LinkŚródtytuł|Powtarzane}}.
Funkcję wywołuje się w pętli aż do granicy dojścia do ostatniego artykułu w rozdziale, czy książce, to zależy w jakiej stronie szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}, się znalazł, czy to w artykule przyprządkowanym danemu rozdziałowi, która jest w tym przypadku stroną zbiorczą, ale nie zawsze, czy innym, czyli normalną stroną zbiorczą, czy to w wersji do czytania, czy druku.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego(tabela_parametrowa_strony,naglowki,sekcje,postep,tablica_stron,wikikod,toc_nowe,HNumer,m_roznica,m_uzyskane,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tabela_parametrowa_strony}} {{Patrz|tabela_parametrowa_strony}} | _1 = Tabela charakteryzujaca dany artykuł, w tym rozdziale.
| 2 = {{Code|naglowki}} {{Patrz|naglowki}} | _2 = Parametr uwzględniający, gdy strony na różnych spisach treści na stronie mogą posiadać sobie nagłówki, wtedy jest uwzględniany po nich.
| 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczy je nagłówkami, którymi są poszczególne rozdziały na stronie.
| 4 = {{Code|postep}} | _4 = Jak w: {{LinkPatrz|postep-StronaSubstParametr}}, wykorzystywany przez {{LinkŚródtytuł|StronaSubstParametr}}, w celu zamienienia adresu na postęp.
| 5 = {{Code|tablica_stron}} {{Patrz|tablica_stron}} | _5 = Tablica zebranych stron przez tą funkcję przekazywana i zwracaną przez nią iteracyjnie, w prztoadku, gdy jest wyłączony parametr nagłówków,aby strony się nie powtarzały.
| 6 = {{Code|wikikod}} {{Patrz|wikikod}} | _6 = Wikikod strony tworzony iteracyjnie dla strony zbiorczej dla poszczególnych artykułów książki, nawet tych z nagłówkami.
| 7 = {{Code|toc_nowe}} {{Patrz|toc_nowe}} | _7 = Są tutaj liczone pozycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiedni sposób, by wszystkie linki w niej szły do tej samej strony. Jest liczony spis, nawet wtedy, gdy początkowo go tam nie było.
| 8 = {{Code|HNumer}} {{Patrz|HNumer}} | _8 = Funkcja zwracana przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}, która służy do liczenia poziomu w strukturze rozdziałów dodatnich równaniowych.
| 9 = {{Code|m_roznica}} {{Patrz|m_roznica}} | _9 = Jest to fatyczny poziom rozdziału liczony przez funkcję: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}. Jest {{ZobaczTeż|m_roznica}} to poziom głównego nagłówka rozdziału, którym jest artykuł. Bez rozdziałów w artykule.
| 10 = {{Code|m_uzyskane}} | _10 = Jest to poziom tego: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, liczony przez: {{Code|HNumer}} {{LinkPatrz|HNumer}}, który oddaje ssens strukturze rozdziałów i w nich artykułów. Podobnie jak dla: {{LinkZobaczTeż|m_roznica}}, ale ten policzony z: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, co na podstawie tego otrzymujemy właśnie to. Właśnie policzony z te funkcji, bardziej oddaje ssens struktury poziomów rozdziałów niż jego goły surowy odpowiednil
}}
Przykłady użycia:
<syntaxhighlight lang="lua">
if(tab_lista[2])then
... --- ciało przez właściwą pętlą;
for _,tabela_parametrowa_strony in ipairs(tab_lista[2])do
... ---- ciało pętli przez tą funkcję;
tablica_stron,wikikod,toc_nowe=ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego(tabela_parametrowa_strony,naglowki,sekcje,postep,tablica_stron,wikikod,toc_nowe,HNumer,m_roznica,m_uzyskane,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
... ---- ciało pętli po tej funkcji;
end;
end;
</syntaxhighlight>
==== {{Śródtytuł|PoziomNapisowyWprowadzeniaTekstu}}{{Code|PoziomNapisowyWprowadzeniaTekstu}} ====
Funkcja liczy poziom rozdziału, który może być różnego typu, np. dadatni centrowany lub równaniowy (normalny), a to pierwsze jest znacznikowo lub szablonowo, średnikowy, zerowy albo ujemny. Jeżeli w rozdziale znajduje się artykuł, to jedynie może być to rozdział dodatni niezależnie jaki. Rozdział centrowany jest ważniejszy niż ten dodatni równaniowy.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,poziom_rozdzial_centrowany,poziom_rozdzial_dodatni,poziom_rozdzial_srednikowy,poziom_rozdzial_zerowy,poziom_rozdzial_ujemny)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tab_lista}} {{Patrz|tab_lista}} | _1 = Tabela przedstawiające pozycję rozdziału i i jego artykułów, dla danego rozdziału, do którego należy artykuł.
| 2 = {{Code|poziom_rozdzial_centrowany}} | _2 = Poziom rozdziału dodatniego centrowanego, w którym leży dany rozdział.
| 3 = {{Code|poziom_rozdzial_dodatni}} | _3 = Poziom rozdziału dodatniego normalnego, w którym leży dany rozdział.
| 4 = {{Code|poziom_rozdzial_srednikowy}} | _4 = Poziom rozdziału ujemnego średnikowego (zaczynający się od {{Code|;}}), w którym leży dany rozdział.
| 5 = {{Code|poziom_rozdzial_zerowy}} | _5 = Poziom rozdziału zerowego, w którym leży dany rozdział.
| 6 = {{Code|poziom_rozdzial_ujemny}} | _6 = Poziom rozdziału ujemnego, w którym leży dany rozdział.
}}
Przykłady użycia:
<syntaxhighlight lang="lua">
local poziom_rozdzial_centrowany=0;
local poziom_rozdzial_dodatni=0;
local poziom_rozdzial_srednikowy=0;
local poziom_rozdzial_zerowy=0;
local poziom_rozdzial_ujemny=0;
for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do
... ---- ciało pętli przed tą funkcją;
local m=PoziomNapisowyWprowadzeniaTekstu(tab_lista,poziom_rozdzial_centrowany,poziom_rozdzial_dodatni,poziom_rozdzial_srednikowy,poziom_rozdzial_zerowy,poziom_rozdzial_ujemny);
... ---- ciało pętli po tej funkcji;
end;
</syntaxhighlight>
==== {{Śródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}{{Code|PoziomNapisowyWprowadzeniaTekstuArtykularny}} ====
Funkcja liczy poziom artykułu, w którym on leży, może on leżeć w rozdziale dodatnim centrowanym lub równaniowym (normalnym), a to pierwsze może być centrowane znacznikowo lub szablonowo, czy nawet średnikowym, bądź zerowym, a nawet ujemnym, względem jego poziomów rozdziałów różnych typów, w którym leży on.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function PoziomNapisowyWprowadzeniaTekstuArtykularny(tab_lista,m,tabela_parametrowa_strony,liczba_poziomu_centrowanego_dla_strony,liczba_poziomu_dodatniego_dla_strony,liczba_poziomu_srednikowego_dla_strony,liczba_poziomu_zerowego_dla_strony,liczba_poziomu_ujemnego_dla_strony)
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tab_lista}} | _1 = Jak w: {{LinkPatrz|tab_lista}}.
| 2 = {{Code|m}} | _2 = Poziom rozdziału dodatniego, do której należy artykuł.
| 3 = {{Code|tabela_parametrowa_strony}} | _3 = Jak w: {{LinkPatrz|tabela_parametrowa_strony}}.
| 4 = {{Code|liczba_poziomu_centrowanego_dla_strony}} | _4 = Poziom centrowany artykułu, w którym on leży.
| 5 = {{Code|liczba_poziomu_dodatniego_dla_strony}} | _5 = Poziom dodatni normalny artykułu, w którym on leży.
| 6 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _6 = Poziom srednikowy (ujemny, ale napisany za pomocą początkowego średnika), do której należy dany artykuł.
| 7 = {{Code|liczba_poziomu_zerowego_dla_strony}} | _7 = Poziom rozdziału zerowego, do ktorej należy artykuł.
| 8 = {{Code|liczba_poziomu_ujemnego_dla_strony}} | _8 = Poziom rozdziału ujemnego, do ktorej należy artykuł.
}}
Przykłady użycia:
<syntaxhighlight lang="lua">
if(tab_lista[2])then
local liczba_poziomu_centrowanego_dla_strony=0;
local liczba_poziomu_dodatniego_dla_strony=0;
local liczba_poziomu_srednikowego_dla_strony=0;
local liczba_poziomu_zerowego_dla_strony=0;
local liczba_poziomu_ujemnego_dla_strony=0;
...
for _,tabela_parametrowa_strony in ipairs(tab_lista[2])do
local m_roznica=PoziomNapisowyWprowadzeniaTekstuArtykularny(tab_lista,m,tabela_parametrowa_strony,liczba_poziomu_centrowanego_dla_strony,liczba_poziomu_dodatniego_dla_strony,liczba_poziomu_srednikowego_dla_strony,liczba_poziomu_zerowego_dla_strony,liczba_poziomu_ujemnego_dla_strony);
... ---- Dalsza część ciała danego okrążenia pętli;
end;
end;
</syntaxhighlight>
==== {{Śródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}{{Code|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}} ====
Funkcja liczy wszystkie pozycje artykularne, tzn. wszystkich artyków rozważanego podręcznika, czy to w postaci linków inteligetnych, czy zwykłych linków wewnętrznych, dla danego rozdziału, wykorzystuje do tego celu funkcje: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}} - do liczenia poziomu artykułów, i {{LinkŚródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} - do listowania pojedynczego artykułu, w zależności od podanych w nim zmiennych. Raz liczy rozdział z jego artykułami, i pod nim wraz z ich rozdziałami i poziomami, a za innym razem jako pojedynczy rozdział z tylko jego artykułami, nie rozważając ich zawartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,m,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tab_lista}} | _1 = Jak w: {{LinkPatrz|tab_lista}}.
| 2 = {{Code|m}} {{Patrz|m}} | _2 = Jest to poziom napisu wprowadzenia tekstu, w którym leży dany artykuł.
| 3 = {{Code|naglowki}} | _3 = Jak w: {{LinkPatrz|naglowki}}.
| 4 = {{Code|sekcje}} | _4 = Jak w: {{LinkPatrz|sekcje}}.
| 5 = {{Code|HNumer}} | _5 = Jak w: {{LinkPatrz|HNumer}}.
| 6 = {{Code|tablica_stron}} | _6 = Jak w: {{LinkPatrz|tablica_stron}}.
| 7 = {{Code|wikikod}} | _7 = Jak w: {{LinkPatrz|wikikod}}.
| 8 = {{Code|toc_nowe}} | _8 = Jak w: {{LinkPatrz|toc_nowe}}.
}}
Przykłady użycia:
; Pierwszy dla listowania artukułów danego rozdziału
<syntaxhighlight lang="lua">
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
if(substrona==rozdzial)then
if(ktore==licznik_numer_tego_samego_rozdzialu)then
... ---- ciało czści kodu przed;
tablica_stron,wikikod,toc_nowe=ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,0,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
... ---- dalsza częśc kodu po;
end;
end;
end;
</syntaxhighlight>
; Drugi do listowania artykułów książki
<syntaxhighlight lang="lua">
for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do
... ---- ciało pętli przed wywołaniem tej funkcji;
tablica_stron,wikikod,toc_nowe=ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,m,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
... ---- ciało pętli po wywołaniu tej funkcji;
end;
</syntaxhighlight>
==== {{Śródtytuł|StronaSubst}}{{Code|StronaSubst}} ====
Funkcja operująca na parametrach szablonu: {{Code|{{s|StronaSubst}}}} {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni książkowej, przy pomocy zmiennych nazw, pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest on fałszywy, wtedy zbieramy parametry różnych książek dla strony zbiorczej ustawionej za pomocą parametrów pudełkowych, w innym przypadku parametry strony zbiorczej należącego do aktualnej książki. Też możemy liczyć parametry stron zbiorczych z poziomu innych stron przy pomocy parametrów pudełkowych.
W tym przypadku dla aktualnego artykułu, gdy niepodano zmiennych pudełkowych, lub one wskazują na ten artykuł, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany.
Jeżeli mamy do czynienia z nieaktualnym artykułem, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function StronaSubst(tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Parametry szablonu: {{LinkPatrz|StronaSubst-Szablon}}.
| 2 = {{Code|czy_artykul_aktualny}} {{Patrz|czy_artykul_aktualny}} | _2 = Funkcja mówi, że wykorzystujemy artykuł aktualnej książki.
| 3 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _3 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
}}
{{OpisParametrów
| tytuł = Opis parametrów tablicy: {{nobold|{{LinkPatrz|tabela_parametrow_szablonu}}}}:
| 1 = {{Code|1}} {{Patrz|1-StronaSubst}} | _1 = Artykuł danej książki, bez pełnej nazwy książki.
| 2 = {{Code|link}} {{Patrz|link-StronaSubst}} | _2 = Gdy niepusta, wtedy wyświetlany napis w nagłówku jest linkiem, w przeciwny wypadku zwykłym tekstem.
| 3 = {{Code|postep}} {{Patrz|postep-StronaSubst}} | _3 = Uruchamia postęp zamiast wyświetlania tekstu linku w postaci pełnego adresu strony, ewentualnie z nagłówkiem, kiedy nagłówek nie jest linkiem do artykułu strony, a gdy jest link według {{LinkPatrz|link-StronaSubst}}, to wtedy tylko wyświetli się postęp.
}}
Gdy artykuł jest: w wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, lub druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą.
Funkcja liczy nagłówek ze zmiennej: {{Code|strona}} {{LinkPatrz|1-StronaSubst}}, a następnie ile razy został powtórzony, liczymy to z: {{LinkŚródtytuł|Powtarzane}}. Ten wynik wykorzystujemy, to liczenia spisu treści: {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}.
Wynik dla danego artykułu liczymi z funkcji: {{LinkŚródtytuł|StronaSubstParametr}}, jest to: {{Code|str}} {{Patrz|str}}. On jest zapisywany pod różnymi zmiennymi w tablicach wielowymiarowych, w zależności, czy podan parametry pudełkowe.
Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-StronaSubst}}, jest tworzona wielowymiarowa zmienna, pod którą jest zapisywany ten wynik:
<syntaxhighlight lang="lua">
glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubst"][strona][(czy_link and "tak" or "")]=str;
</syntaxhighlight>
A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|StronaSubstInne}} {{LinkPatrz|StronaSubstInne-StronaSubst}}, jest tworzona wielowymiarowa zmienna, też parametrów nazw książki, pod którą zapisywany jest ten wynik:
<syntaxhighlight lang="lua">
glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubstInne"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki][strona][(czy_link and "tak" or "")]=str;
</syntaxhighlight>
{{Hr}}
W obu tworzonych tabelach zależy to od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{Code|link}} {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy, dla niej, ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}.
==== KsiążkaSubst ====
Funkcje poniżej wykorzystywane są przez szablon: {{Code|{{s|KsiążkaSubst}}}} {{LinkPatrz|KsiążkaSubst-Szablon}}. Funkcja: {{LinkŚródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, przez niego jest używana na stronie zbiorczej rozdziału, nawet podana za pomocą parametrów pudełkowych, ale też strony zbiorczej, i {{LinkŚródtytuł|AnalizowanieWoluminu}}, jest używana do analizowania całych wszystkich artykułów wraz z rozdziałami spisów książki, na stronie ich zbiorczej, lub podana ta strona jest przy pomocy też tych samych parametriów, ale o innej wartości.
===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} =====
Funkcja liczy strony zbiorcze dla danego rozdziału, oprócz wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, i druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}.
W tym przypadku dla aktualnej książki, gdy niepodano zmiennych pudełkowych, lub one wskazują na ten artykuł, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany, a jeżeli nie, to sprawdzane jest, czy taki rozdział, któremu symbolizuje artykuł książki, w której leży ten szablon, czy rzeczywiście jest zbiorczy.
Jeżeli mamy do czynienia z nieaktualną książką tylko inną, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|KsiążkaSubstInneRozdział}} {{Patrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę.
Jeśli funkcja nie zakończyła przedwcześnie pracy, wtedy ona liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{Code|postep}} {{LinkPatrz|postep-StronaSubstParametr}}, {{Code|ktore}} {{Patrz|ktore}}, jeżeli tej zmiennej nie podano, to ona domyślnie przyjmuje wartość {{Code|1}}, z {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}.
Funkcja liczy numer tego samego rozdziału. Ona wykorzystuje do tego zmienną: {{Code|ktore}} {{LinkPatrz|ktore}}, aby policzyć ten ściśle określony rozdział, by zwrócić wikikod {{LinkPatrz|wikikod}}.
Dla aktualnego wyszukanego rozdziału zgodnego z nazwą artykułu jako strona zbiorcza, jeżeli taki istnieje, wtedy funkcja wyświetla jakiolwiek wynik, np. też z artykułami, jeżeli w nim istnieją takie. Funkcja wtedy inicjuje zmienną: {{Code|HNumer}} {{LinkPatrz|HNumer}} jako wynik z {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}, następnie, za pomocą niej, listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}.
Według tej funkcji: cały taki wynik jest to serią znaczników: {{Tag|div|parametry=class="rozdział_książki"}}, a w nich poszczególnych są nagłówki artykułów, i pojedyncze adresy tych stron (czasami jest on ukryty, bo uruchomiony jest parametr postępu) lub ukryte w linku w nagłówku, a w nich one są okrążone: {{Tag|div|parametry=class="strona_subst"}}, którego zawartość jest zamieniana przez {{lpg|JavaScript}} na stronę o tym adresie.
Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy - aktualny artykuł, jeśli nie podano parametrów pudełkowych, lub one wskazują na ten artykuł, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, jest zapisywany wynik:
<syntaxhighlight lang="lua">
glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod;
</syntaxhighlight>
A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa - nieaktualny artykuł, parametry pudełkowe już są, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną: {{Code|KsiążkaSubstInneRozdział}} {{Patrz|KsiążkaSubstInneRozdział-AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, jest tworzona odpowiednia podtablica ze zmiennych nazw książki, a tam w końcu, pod kluczem artykułu, jest zapisywany wynik:
<syntaxhighlight lang="lua">
glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInneRozdział"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki][substrona]=wikikod
</syntaxhighlight>
Funkcja zwraca w ten sposób uzyskany wikikod {{LinkPatrz|wikikod}} dla całego rozdziału, lub ciąg pusty, jeżeli takiego rozdziału nie znaleziono.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizowanieStronyWoluminuWprowadzeniaTekstu(tab_lista_artykulow_w_ksiazce,substrona,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}.
| 2 = {{Code|substrona}} | _2 = Jak w: {{LinkPatrz|substrona}}.
| 3 = {{Code|tabela_parametrow_szablonu}} | _3 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}.
| 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny}}.
| 5 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _5 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
}}
Funkcja jest wykorzystywana w definicji funkcji zwracanej: {{LinkŚródtytuł|FunRozdzial}}.
===== {{Śródtytuł|AnalizowanieWoluminu}}{{Code|AnalizowanieWoluminu}} =====
Funkcja liczy strony zbiorcze dla całej ksiązki, oprócz wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, i druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}.
W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, lub one wskazują na ten artykuł, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki, już policzony, artykuł istnieje, to program tej funkcji jest zakańczany.
Jeżeli nie mamy do czynienia z aktualną książką tylko z inną, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|KsiążkaSubstInne}} {{Patrz|KsiążkaSubstInne-AnalizowanieWoluminu}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno zbudowanych ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę.
Jeżeli funkcja przedwcześnie nie zakończyła pracy, wtedy liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{LinkPatrz|postep-StronaSubstParametr}}, z {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}, oraz inicjowana jest funkcja: {{Code|HNumer}} {{LinkPatrz|HNumer}}, przy pomocy innej: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}.
Możliwe jest ze rozdział może nie składać się z żadnych artykułów, czyli funkcja liczy wszystkie rozdziały będące przed danymi artykułami. Ona liczy ich poziom z: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstu}}, tzn. {{Code|m}} {{Patrz|m-AnalizowanieWoluminu}}, aby funkcja poszła dalej w pętli, to ona nie może być poziomem {{LinkPatrz|m-AnalizowanieWoluminu}} równy zero, rozdział równy pustemu łańcuchowi, {{Code|Spis treści}}, {{Code|Bibliografia}}, {{Code|Zobacz też}}, {{Code|Inne}} i {{Code|Licencja}}, co na podstawie tego jest liczony jego numer poziomu z: {{Code|HNumer}} {{LinkPatrz|HNumer}}, tzn. {{Code|m_uzyskane}} {{Patrz|m_uzyskane}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr, tzn. tą ostatnią policzoną zmienną. Dalej jest wskazywany, które jest powtórzenie danego rozdziału z {{LinkŚródtytuł|Powtarzane}}, co na tej podstawie, licząc od tego pierwszego takiego rozdziału, co ten numer jest wykorzystywany w tablicy liczączej spis treści, strony zbiorczej, czyli: {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}.
Co potem po wszystkich rozdziałach, nie posiadających w sobie artykułów, lub nie, wtedy liczymy listę artykułów w danym rozdziale, jego wikikod, i zaaktualizowaną wersję:, {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}, według funkcji: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}.
Według tej funkcji: cały taki wynik jest otoczony: {{Tag|div|parametry=class="klasa_książki"}}, a w niej są większe rozdziały - one to są rozdziały w spisie, ale nie w artykule, a w niej a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}, a w nich są dla danego rozdziału: a w nich są wszystkie artykuły w nich się znajdujące, którego każda reprezentuje inne: {{Tag|div|parametry=class="rozdział_książki"}}, a w nich poszczególnych są nagłówki artykułów, i pojedyncze adresy tych stron (jeślimamy uruchimiony postęp, to ten adres jest ukryty według: {{Code|display:none;}}) lub w postaci linku w nagłówka, a w nich one są okrążone: {{Tag|div|parametry=class="strona_subst"}}, którego zawartość jest zamieniana przez {{lpg|JavaScript}} na stronę o tym adresie.
Dla aktualnej książki wynik jest zapisywany pod zmienną: {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{Code|KsiążkaSubstInne}} {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}.
Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-StronaSubst}}, jest zapisywany wynik:
<syntaxhighlight lang="lua">
glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod;
</syntaxhighlight>
A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną: {{Code|StronaSubstInne}} {{Patrz|KsiążkaSubstInne-StronaSubst}}, jest tworzona ta wielowymiarowa zmienna, pod którą jesst zapisywany wynik:
<syntaxhighlight lang="lua">
glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInne"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki]=wikikod;
</syntaxhighlight>
Widzimy, że funkcja zwraca w ten sposób uzyskany wikikod {{LinkPatrz|wikikod}} dla całej książki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizowanieWoluminu(tab_lista_artykulow_w_ksiazce,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}.
| 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}.
| 3 = {{Code|czy_artykul_aktualny}} | _3 = Jak w: {{LinkPatrz|czy_artykul_aktualny}}.
| 4 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _4 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
}}
Funkcja jest wykorzystywana w definicji funkcji zwracanej: {{LinkŚródtytuł|TakFun}}.
==== Funkcje analizujące strony zbiorcze lub inne ====
===== {{Śródtytuł|NieFun}}{{Code|NieFun}} =====
Jest to funkcja zwracająca inną funkcję, która to z kolei zwraca zawsze wartość pustą. Funkcja zwracana jest to funkcja: {{LinkPatrz|NieFun-AnalizaStronaSubst}}, w: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Ta funkcja zwracana przez funkcję w nagłówku jest wykorzystywana wtedy, gdy nie mamy do czynienia z żadną stroną zbiorczą, tylko ze zwykłym artykułem.
Definicja poglądowa funkcji:
<syntaxhighlight lang="lua">
local NieFun=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny)
return function(parametr) return "";end;
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu-NieFun}} | _1 = Tabela parametrów szablonu: {{LinkPatrz|KsiążkaSubst-Szablon}}.
| 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu-NieFun}} | _2 = Nazwa tego szablonu.
| 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow-NieFun}} | _3 = Tabela jego modyfikatorów.
| 4 = {{Code|czy_artykul_aktualny}} {{Patrz|czy_artykul_aktualny-NieFun}} | _4 = Czy dotyczy aktualnej książki, dla danego artykułu, na stronie zbiorczej tego woluminu.
}}
{{OpisParametrów
| tytuł = Parametry funkcji zwracanej:
| 1 = {{Code|parametr}} | _1 = Jest to dowolny parametr, w: {{Code|{{ld2|StronicowyParser/StronaSubst}}}}, przyjmuje wartość: {{Code|nil}}.
}}
===== {{Śródtytuł|TakFun}}{{Code|TakFun}} =====
Funkcja zwracająca inną funkcję, której wywołanie jest funkcją z: {{LinkPatrz|TakFun-AnalizaStronaSubst}}, w: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Funkcja zwracana zwraca zawsze wartość odpowiadającą wartości logicznej prawdziwej. Tą funkcją zwracaną przez funkcję w nagłówku mamy do czynienia, gdy mamy do czynienia ze stronami zbiorczymi odpowiadzialnymi za stronę o: wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, lub druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}.
Definicja pogladowa funkcji:
<syntaxhighlight lang="lua">
local TakFun=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny)
return function(tab_lista_artykulow_w_ksiazce,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)
AnalizowanieWoluminu(tab_lista_artykulow_w_ksiazce,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
return "tak";
end;
end;
</syntaxhighlight>
Funkcja wywołuje funkcję: {{LinkŚródtytuł|AnalizowanieWoluminu}}, do analizy woluminu, pojedynczego na stronie zbiorczej, ale nie rozdziałowej, tzn. te jednostki, które nie są zbiorczym obiektem dla stron danego rozdziału.
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}.
| 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu-NieFun}}.
| 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow-NieFun}}.
| 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}}.
}}
{{OpisParametrów
| tytuł = Parametry funkcji zwracanej:
| 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}.
| 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}
| 3 = {{Code|czy_artykul_aktualny}} | _3 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}}
| 4 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _4 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
}}
===== {{Śródtytuł|FunRozdzial}}{{Code|FunRozdzial}} =====
Funkcja zwraca inna funkcję, która jest tym: {{LinkPatrz|FunRozdzial-AnalizaStronaSubst}}, z: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Funkcja zwracana zawsze zwraca wartość odpowiadająca wartości logicznej prawdziwej. Tą funkcję zwracaną przez funkcję w nagłówku używaną, gdy mamy do czynienia, ze stronami zbiorczymi odpowiadzialnymi za rozdziały, która zbiera artykuły danego rozdziału.
Definicja poglądowa funkcji:
<syntaxhighlight lang="lua">
local FunRozdzial=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny)
return function(tab_lista_artykulow_w_ksiazce,substrona,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)
AnalizowanieStronyWoluminuWprowadzeniaTekstu(tab_lista_artykulow_w_ksiazce,substrona,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
return "tak";
end;
end;
</syntaxhighlight>
Funkcja wywołuje funkcję: {{LinkŚródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, do analizy woluminu, pojedynczego na stronie zbiorczej, ale rozdziałowej, tzn. te jednostki, które są zbiorczym obiektem dla stron danego rozdziału.
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}.
| 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu-NieFun}}.
| 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow-NieFun}}.
| 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}}.
}}
{{OpisParametrów
| tytuł = Parametry funkcji zwracanej:
| 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}.
| 2 = {{Code|substrona}} {{Patrz|substrona}} | _2 = Nazwa artykułu strony zbiorczej rozdziałowej.
| 3 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _3 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
3a7kecanjbtvi28pq8aytscvh6o4d93
Wikibooks:Moduły/StronicowyParser/Tekst
4
63524
560633
558331
2026-11-08T13:19:01Z
Persino
2851
560633
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|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.SpreparowanyWikikodStrony}}{{Code|p.SpreparowanyWikikodStrony}} ==
Funkcja ściągąjąca opisy szablonów ze strony szablonów, nie opisów, czy ze strony modułów ich opisy, a jeżeli tego opisu nie ma, to funkcja zwraca wartość {{Code|nil}}. A jeżeli tego nie ma w przypadku szablonów, to opisy z parametru {{Parametr|zawartość}} z wywołania: {{s|Dokumentacja|zawartość{{=}}...}}. Funkcja też ściąga zawartości stron szablonów, jeżeli na stronie szablonu jest szablon jego opisu, np. w postaci: {{Code|{{s|Nazwa szablonu/opis}}}}, to wtedy uzyskujemy jego zawartość w wyniku. Ma możliwości ściągania zawartości stron, jeżeli one istnieją, z innych przestrzeni nazw.
Jest to szablon ogólny do ogólnego ścigania stron z różnych przestrzeni, w takim przypadku nie ma potrzeby ściągania zawartości stron, tworząc skomplikowany algorytm dla każdego typu przestrzeni i zawartości, wystarczy ta funkcja.
Funkcja w opisach szablonów, a w niej instrukcje warunkowe podczas kodowania są rozwijane przy pomocy funkcji: {{Code|{{sr|#p.InstrukcjeWarunkowe|p=Ramka}}}}, a normalnie, gdy wewnątrz instrukcji warunkowych nie ma klamerek w funkcji, w składowej funkcji, tzn.: {{LinkPatrz|InstrukcjeWarunkowe-PobierzSpecjalniePrzygotowanyPreWikikodStrony}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SpreparowanyWikikodStrony(self,nazwa_modulu,nazwa_modulu_szablonowa,dokumentacja,inkludowana,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Funkcja korzysta bezpośrednio z funkcji: {{LinkŚródtytuł|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony}}.
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|self}} {{LinkPatrz|self}} | _1 = Parametr obiektowy funkcji, potrzebne do tabeli błędów w funkcji najważniej, która jest wykorzystywana. Zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję, np. można uruchomić poprzez, pisząc ogólnie:
<Syntaxhighlight lang="lua">
tekst=p:SpreparowanyWikikodStrony(nazwa_modulu,nazwa_modulu_szablonowa,dokumentacja,inkludowana,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
Gdzie zmienna: {{Code|p}} - to odpowiednia zmienna wywołaniowa modułowa nadana przez {{LzLua|require}}.
| 2 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _2 = Nazwa strony szablonu, modułu lub ich opisów, i stron w innych przestrzeniach nazw.
| 3 = {{Code|nazwa_modulu_szablonowa}} {{Patrz|nazwa_modulu_szablonowa}} | _3 = Nazwa modułu w wersji szablonowej, w wersji wywołaniowej.
| 4 = {{Code|dokumentacja}} {{LinkPatrz|dokumentacja}} | _4 = Przy wartości {{Code|true}}, tego parametru, wtedy funkcja nie koduje wewnętrznie przetwarzanej strony.
| 5 = {{Code|inkludowana}} {{Patrz|inkludowana}} | _5 = Przy wartości {{Code|true}}, tego parametru, wtedy strona zachowuje się jak inkludowana, przeciwny parametr do {{Code|czy_noinclude}} {{LinkPatrz|czy_noinclude}}.
| 6 = Twory funkcyjne lub przyjmowane wartości {{Code|nil}}, zatem: | nagłówek6 = tak
| 7 = {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA-SpreparowanyWikikodStrony}} | _7 = Funkcja przekształcające podany tekst, robiąc na nim pewne operacje, na samym końcu przetwarzania, po kodowaniu, jeśli istnieje, przed samym zwróceniem wyniku.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
tekst=__FUNKCJA(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,dokumentacja,czy_niezakodowana)
</syntaxhighlight>
| 8 = {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2-SpreparowanyWikikodStrony}} | _8 = Jeśli: {{Code|dokumentacja}} {{LinkPatrz|dokumentacja}} {{=}} {{Code|true}} - wtedy ta funkcja jest używana do sprawdzenia, czy dany tekst, w końcowym etapie, odkodować od postaci zakodowanej, czyli do formy dokumentacji.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
if(dokumentacja and ((not __FUNKCJA2) and true or __FUNKCJA2(tekst_artykulu_caly,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul)))then
</syntaxhighlight>
| 9 = {{Code|__FUNKCJA3}} {{Patrz|__FUNKCJA3-SpreparowanyWikikodStrony}} | _9 = Funkcja uzyskująca tablicę danych parametrów rozkładania tworów szablonowych w {{Code|{{m|Szablonowe}}}}, czyli: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
local tablica_danych_parametrow_szablonu_strony=__FUNKCJA3 and __FUNKCJA3(nazwa_modulu,nazwa_modulu_szablonowa) or nil;
</syntaxhighlight>
| 10 = Funkcje używane w funkcji, potrzebne do konstrukcji funkcji przyjmowanych w: {{Code|{{sr|#p["UstalanieNazwyWywołania"]|p=Szablonowe}}}} {{Patrz|UstalanieNazwyWywołania}}: | nagłówek10 = tak
| 11 = {{Code|__FUNKCJA4}} {{Patrz|__FUNKCJA4-SpreparowanyWikikodStrony}} | _11 = Funkcja, np. dekodująca nazwę szablonu.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
if(__FUNKCJA4)then
nazwa_szablonu,powodzenie__FUNKCJA4(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
</syntaxhighlight>
| 12 = {{Code|__FUNKCJA5}} {{Patrz|__FUNKCJA5-SpreparowanyWikikodStrony}} | _12 = Funkcja, np. rozwijająca nazwę szablonu.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
nazwa_szablonu=__FUNKCJA5 and __FUNKCJA5(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nazwa_szablonu;
</syntaxhighlight>
| 13 = Inne: | nagłówek13 = tak
| 14 = {{Code|__FUNKCJA_ANALIZA_SPISOWA}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISOWA}} | _14 = Funkcja do modyfikacji tekstu pobranego ze strony.
{{Śródtekst|uchwyt=__FUNKCJA_ANALIZA_SPISOWA|tekst=
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
tekst_artykulu=__FUNKCJA_ANALIZA_SPISOWA and __FUNKCJA_ANALIZA_SPISOWA(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw) or tekst_artykulu;
</syntaxhighlight>
}}
| 15 = {{Code|__FUNKCJA_PARAMETRY}} {{LinkPatrz|__FUNKCJA_PARAMETRY}} | _15 = Funkcje do generowania tablicy bazy kodów.
{{Śródtekst|uchwyt=__FUNKCJA_PARAMETRY|tekst=
{{P|Przykład definicji:}}
<syntaxhighlight lang="lua">
function __FUNKCJA_PARAMETRY(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_element_juz_istnieje)
...
end;
end;
</syntaxhighlight>
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
local __FUNKCJA=__FUNKCJA_PARAMETRY(obiekt);
...
__FUNKCJA(tablica,klucz,wartosc_tablicy,false);
</syntaxhighlight>
}}
}}
Definicje funkcji: {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA-UstalanieNazwyWywołania}} i {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2-UstalanieNazwyWywołania}}, które są potrzebne do konstrukcji wywołania funkcji: {{LinkPatrz|UstalanieNazwyWywołania}}, uzyskiwania nazwy szablonu i jego modyfikatorów, względem tej funkcji w nagłówku ze zmiennymi: {{Code|__FUNKCJA4}} {{LinkPatrz|__FUNKCJA4-SpreparowanyWikikodStrony}} i {{Code|__FUNKCJA5}} {{LinkPatrz|__FUNKCJA5-SpreparowanyWikikodStrony}}, definicje tych funkcji:
* {{Code|__FUNKCJA}} {{LinkPatrz|__FUNKCJA-UstalanieNazwyWywołania}}:
<syntaxhighlight lang="lua">
local __FUNKCJA=function(nazwa_szablonu)
if(__FUNKCJA4)then
return __FUNKCJA4(nazwa_szablonu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony--[[,czy_uwzgledniac_modyfikatory]]);
end;
end;
</syntaxhighlight>
* {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2-UstalanieNazwyWywołania}}:
<syntaxhighlight lang="lua">
local __FUNKCJA2=function(nazwa_szablonu,tabela_modyfikatorow)
return __FUNKCJA5 and __FUNKCJA5(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nazwa_szablonu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA}} {{LinkPatrz|__FUNKCJA-SpreparowanyWikikodStrony}} ma definicję:
<syntaxhighlight lang="lua">
local __FUNKCJA=function(tekst,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,dokumentacja,czy_nie_opis)
... ---- ciało funkcji;
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst}} | _1 = Przetwarzany tekst.
| 2 = {{Code|nazwa_modulu}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu}}.
| 3 = {{Code|nazwa_modulu_szablonowa}} | _3 = Jak w: {{LinkPatrz|nazwa_modulu_szablonowa}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica danych bazy kodów zakodowanego tekstu.
| 5 = {{Code|dokumentacja}} | _5 = Jak w: {{LinkPatrz|dokumentacja}}.
| 6 = {{Code|czy_nie_opis}} {{Patrz|czy_nie_opis}} | _6 = Czy to nie jest opis szablonu, czy modułu, wtedy ta zmienna powinna przyjmować wartość {{Code|true}}, w przeciwnym razie {{Code|false}}.
}}
Przykłady użycia:
<syntaxhighlight lang="lua">
tekst_artykulu_caly=__FUNKCJA and __FUNKCJA(tekst_artykulu_caly,nazwa_modulu,nil,dokumentacja,true) or tekst_artykulu_caly;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2-SpreparowanyWikikodStrony}} ma definicję:
<syntaxhighlight lang="lua">
local __FUNKCJA2=function(tekst_artykulu_caly,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul)
... --- ciało funkcji;
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst_artykulu_caly}} {{Patrz|tekst_artykulu_caly}} | _1 = Przetwarzany tekst.
| 2 = {{Code|nazwa_modulu}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu}}.
| 3 = {{Code|nazwa_modulu_szablonowa}} | _3 = Jak w: {{LinkPatrz|nazwa_modulu_szablonowa}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
}}
Przykłady użycia:
<syntaxhighlight lang="lua">
if(dokumentacja and ((not __FUNKCJA2) and true or __FUNKCJA2(tekst_artykulu_caly,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul)))then
tekst_artykulu_caly=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst_artykulu_caly,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA3}} {{LinkPatrz|__FUNKCJA3-SpreparowanyWikikodStrony}} ma definicję:
<syntaxhighlight lang="lua">
local __FUNKCJA3=function(nazwa_modulu,nazwa_modulu_szablonowa)
... ---- ciało funkcji;
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|nazwa_modulu}} | _1 = Jak w: {{LinkPatrz|nazwa_modulu}}.
| 2 = {{Code|nazwa_modulu_szablonowa}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_szablonowa}}.
}}
Przykłady użycia:
<syntaxhighlight lang="lua">
local tablica_danych_parametrow_szablonu_strony=__FUNKCJA3 and __FUNKCJA3(nazwa_modulu) or nil;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA4}} {{LinkPatrz|__FUNKCJA4-SpreparowanyWikikodStrony}} ma np. definicję:
<syntaxhighlight lang="lua">
local __FUNKCJA4=function(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony--[[,czy_uwzgledniac_modyfikatory,czy_z_kluczem]])
... --- ciało funkcji;
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _1 = Nazwa szablonu do rozwinięcia.
| 2 = {{Code|nazwa_modulu}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu}}.
| 3 = {{Code|nazwa_modulu_szablonowa}} | _3 = Jak w: {{LinkPatrz|nazwa_modulu_szablonowa}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}}. | _5 = Tabela parametrów potrzebna do szybszego działania '''{{ld|StronicowyParser|Stronicowego parsera}}'''.
| 6 = Gdy tą funkcją jest: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}} {{Patrz|DekodowanieNazwySzablonu-SpreparowanyWikikodStrony}}, te zmienne bezpośrednio w: {{Code|__FUNKCJA4}}, nie występują, ale za to występują w tej podanej szczególnej przykładowej funkcji, tzn. argumenty: | komórka6 = tak
| 7 = {{Code|czy_uwzgledniac_modyfikatory}} {{Patrz|czy_uwzgledniac_modyfikatory}} | _7 = Czy ma uwzględniać modyfikatory, pierwsza zwracana zmienna jest: {{Code|nil}}, a druga: {{Code|false}}.
| 8 = {{Code|czy_z_kluczem}} {{Patrz|czy_z_kluczem}} | _8 = Czy klucze, o wzorze: {{Code|<nowiki>^klucz$</nowiki>}}, lub {{Code|<nowiki>^klucz[1-9]%d*$</nowiki>}}.
}}
Jeżeli w funkcji {{LinkPatrz|DekodowanieNazwySzablonu-SpreparowanyWikikodStrony}} nie wykryto kodów, to ona zwraca wartość pierwszą: {{Code|nil}}, drugą: {{Code|true}}. Na samym końcu funkcji jest wykonywane polecenie: {{Code|frame:preprocess}} w przeciwnym wypadku zwracane jest nazwa szablonu i wartość {{Code|true}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local __FUNKCJA4=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA5}} {{LinkPatrz|__FUNKCJA5-SpreparowanyWikikodStrony}} ma np. definicję:
<syntaxhighlight lang="lua">
local=__FUNKCJA5=function(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
... ---- ciało funkcji;
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|nazwa_szablonu}} | _1 = Jak w: {{LinkPatrz|nazwa_szablonu}}. To jest nazwa szablonu do rozwinicia po rozwinięciu przez funkcję: {{Code|__FUNKCJA4}}.
| 2 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} | _2 = Tabela modyfikatorów uzyskana podczas rozkładu na modyfikatory i nazwę szablonu, jeżeli funkcja ma modyfikatory warunkowe, czy jest szablonem, to jest zwracana wartość pierwsza: {{Code|nil}}, druga: {{Code|false}}, w przypadku: {{LinkPatrz|RozwijanieZakodowanejNazwySzablonu-SpreparowanyWikikodStrony}}.
| 3 = {{Code|nazwa_modulu}} | _3 = Jak w: {{LinkPatrz|nazwa_modulu}}.
| 4 = {{Code|nazwa_modulu_szablonowa}} | _4 = Jak w: {{LinkPatrz|nazwa_modulu_szablonowa}}.
| 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
}}
: Gdy tą funkcją jest: {{Code|{{sr|#p.RozwijanieZakodowanejNazwySzablonu|p=StronicowyParser/Potrzebne}}}} {{Patrz|RozwijanieZakodowanejNazwySzablonu-SpreparowanyWikikodStrony}}:
:: Na samym końcu funkcji jest wykonywane polecenie: {{LzLua|frame:preprocess}}, w korzystanej funkcji: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, z której korzysta {{LinkPatrz|RozwijanieZakodowanejNazwySzablonu-SpreparowanyWikikodStrony}}, jeżeli korzystanej tutaj funkcja zrzuciła niepowodzenie, to pierwsza wartość zwrótcone to: {{Code|nil}}, druga: {{Code|false}}, w przeciwnym wypadku zwraca nazwę rozwiniętego szablonu i drugą wartość zrzuconą: {{Code|true}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local __FUNKCJA5=stronicowyparser_potrzebne_modul.RozwijanieZakodowanejNazwySzablonu;
</syntaxhighlight>
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony}} ==
Ogólna funkcja do rozwijania wikikodów, w których mieszczą się wywołania szablonowe bezparametrowe, z nazwami artykułów książkowych (według funkcji: {{Code|{{sr|#m["NAZWAARTYKUŁUKSIĄŻKI"]|p=Nazwy/Tom IV}}}}) niepustych, te które należy rozwinąć, lub jeszcze bardziej, jeżeli ich format jest podobny, co ich rodzice:
; Przechodząc do wywołań szablonowych w końcu zagnieżdżonych, w wikikodzie w szablonie, wtedy{{dk}} {{nobold|{{Code|czy_niezakodowana {{=}} true}}}}, i {{nobold|{{Code|czy_nie_opis {{=}} true}}}}, według funkcji{{dk}}
* {{Code|{{sr|#p.RozwijanieNiezakodowanegoSzablonu|p=Szablonowe}}}}, gdy to jest zwykła przestrzeń nazw plus przestrzeń modułów,
; W przypadku szablonów opisów i szablonów nie opisów jest za to używana funkcja:
* {{Code|{{sr|#p.RozwijanieZakodowanegoSzablonu|p=Szablonowe}}}}, bo prawie zawsze w tym przypadku mamy do czynienia z opisami.
----
: Te funkcje są wywoływane wewnątrz funkcji: {{LinkŚródtytuł|p.SpreparowanyWikikodStrony}}. Np. na stronie znajduje się wywołanie szablonowe '''spisu treści''', które w tym wikikodzie należy rozwinąć za pomocą kodowania szablonowego, by można w tak uzyskanym teście z kodami oraz tabelą kodów bazy i tabelą parametrów wykorzystać w innym elemencie w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,inkludowana,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|self}} {{LinkPatrz|self}} | _1 = Parametr obiektowy funkcji, potrzebne do tabeli błędów w funkcji najważniej, która jest wykorzystywana. Zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie:
<Syntaxhighlight lang="lua">
tekst=p:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,inkludowana,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
Gdzie zmienna: {{Code|p}} - to odpowiednia zmienna wywołaniowa modułowa nadana przez {{LzLua|require}}.
| 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _2 = Strona, a jednocześnie uchwyt do bazy danych kodów zakodowanego tekstu, o nazwie modułu do rozwinięcia i zakodowania.
| 3 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _3 = Nazwa strony szablonowa, w postaci wywołaniowej szablonów.
| 4 = {{Code|inkludowana}} {{LinkPatrz|inkludowana}} | _4 = Zmienna, czy strona ma być interpretowana jako inkludowana.
| 5 = Zmienne funkcyjne: | nagłówek5 = tak
| 6 = {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA-RekurencyjnyZakodowanoSpreparowanyWikikodStrony}} | _6 = Funkcja generująca zawartość, może być zmodyfikowana, na podstawie pełnej nazwy strony, używana w funkcji: jest to {{Code|__FUNKCJA3}} w: {{Code|{{sr|#FunkcjaIterajacaRozwijanegoSzablonu|p=Szablonowe}}}} {{Patrz|__FUNKCJA-FunkcjaIterajacaRozwijanegoSzablonu}}.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
if((czy_niekodowane)and(__FUNKCJA))then
local wynik=__FUNKCJA(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow);
if(wynik)then
return wynik;
end;
end;
</syntaxhighlight>
| 7 = {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2-RekurencyjnyZakodowanoSpreparowanyWikikodStrony}} | _7 = Funkcja do generowania zawartości, może być zmodyfikowana, według podanej jej wartości, używana w: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}} {{Patrz|FUNKCJA2-KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, w postaci zmodyfikowanej, czyli w wersji: {{Code|__FUNKCJA2}},
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
szablon=__FUNKCJA2 and __FUNKCJA2(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon;
</syntaxhighlight>
| 8 = Inne zmienne funkcyjne: | nagłówek8 = tak
| 9 = {{Code|__FUNKCJA_ANALIZA_SPISOWA}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISOWA}} | _9 = Inne operacje wykonywane na pobranym tekście.
{{PobierzŚródtekst|uchwyt=__FUNKCJA_ANALIZA_SPISOWA}}
| 10 = {{Code|__FUNKCJA_PARAMETRY}} {{LinkPatrz|__FUNKCJA_PARAMETRY}} | _10 = Funkcja użyta do generowania tablicy bazy kodów.
{{PobierzŚródtekst|uchwyt=__FUNKCJA_PARAMETRY}}
}}
Funkcje {{Code|__FUNKCJA_ANALIZA_SPISOWA}} i {{Code|__FUNKCJA_PARAMETRY}}, zostały już opisane w tym module, więc wystarczy opisać inne.
{{Hr}}
* Funkcja {{Code|__FUNKCJA}} {{LinkPatrz|__FUNKCJA-RekurencyjnyZakodowanoSpreparowanyWikikodStrony}} ma definicję:
<syntaxhighlight lang="lua">
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow)
... ---- ciało funkcji;
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|pelna_nazwa_szablonu}} | _1 = Pełna nazwa szablonu.
| 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Tabela parametrów wywołania szablonu do rozwinięcia.
| 3 = {{Code|tabela_modyfikatorow}} | _3 = Tabela modyfikatorów danego wywołania szablonowego.
}}
{{Hr}}
* Funkcja {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2-RekurencyjnyZakodowanoSpreparowanyWikikodStrony}} ma definicję:
<syntaxhighlight lang="lua">
local __FUNKCJA2=function(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
... ---- ciało funkcji;
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Zawartość elementu wikikodu według {{Code|{{m|Szablonowe}}}}.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Nazwa obiektu szablonowego, jak: {{Code|SZABLON}}.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = Numer obiektu, typu: {{Code|obiekt}} {{LinkPatrz|obiekt}}.
| 4 = {{Code|tekst}} | _4 = Tekst całego artykułu.
| 5 = {{Code|numer_szablonu}} {{Patrz|numer_szablonu}} | _5 = Tabela numerów dla różnych obiektów w jednej tabeli.
| 6 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _6 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 7 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _7 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
}}
== {{Śródtytuł|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony}}{{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony}} ==
Funkcja służy do ściągania zawartości stron z zawartością, a jeżeli zawartości nie ma, to ona zwraca wartość {{Code|nil}}.
Posiada własną walidacje nazwy stron, czy ona jest prawidłowa. Funkcja pseudoszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe według ściśle określonych sposobów.
Funkcja odpowiednio operuje na znacznikach wbudowanych w '''mechanizm {{NS|l=tak|k=mw|w=tak}}''', tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znaczniki typu: {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
| 1 = Zmienne obiektowe: | nagłówek1 = tak
| 2 = {{Code|self}} {{Patrz|self}} | _2 = Zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie:
<Syntaxhighlight lang="lua">
tekst=p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
Gdzie zmienna: {{Code|p}} - to odpowiednia zmienna wywołaniowa modułowa nadana przez {{LzLua|require}}.
| 3 = Zwykłe zmienne: | nagłówek3 = tak
| 4 = {{Code|nazwa_strony}} {{Patrz|nazwa_strony}} | _4 = Nazwa strony, której liczymy zawartość, używając funkcji: {{LzLua|mw.title.makeTitle}}, strona może nie istnieć.
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local nazwa_strony_z_kodami_html=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](nazwa_strony);
...
local czy_istnieje;
local techniczne_modul=require("Module:Techniczne");
uchwyt_strony,tekst_artykulu,czy_istnieje = techniczne_modul.CzyStronaIstniejeJejParametry(nazwa_strony_z_kodami_html,true);
</syntaxhighlight>
| 5 = {{Code|nazwa_strony2}} {{Patrz|nazwa_strony2}} | _5 = Uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, według ustalanej w funkcji: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej, przeciwnie brana jest nazwa: {{Code|nazwa_strony}}, jako uchwyt.
<syntaxhighlight lang="lua">
if(not szablon_nie_opis)then
if(not dokumentacja)then
local szablonowe_modul=require("Module:Szablonowe");
tekst_artykulu=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst_artykulu,nazwa_strony2 or nazwa_strony,nil,nil,nil,nil,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
| 6 = {{Code|czy_noinclude}} {{Patrz|czy_noinclude}} | _6 = Jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka.
| 7 = Zmienne tablicowe: | nagłówek7 = tak
| 8 = {{Code|szablony_magiczne}} {{Patrz|szablony_magiczne}} | _8 = Tablica zmiennych i ich wartości, zawartych elementów na stronie, w której są zawarte pseudoszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej.
| 9 = Inne zmienne: | nagłówek9 = tak
| 10 = {{Code|dokumentacja}} {{Patrz|dokumentacja}} | _10 = Określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}}.
| 11 = {{Code|czy_szablon}} {{Patrz|czy_szablon}} | _11 = Gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to ona, która zamiast tego modyfikuje tekst, jeśli: {{Code|czy_szablon}}, jest funkcją, w postaci wywołania:
<syntaxhighlight lang="lua">
tekst_artykulu=czy_szablon(tekst_artykulu,czy_noinclude);
</syntaxhighlight>
| 12 = {{Code|nazwa_modulu_szablonu_opisu}} {{Patrz|nazwa_modulu_szablonu_opisu}} | _12 = Zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami '''{{lpg|HTML}}''' na znaki.
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
nazwa_strony_bez_kodow_html=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](nazwa_strony);
...
local tabela_nazw={};
if(szablony_magiczne)then
local nazwy_modul=require("Module:Nazwy");
szablony_magiczne["{{ROOTPAGENAME}}"]=szablony_magiczne["{{ROOTPAGENAME}}"] or nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modulu_szablonu_opisu or nazwa_strony_bez_kodow_html,tabela_nazw);
</syntaxhighlight>
| 13 = {{Code|szablon_nie_opis}} {{Patrz|szablon_nie_opis}} | _13 = Zmienna wskazująca, czy {{Code|nazwa strony}} {{LinkPatrz|nazwa strony}} wskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowany, używany wraz ze zmienną: {{Code|dokumentacja}} {{LinkPatrz|dokumentacja}}.
| 14 = Zmienne funkcyjne, które równie dobrze mogą przyjmować wartość {{Code|nil}}, wtedy jest przyjmowana wartość: {{Code|tekst_artykulu}} {{Patrz|tekst_artykulu}}, jeżeli one mają wartość funkcyjną, te funkcje też mogą zwracać tą wartość, w takim przypadku brana jest ta wartość, którą pierwotnie chcieliśmy przekształcać, w innym wypadku zwracana jest przetransformowana wartość operowana, zatem:| nagłówek14 = tak
| 15 = {{Code|__FUNKCJA_ANALIZA_SPISOWA}} {{Patrz|__FUNKCJA_ANALIZA_SPISOWA}} | _15 = Operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} {{LinkPatrz|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}} {{LinkPatrz|__FUNKCJA_KONTROLNE}}.
{{PobierzŚródtekst|uchwyt=__FUNKCJA_ANALIZA_SPISOWA}}
| 16 = {{Code|__FUNKCJA_KOMENTARZE}} {{Patrz|__FUNKCJA_KOMENTARZE}} | _16 = Funkcja operująca na komentarzach, przeciwnie jest używana funkcja: {{Code|{{sr|#p.UsuwanieKomentarzowe|p=Techniczne}}}}, gdzie:
<syntaxhighlight lang="lua">
local techniczne_modul=require("Module:Techniczne");
tekst_artykulu=__FUNKCJA_KOMENTARZE
and (__FUNKCJA_KOMENTARZE(tekst_artykulu))
or techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu);
</syntaxhighlight>
| 17 = {{Code|__FUNKCJA_KONTROLNE}} {{Patrz|__FUNKCJA_KONTROLNE}} | _17 = Funkcja usuwająca znaki kontrolne z tekstu takie jak: {{Code|<nowiki>%c</nowiki>}}, lub jemu podobne, np. znaki składające się z wielu bajtów.
{{P|Przykład wywołania;}}
<syntaxhighlight lang="lua">
tekst_artykulu=__FUNKCJA_KONTROLNE and __FUNKCJA_KONTROLNE(tekst_artykulu) or tekst_artykulu;
</syntaxhighlight>
| 18 = {{Code|__FUNKCJA_PARAMETRY}} {{Patrz|__FUNKCJA_PARAMETRY}} | _18 = Funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_analizy_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}, czyli w: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}} {{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}.
{{PobierzŚródtekst|uchwyt=__FUNKCJA_PARAMETRY}}
}}
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
{{Hr}}
Funkcja: {{Code|__FUNKCJA_ANALIZA_SPISOWA}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISOWA}}, operuje kodem na podstawie podanych parametrów, jego przykładowy ogólny kod:
<syntaxhighlight lang="lua">
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
....
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst_artykulu}} {{LinkPatrz|tekst_artykulu}} | _1 = Tekst do analizy, jak w funkcji nadrzędnej.
| 2 = {{Code|nazwa_modulu_szablonu_opisu}} {{LinkPatrz|nazwa_modulu_szablonu_opisu}} | _2 = Nazwa strony potrzebna do ustalania wartości nazw do tworzenia dalszego zmiennej {{Code|szablony_magiczne}}, w przeciwnym wypadku brana jest wartość: {{Code|nazwa_strony_bez_kodow_html}} {{LinkPatrz|nazwa_strony_bez_kodow_html}}.
| 3 = {{Code|nazwa_strony_bez_kodow_html}} {{Patrz|nazwa_strony_bez_kodow_html}} | _3 = Jest to nazwa strony: {{Code|nazwa_strony}} {{LinkPatrz|nazwa_strony}}, tylko z kodami '''{{lpg|HTML}}''' zamienionymi na ich odpowiedniki znakowe.
| 4 = {{Code|szablony_magiczne}} {{LinkPatrz|szablony_magiczne}} | _4 = Tabela pseudoszablonów z ich wartościami ustalonymi, jak powyżej.
| 5 = {{Code|tabela_nazw}} {{Patrz|tabela_nazw}} | _5 = Tabela nazw obsługiwane przez funkcje nazw według: {{Code|{{ld2|Nazwy}}}}, używana też do ustalania zmiennej: {{Code|szablony_magiczne}} {{LinkPatrz|szablony_magiczne}}, wewnątrz tej funkcji nadrzędnej.
}}
{{Hr}}
Funkcja: {{Code|__FUNKCJA_KOMENTARZE}} {{LinkPatrz|__FUNKCJA_KOMENTARZE}}, ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja: {{Code|__FUNKCJA_PARAMETRY}} {{LinkPatrz|__FUNKCJA_PARAMETRY}}, ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica: {{Code|tablica_analizy_obiektow_strony_dany_modul[obiekt]}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul[obiekt]}}, uzyskana z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jest tablicą zawsze pustą, do niej dla każdego obiektu: {{Code|obiekt}} {{LinkPatrz|obiekt}}, przywiązana jest tablica, którą zapełniamy elementami, modyfikującego tablicę: {{Code|tablica}}. W funkcji zwracanej przez: {{Code|__FUNKCJA_PARAMETRY}} {{LinkPatrz|__FUNKCJA_PARAMETRY}}, też modyfikujemy ją. Jak piszemy {{Code|tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z niej, oto przykład:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_analizy_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
A dokładnie, podczas tych podstawień w tablicę i jej zmiany, wykonywany był kod metatabelki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}:
<syntaxhighlight lang="lua">
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
</syntaxhighlight>
A {{Code|__metatablica}} {{Patrz|__metatablica}}, to metatabelka, a {{Code|__FUNKCJA}} jest to funkcja zwracana przez: {{Code|__FUNKCJA_PARAMETRY}} {{LinkPatrz|__FUNKCJA_PARAMETRY}}.
=== Kolejność wywoływania elementów funkcji ===
Ten rozdział zawiera kolejność wywołań poszczególnych kroków w funkcji.
==== Poprawność pewnych nazw ====
* Sprawdzana jest, czy strona składa się z samych znaków odstępów lub dolnych myślników,
* Wywoływana jest funkcja: {{Code|{{sr|#p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]|p=Html}}}}, która z: {{Code|nazwa_strony}} {{LinkPatrz|nazwa_strony}}, liczy: {{Code|nazwa_strony_bez_kodow_html}} {{LinkPatrz|nazwa_strony_bez_kodow_html}},
* Sprawdzana jest poprawność nazwy według: {{Code|{{sr|#p.CzyNiepoprawnaNazwa|p=Pudełko/Tom I}}}}, ze zmiennej: {{Code|nazwa_strony_bez_kodow_html}} {{LinkPatrz|nazwa_strony_bez_kodow_html}}, a jeżeli ona zawiera błędy, wtedy są zapisywane błędy w tabeli błędów i zwracana jest wartość {{Code|nil}}, te błędy mogą być wykorzystane przez moduł: {{Code|{{ld2|StronicowyParser/Kategorie}}}}.
==== Parametry uzyskanej strony ====
* Uzyskujemy: {{Code|nazwa_strony_z_kodami_html}}, z {{Code|nazwa_strony}}, na podstawie funkcji: {{Code|{{sr|#p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]|p=Html}}}}.
* Aby uzyskać parametry strony uruchamiamy: {{Code|{{sr|#p.CzyStronaIstniejeJejParametry|p=Techniczne}}}}, używając parametru: {{Code|nazwa_strony_z_kodami_html}}, i z niej uzyskujemy wartości w postaci osobnych zwracanych zmiennych: {{Code|uchwyt strony}} {{Patrz|uchwyt strony}}, {{Code|tekst_artykulu}} {{LinkPatrz|tekst_artykulu}} i {{Code|czy_istnieje}} {{Patrz|czy_istnieje}}, jeżeli uchwyt jest nieprawidłowy, zawartość nie istnieje lub strona nie istnieje, wtedy błędy są zapisywane w tabeli błędów.
==== Składniki preprocesora kodu mechanizmu: {{nobold|{{NS|l=tak|k=mw|w=tak}}}} ====
* Gdy {{Code|czy_szablon}} {{LinkPatrz|czy_szablon}} {{=}} {{Code|nil}}:
** Jeśli: {{Code|czy_noinclude}} {{LinkPatrz|czy_noinclude}}, przyjmuje wartość {{Code|true}}, wtedy zawartość strony nie jest inkludowana, w przeciwnym wypadku jest przeciwnie. Ze strony są usuwane pozostałości ze znaczników wbudowanych w '''mechanizm {{NS|l=tak|k=mw|w=tak}}''' i znaczników jak {{Tag|templatedata}},
* Przeciwny wypadek: wtedy: {{Code|czy_szablon}} {{LinkPatrz|czy_szablon}}, jest funkcją, wtedy wywoływana jest wtedy ona,
** W przeciwnie: żadne operacje w tym przypadku nie są robione.
==== Komentarze ====
* Usuwane są komentarze funkcją: {{Code|__FUNKCJA_KOMENTARZE}} {{LinkPatrz|__FUNKCJA_KOMENTARZE}}, a jeżeli one nie istnieją, wtedy uruchamiana jest: {{Code|{{sr|#p.UsuwanieKomentarzowe|p=Techniczne}}}}.
===== Usuwanie pseudoszablonów i niektórych instrukcji warunkowych =====
* Ustawiane są zmienne w: {{Code|szablony_magiczne}} {{LinkPatrz|szablony_magiczne}}, jeżeli nie jest ta wartość równa wartości odpowiadającej fałszywej, na podstawie tabeli: {{Code|tabela_nazw}} {{LinkPatrz|tabela_nazw}}. Do tego celu jest używana zmienna: {{Code|nazwa_modulu_szablonu_opisu}}, lub {{Code|nazwa_strony_bez_kodow_html}}.
** Usuwane są pseudoszablony, dalej jest uruchamiana funkcja: {{Code|{{sr|#p.InstrukcjeWarunkowe|p=Ramka}}}} {{Patrz|InstrukcjeWarunkowe-PobierzSpecjalniePrzygotowanyPreWikikodStrony}}, by usunąć różne instrukcje warunkowe.
==== Specjalne elementy zmieniające wikikod ====
* Uruchamiana jest, jeśli istnieje, funkcja: {{Code|__FUNKCJA_ANALIZA_SPISOWA}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISOWA}},
* Uruchamiana jest, jeśli istnieje, funkcja: {{Code|__FUNKCJA_KONTROLNE}} {{LinkPatrz|__FUNKCJA_KONTROLNE}}.
==== Kodowanie bazy danych kodów {{nobold|{{Code|{{m|Szablonowe}}}}}} ====
* Jeśli: {{Code|szablon_nie_opis}} {{LinkPatrz|szablon_nie_opis}} {{=}} {{Code|false}}, i {{Code|dokumentacja}} {{LinkPatrz|dokumentacja}} {{=}} {{Code|false}}, wtedy jest uruchamiana funkcja: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z parametrem funkcyjnym, jeśli jest, o nazwie: {{Code|__FUNKCJA_PARAMETRY}} {{LinkPatrz|__FUNKCJA_PARAMETRY}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
stxtu1gtww3tdhdbw3kxni1gk43slsf
560634
560633
2026-11-08T13:19:41Z
Persino
2851
/* {{Śródtytuł|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony}}{{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony}} */
560634
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|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.SpreparowanyWikikodStrony}}{{Code|p.SpreparowanyWikikodStrony}} ==
Funkcja ściągąjąca opisy szablonów ze strony szablonów, nie opisów, czy ze strony modułów ich opisy, a jeżeli tego opisu nie ma, to funkcja zwraca wartość {{Code|nil}}. A jeżeli tego nie ma w przypadku szablonów, to opisy z parametru {{Parametr|zawartość}} z wywołania: {{s|Dokumentacja|zawartość{{=}}...}}. Funkcja też ściąga zawartości stron szablonów, jeżeli na stronie szablonu jest szablon jego opisu, np. w postaci: {{Code|{{s|Nazwa szablonu/opis}}}}, to wtedy uzyskujemy jego zawartość w wyniku. Ma możliwości ściągania zawartości stron, jeżeli one istnieją, z innych przestrzeni nazw.
Jest to szablon ogólny do ogólnego ścigania stron z różnych przestrzeni, w takim przypadku nie ma potrzeby ściągania zawartości stron, tworząc skomplikowany algorytm dla każdego typu przestrzeni i zawartości, wystarczy ta funkcja.
Funkcja w opisach szablonów, a w niej instrukcje warunkowe podczas kodowania są rozwijane przy pomocy funkcji: {{Code|{{sr|#p.InstrukcjeWarunkowe|p=Ramka}}}}, a normalnie, gdy wewnątrz instrukcji warunkowych nie ma klamerek w funkcji, w składowej funkcji, tzn.: {{LinkPatrz|InstrukcjeWarunkowe-PobierzSpecjalniePrzygotowanyPreWikikodStrony}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SpreparowanyWikikodStrony(self,nazwa_modulu,nazwa_modulu_szablonowa,dokumentacja,inkludowana,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Funkcja korzysta bezpośrednio z funkcji: {{LinkŚródtytuł|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony}}.
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|self}} {{LinkPatrz|self}} | _1 = Parametr obiektowy funkcji, potrzebne do tabeli błędów w funkcji najważniej, która jest wykorzystywana. Zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję, np. można uruchomić poprzez, pisząc ogólnie:
<Syntaxhighlight lang="lua">
tekst=p:SpreparowanyWikikodStrony(nazwa_modulu,nazwa_modulu_szablonowa,dokumentacja,inkludowana,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
Gdzie zmienna: {{Code|p}} - to odpowiednia zmienna wywołaniowa modułowa nadana przez {{LzLua|require}}.
| 2 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _2 = Nazwa strony szablonu, modułu lub ich opisów, i stron w innych przestrzeniach nazw.
| 3 = {{Code|nazwa_modulu_szablonowa}} {{Patrz|nazwa_modulu_szablonowa}} | _3 = Nazwa modułu w wersji szablonowej, w wersji wywołaniowej.
| 4 = {{Code|dokumentacja}} {{LinkPatrz|dokumentacja}} | _4 = Przy wartości {{Code|true}}, tego parametru, wtedy funkcja nie koduje wewnętrznie przetwarzanej strony.
| 5 = {{Code|inkludowana}} {{Patrz|inkludowana}} | _5 = Przy wartości {{Code|true}}, tego parametru, wtedy strona zachowuje się jak inkludowana, przeciwny parametr do {{Code|czy_noinclude}} {{LinkPatrz|czy_noinclude}}.
| 6 = Twory funkcyjne lub przyjmowane wartości {{Code|nil}}, zatem: | nagłówek6 = tak
| 7 = {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA-SpreparowanyWikikodStrony}} | _7 = Funkcja przekształcające podany tekst, robiąc na nim pewne operacje, na samym końcu przetwarzania, po kodowaniu, jeśli istnieje, przed samym zwróceniem wyniku.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
tekst=__FUNKCJA(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,dokumentacja,czy_niezakodowana)
</syntaxhighlight>
| 8 = {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2-SpreparowanyWikikodStrony}} | _8 = Jeśli: {{Code|dokumentacja}} {{LinkPatrz|dokumentacja}} {{=}} {{Code|true}} - wtedy ta funkcja jest używana do sprawdzenia, czy dany tekst, w końcowym etapie, odkodować od postaci zakodowanej, czyli do formy dokumentacji.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
if(dokumentacja and ((not __FUNKCJA2) and true or __FUNKCJA2(tekst_artykulu_caly,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul)))then
</syntaxhighlight>
| 9 = {{Code|__FUNKCJA3}} {{Patrz|__FUNKCJA3-SpreparowanyWikikodStrony}} | _9 = Funkcja uzyskująca tablicę danych parametrów rozkładania tworów szablonowych w {{Code|{{m|Szablonowe}}}}, czyli: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
local tablica_danych_parametrow_szablonu_strony=__FUNKCJA3 and __FUNKCJA3(nazwa_modulu,nazwa_modulu_szablonowa) or nil;
</syntaxhighlight>
| 10 = Funkcje używane w funkcji, potrzebne do konstrukcji funkcji przyjmowanych w: {{Code|{{sr|#p["UstalanieNazwyWywołania"]|p=Szablonowe}}}} {{Patrz|UstalanieNazwyWywołania}}: | nagłówek10 = tak
| 11 = {{Code|__FUNKCJA4}} {{Patrz|__FUNKCJA4-SpreparowanyWikikodStrony}} | _11 = Funkcja, np. dekodująca nazwę szablonu.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
if(__FUNKCJA4)then
nazwa_szablonu,powodzenie__FUNKCJA4(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
</syntaxhighlight>
| 12 = {{Code|__FUNKCJA5}} {{Patrz|__FUNKCJA5-SpreparowanyWikikodStrony}} | _12 = Funkcja, np. rozwijająca nazwę szablonu.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
nazwa_szablonu=__FUNKCJA5 and __FUNKCJA5(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nazwa_szablonu;
</syntaxhighlight>
| 13 = Inne: | nagłówek13 = tak
| 14 = {{Code|__FUNKCJA_ANALIZA_SPISOWA}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISOWA}} | _14 = Funkcja do modyfikacji tekstu pobranego ze strony.
{{Śródtekst|uchwyt=__FUNKCJA_ANALIZA_SPISOWA|tekst=
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
tekst_artykulu=__FUNKCJA_ANALIZA_SPISOWA and __FUNKCJA_ANALIZA_SPISOWA(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw) or tekst_artykulu;
</syntaxhighlight>
}}
| 15 = {{Code|__FUNKCJA_PARAMETRY}} {{LinkPatrz|__FUNKCJA_PARAMETRY}} | _15 = Funkcje do generowania tablicy bazy kodów.
{{Śródtekst|uchwyt=__FUNKCJA_PARAMETRY|tekst=
{{P|Przykład definicji:}}
<syntaxhighlight lang="lua">
function __FUNKCJA_PARAMETRY(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_element_juz_istnieje)
...
end;
end;
</syntaxhighlight>
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
local __FUNKCJA=__FUNKCJA_PARAMETRY(obiekt);
...
__FUNKCJA(tablica,klucz,wartosc_tablicy,false);
</syntaxhighlight>
}}
}}
Definicje funkcji: {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA-UstalanieNazwyWywołania}} i {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2-UstalanieNazwyWywołania}}, które są potrzebne do konstrukcji wywołania funkcji: {{LinkPatrz|UstalanieNazwyWywołania}}, uzyskiwania nazwy szablonu i jego modyfikatorów, względem tej funkcji w nagłówku ze zmiennymi: {{Code|__FUNKCJA4}} {{LinkPatrz|__FUNKCJA4-SpreparowanyWikikodStrony}} i {{Code|__FUNKCJA5}} {{LinkPatrz|__FUNKCJA5-SpreparowanyWikikodStrony}}, definicje tych funkcji:
* {{Code|__FUNKCJA}} {{LinkPatrz|__FUNKCJA-UstalanieNazwyWywołania}}:
<syntaxhighlight lang="lua">
local __FUNKCJA=function(nazwa_szablonu)
if(__FUNKCJA4)then
return __FUNKCJA4(nazwa_szablonu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony--[[,czy_uwzgledniac_modyfikatory]]);
end;
end;
</syntaxhighlight>
* {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2-UstalanieNazwyWywołania}}:
<syntaxhighlight lang="lua">
local __FUNKCJA2=function(nazwa_szablonu,tabela_modyfikatorow)
return __FUNKCJA5 and __FUNKCJA5(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nazwa_szablonu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA}} {{LinkPatrz|__FUNKCJA-SpreparowanyWikikodStrony}} ma definicję:
<syntaxhighlight lang="lua">
local __FUNKCJA=function(tekst,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,dokumentacja,czy_nie_opis)
... ---- ciało funkcji;
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst}} | _1 = Przetwarzany tekst.
| 2 = {{Code|nazwa_modulu}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu}}.
| 3 = {{Code|nazwa_modulu_szablonowa}} | _3 = Jak w: {{LinkPatrz|nazwa_modulu_szablonowa}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica danych bazy kodów zakodowanego tekstu.
| 5 = {{Code|dokumentacja}} | _5 = Jak w: {{LinkPatrz|dokumentacja}}.
| 6 = {{Code|czy_nie_opis}} {{Patrz|czy_nie_opis}} | _6 = Czy to nie jest opis szablonu, czy modułu, wtedy ta zmienna powinna przyjmować wartość {{Code|true}}, w przeciwnym razie {{Code|false}}.
}}
Przykłady użycia:
<syntaxhighlight lang="lua">
tekst_artykulu_caly=__FUNKCJA and __FUNKCJA(tekst_artykulu_caly,nazwa_modulu,nil,dokumentacja,true) or tekst_artykulu_caly;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2-SpreparowanyWikikodStrony}} ma definicję:
<syntaxhighlight lang="lua">
local __FUNKCJA2=function(tekst_artykulu_caly,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul)
... --- ciało funkcji;
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst_artykulu_caly}} {{Patrz|tekst_artykulu_caly}} | _1 = Przetwarzany tekst.
| 2 = {{Code|nazwa_modulu}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu}}.
| 3 = {{Code|nazwa_modulu_szablonowa}} | _3 = Jak w: {{LinkPatrz|nazwa_modulu_szablonowa}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
}}
Przykłady użycia:
<syntaxhighlight lang="lua">
if(dokumentacja and ((not __FUNKCJA2) and true or __FUNKCJA2(tekst_artykulu_caly,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul)))then
tekst_artykulu_caly=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst_artykulu_caly,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA3}} {{LinkPatrz|__FUNKCJA3-SpreparowanyWikikodStrony}} ma definicję:
<syntaxhighlight lang="lua">
local __FUNKCJA3=function(nazwa_modulu,nazwa_modulu_szablonowa)
... ---- ciało funkcji;
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|nazwa_modulu}} | _1 = Jak w: {{LinkPatrz|nazwa_modulu}}.
| 2 = {{Code|nazwa_modulu_szablonowa}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_szablonowa}}.
}}
Przykłady użycia:
<syntaxhighlight lang="lua">
local tablica_danych_parametrow_szablonu_strony=__FUNKCJA3 and __FUNKCJA3(nazwa_modulu) or nil;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA4}} {{LinkPatrz|__FUNKCJA4-SpreparowanyWikikodStrony}} ma np. definicję:
<syntaxhighlight lang="lua">
local __FUNKCJA4=function(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony--[[,czy_uwzgledniac_modyfikatory,czy_z_kluczem]])
... --- ciało funkcji;
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _1 = Nazwa szablonu do rozwinięcia.
| 2 = {{Code|nazwa_modulu}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu}}.
| 3 = {{Code|nazwa_modulu_szablonowa}} | _3 = Jak w: {{LinkPatrz|nazwa_modulu_szablonowa}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}}. | _5 = Tabela parametrów potrzebna do szybszego działania '''{{ld|StronicowyParser|Stronicowego parsera}}'''.
| 6 = Gdy tą funkcją jest: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}} {{Patrz|DekodowanieNazwySzablonu-SpreparowanyWikikodStrony}}, te zmienne bezpośrednio w: {{Code|__FUNKCJA4}}, nie występują, ale za to występują w tej podanej szczególnej przykładowej funkcji, tzn. argumenty: | komórka6 = tak
| 7 = {{Code|czy_uwzgledniac_modyfikatory}} {{Patrz|czy_uwzgledniac_modyfikatory}} | _7 = Czy ma uwzględniać modyfikatory, pierwsza zwracana zmienna jest: {{Code|nil}}, a druga: {{Code|false}}.
| 8 = {{Code|czy_z_kluczem}} {{Patrz|czy_z_kluczem}} | _8 = Czy klucze, o wzorze: {{Code|<nowiki>^klucz$</nowiki>}}, lub {{Code|<nowiki>^klucz[1-9]%d*$</nowiki>}}.
}}
Jeżeli w funkcji {{LinkPatrz|DekodowanieNazwySzablonu-SpreparowanyWikikodStrony}} nie wykryto kodów, to ona zwraca wartość pierwszą: {{Code|nil}}, drugą: {{Code|true}}. Na samym końcu funkcji jest wykonywane polecenie: {{Code|frame:preprocess}} w przeciwnym wypadku zwracane jest nazwa szablonu i wartość {{Code|true}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local __FUNKCJA4=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA5}} {{LinkPatrz|__FUNKCJA5-SpreparowanyWikikodStrony}} ma np. definicję:
<syntaxhighlight lang="lua">
local=__FUNKCJA5=function(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
... ---- ciało funkcji;
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|nazwa_szablonu}} | _1 = Jak w: {{LinkPatrz|nazwa_szablonu}}. To jest nazwa szablonu do rozwinicia po rozwinięciu przez funkcję: {{Code|__FUNKCJA4}}.
| 2 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} | _2 = Tabela modyfikatorów uzyskana podczas rozkładu na modyfikatory i nazwę szablonu, jeżeli funkcja ma modyfikatory warunkowe, czy jest szablonem, to jest zwracana wartość pierwsza: {{Code|nil}}, druga: {{Code|false}}, w przypadku: {{LinkPatrz|RozwijanieZakodowanejNazwySzablonu-SpreparowanyWikikodStrony}}.
| 3 = {{Code|nazwa_modulu}} | _3 = Jak w: {{LinkPatrz|nazwa_modulu}}.
| 4 = {{Code|nazwa_modulu_szablonowa}} | _4 = Jak w: {{LinkPatrz|nazwa_modulu_szablonowa}}.
| 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
}}
: Gdy tą funkcją jest: {{Code|{{sr|#p.RozwijanieZakodowanejNazwySzablonu|p=StronicowyParser/Potrzebne}}}} {{Patrz|RozwijanieZakodowanejNazwySzablonu-SpreparowanyWikikodStrony}}:
:: Na samym końcu funkcji jest wykonywane polecenie: {{LzLua|frame:preprocess}}, w korzystanej funkcji: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, z której korzysta {{LinkPatrz|RozwijanieZakodowanejNazwySzablonu-SpreparowanyWikikodStrony}}, jeżeli korzystanej tutaj funkcja zrzuciła niepowodzenie, to pierwsza wartość zwrótcone to: {{Code|nil}}, druga: {{Code|false}}, w przeciwnym wypadku zwraca nazwę rozwiniętego szablonu i drugą wartość zrzuconą: {{Code|true}}.
Przykłady użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local __FUNKCJA5=stronicowyparser_potrzebne_modul.RozwijanieZakodowanejNazwySzablonu;
</syntaxhighlight>
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony}} ==
Ogólna funkcja do rozwijania wikikodów, w których mieszczą się wywołania szablonowe bezparametrowe, z nazwami artykułów książkowych (według funkcji: {{Code|{{sr|#m["NAZWAARTYKUŁUKSIĄŻKI"]|p=Nazwy/Tom IV}}}}) niepustych, te które należy rozwinąć, lub jeszcze bardziej, jeżeli ich format jest podobny, co ich rodzice:
; Przechodząc do wywołań szablonowych w końcu zagnieżdżonych, w wikikodzie w szablonie, wtedy{{dk}} {{nobold|{{Code|czy_niezakodowana {{=}} true}}}}, i {{nobold|{{Code|czy_nie_opis {{=}} true}}}}, według funkcji{{dk}}
* {{Code|{{sr|#p.RozwijanieNiezakodowanegoSzablonu|p=Szablonowe}}}}, gdy to jest zwykła przestrzeń nazw plus przestrzeń modułów,
; W przypadku szablonów opisów i szablonów nie opisów jest za to używana funkcja:
* {{Code|{{sr|#p.RozwijanieZakodowanegoSzablonu|p=Szablonowe}}}}, bo prawie zawsze w tym przypadku mamy do czynienia z opisami.
----
: Te funkcje są wywoływane wewnątrz funkcji: {{LinkŚródtytuł|p.SpreparowanyWikikodStrony}}. Np. na stronie znajduje się wywołanie szablonowe '''spisu treści''', które w tym wikikodzie należy rozwinąć za pomocą kodowania szablonowego, by można w tak uzyskanym teście z kodami oraz tabelą kodów bazy i tabelą parametrów wykorzystać w innym elemencie w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,inkludowana,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|self}} {{LinkPatrz|self}} | _1 = Parametr obiektowy funkcji, potrzebne do tabeli błędów w funkcji najważniej, która jest wykorzystywana. Zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie:
<Syntaxhighlight lang="lua">
tekst=p:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,inkludowana,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
Gdzie zmienna: {{Code|p}} - to odpowiednia zmienna wywołaniowa modułowa nadana przez {{LzLua|require}}.
| 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _2 = Strona, a jednocześnie uchwyt do bazy danych kodów zakodowanego tekstu, o nazwie modułu do rozwinięcia i zakodowania.
| 3 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _3 = Nazwa strony szablonowa, w postaci wywołaniowej szablonów.
| 4 = {{Code|inkludowana}} {{LinkPatrz|inkludowana}} | _4 = Zmienna, czy strona ma być interpretowana jako inkludowana.
| 5 = Zmienne funkcyjne: | nagłówek5 = tak
| 6 = {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA-RekurencyjnyZakodowanoSpreparowanyWikikodStrony}} | _6 = Funkcja generująca zawartość, może być zmodyfikowana, na podstawie pełnej nazwy strony, używana w funkcji: jest to {{Code|__FUNKCJA3}} w: {{Code|{{sr|#FunkcjaIterajacaRozwijanegoSzablonu|p=Szablonowe}}}} {{Patrz|__FUNKCJA-FunkcjaIterajacaRozwijanegoSzablonu}}.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
if((czy_niekodowane)and(__FUNKCJA))then
local wynik=__FUNKCJA(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow);
if(wynik)then
return wynik;
end;
end;
</syntaxhighlight>
| 7 = {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2-RekurencyjnyZakodowanoSpreparowanyWikikodStrony}} | _7 = Funkcja do generowania zawartości, może być zmodyfikowana, według podanej jej wartości, używana w: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}} {{Patrz|FUNKCJA2-KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, w postaci zmodyfikowanej, czyli w wersji: {{Code|__FUNKCJA2}},
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
szablon=__FUNKCJA2 and __FUNKCJA2(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon;
</syntaxhighlight>
| 8 = Inne zmienne funkcyjne: | nagłówek8 = tak
| 9 = {{Code|__FUNKCJA_ANALIZA_SPISOWA}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISOWA}} | _9 = Inne operacje wykonywane na pobranym tekście.
{{PobierzŚródtekst|uchwyt=__FUNKCJA_ANALIZA_SPISOWA}}
| 10 = {{Code|__FUNKCJA_PARAMETRY}} {{LinkPatrz|__FUNKCJA_PARAMETRY}} | _10 = Funkcja użyta do generowania tablicy bazy kodów.
{{PobierzŚródtekst|uchwyt=__FUNKCJA_PARAMETRY}}
}}
Funkcje {{Code|__FUNKCJA_ANALIZA_SPISOWA}} i {{Code|__FUNKCJA_PARAMETRY}}, zostały już opisane w tym module, więc wystarczy opisać inne.
{{Hr}}
* Funkcja {{Code|__FUNKCJA}} {{LinkPatrz|__FUNKCJA-RekurencyjnyZakodowanoSpreparowanyWikikodStrony}} ma definicję:
<syntaxhighlight lang="lua">
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow)
... ---- ciało funkcji;
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|pelna_nazwa_szablonu}} | _1 = Pełna nazwa szablonu.
| 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Tabela parametrów wywołania szablonu do rozwinięcia.
| 3 = {{Code|tabela_modyfikatorow}} | _3 = Tabela modyfikatorów danego wywołania szablonowego.
}}
{{Hr}}
* Funkcja {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2-RekurencyjnyZakodowanoSpreparowanyWikikodStrony}} ma definicję:
<syntaxhighlight lang="lua">
local __FUNKCJA2=function(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
... ---- ciało funkcji;
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Zawartość elementu wikikodu według {{Code|{{m|Szablonowe}}}}.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Nazwa obiektu szablonowego, jak: {{Code|SZABLON}}.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = Numer obiektu, typu: {{Code|obiekt}} {{LinkPatrz|obiekt}}.
| 4 = {{Code|tekst}} | _4 = Tekst całego artykułu.
| 5 = {{Code|numer_szablonu}} {{Patrz|numer_szablonu}} | _5 = Tabela numerów dla różnych obiektów w jednej tabeli.
| 6 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _6 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 7 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _7 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
}}
== {{Śródtytuł|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony}}{{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony}} ==
Funkcja służy do ściągania zawartości stron z zawartością, a jeżeli zawartości nie ma, to ona zwraca wartość {{Code|nil}}.
Posiada własną walidacje nazwy stron, czy ona jest prawidłowa. Funkcja pseudoszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe według ściśle określonych sposobów.
Funkcja odpowiednio operuje na znacznikach wbudowanych w '''mechanizm {{NS|l=tak|k=mw|w=tak}}''', tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znaczniki typu: {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{nobold|{{Code|nil}}}}:
| 1 = Zmienne obiektowe: | nagłówek1 = tak
| 2 = {{Code|self}} {{Patrz|self}} | _2 = Zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie:
<Syntaxhighlight lang="lua">
tekst=p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
Gdzie zmienna: {{Code|p}} - to odpowiednia zmienna wywołaniowa modułowa nadana przez {{LzLua|require}}.
| 3 = Zwykłe zmienne: | nagłówek3 = tak
| 4 = {{Code|nazwa_strony}} {{Patrz|nazwa_strony}} | _4 = Nazwa strony, której liczymy zawartość, używając funkcji: {{LzLua|mw.title.makeTitle}}, strona może nie istnieć.
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
local nazwa_strony_z_kodami_html=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](nazwa_strony);
...
local czy_istnieje;
local techniczne_modul=require("Module:Techniczne");
uchwyt_strony,tekst_artykulu,czy_istnieje = techniczne_modul.CzyStronaIstniejeJejParametry(nazwa_strony_z_kodami_html,true);
</syntaxhighlight>
| 5 = {{Code|nazwa_strony2}} {{Patrz|nazwa_strony2}} | _5 = Uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, według ustalanej w funkcji: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej, przeciwnie brana jest nazwa: {{Code|nazwa_strony}}, jako uchwyt.
<syntaxhighlight lang="lua">
if(not szablon_nie_opis)then
if(not dokumentacja)then
local szablonowe_modul=require("Module:Szablonowe");
tekst_artykulu=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst_artykulu,nazwa_strony2 or nazwa_strony,nil,nil,nil,nil,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
| 6 = {{Code|czy_noinclude}} {{Patrz|czy_noinclude}} | _6 = Jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka.
| 7 = Zmienne tablicowe: | nagłówek7 = tak
| 8 = {{Code|szablony_magiczne}} {{Patrz|szablony_magiczne}} | _8 = Tablica zmiennych i ich wartości, zawartych elementów na stronie, w której są zawarte pseudoszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej.
| 9 = Inne zmienne: | nagłówek9 = tak
| 10 = {{Code|dokumentacja}} {{Patrz|dokumentacja}} | _10 = Określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}}.
| 11 = {{Code|czy_szablon}} {{Patrz|czy_szablon}} | _11 = Gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to ona, która zamiast tego modyfikuje tekst, jeśli: {{Code|czy_szablon}}, jest funkcją, w postaci wywołania:
<syntaxhighlight lang="lua">
tekst_artykulu=czy_szablon(tekst_artykulu,czy_noinclude);
</syntaxhighlight>
| 12 = {{Code|nazwa_modulu_szablonu_opisu}} {{Patrz|nazwa_modulu_szablonu_opisu}} | _12 = Zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami '''{{lpg|HTML}}''' na znaki.
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
nazwa_strony_bez_kodow_html=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](nazwa_strony);
...
local tabela_nazw={};
if(szablony_magiczne)then
local nazwy_modul=require("Module:Nazwy");
szablony_magiczne["{{ROOTPAGENAME}}"]=szablony_magiczne["{{ROOTPAGENAME}}"] or nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modulu_szablonu_opisu or nazwa_strony_bez_kodow_html,tabela_nazw);
</syntaxhighlight>
| 13 = {{Code|szablon_nie_opis}} {{Patrz|szablon_nie_opis}} | _13 = Zmienna wskazująca, czy {{Code|nazwa strony}} {{LinkPatrz|nazwa strony}} wskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowany, używany wraz ze zmienną: {{Code|dokumentacja}} {{LinkPatrz|dokumentacja}}.
| 14 = Zmienne funkcyjne, które równie dobrze mogą przyjmować wartość {{Code|nil}}, wtedy jest przyjmowana wartość: {{Code|tekst_artykulu}} {{Patrz|tekst_artykulu}}, jeżeli one mają wartość funkcyjną, te funkcje też mogą zwracać tą wartość, w takim przypadku brana jest ta wartość, którą pierwotnie chcieliśmy przekształcać, w innym wypadku zwracana jest przetransformowana wartość operowana, zatem:| nagłówek14 = tak
| 15 = {{Code|__FUNKCJA_ANALIZA_SPISOWA}} {{Patrz|__FUNKCJA_ANALIZA_SPISOWA}} | _15 = Operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} {{LinkPatrz|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}} {{LinkPatrz|__FUNKCJA_KONTROLNE}}.
{{PobierzŚródtekst|uchwyt=__FUNKCJA_ANALIZA_SPISOWA}}
| 16 = {{Code|__FUNKCJA_KOMENTARZE}} {{Patrz|__FUNKCJA_KOMENTARZE}} | _16 = Funkcja operująca na komentarzach, przeciwnie jest używana funkcja: {{Code|{{sr|#p.UsuwanieKomentarzowe|p=Techniczne}}}}, gdzie:
<syntaxhighlight lang="lua">
local techniczne_modul=require("Module:Techniczne");
tekst_artykulu=__FUNKCJA_KOMENTARZE
and (__FUNKCJA_KOMENTARZE(tekst_artykulu))
or techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu);
</syntaxhighlight>
| 17 = {{Code|__FUNKCJA_KONTROLNE}} {{Patrz|__FUNKCJA_KONTROLNE}} | _17 = Funkcja usuwająca znaki kontrolne z tekstu takie jak: {{Code|<nowiki>%c</nowiki>}}, lub jemu podobne, np. znaki składające się z wielu bajtów.
{{P|Przykład wywołania;}}
<syntaxhighlight lang="lua">
tekst_artykulu=__FUNKCJA_KONTROLNE and __FUNKCJA_KONTROLNE(tekst_artykulu) or tekst_artykulu;
</syntaxhighlight>
| 18 = {{Code|__FUNKCJA_PARAMETRY}} {{Patrz|__FUNKCJA_PARAMETRY}} | _18 = Funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_analizy_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}, czyli w: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}} {{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}.
{{PobierzŚródtekst|uchwyt=__FUNKCJA_PARAMETRY}}
}}
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
{{Hr}}
Funkcja: {{Code|__FUNKCJA_ANALIZA_SPISOWA}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISOWA}}, operuje kodem na podstawie podanych parametrów, jego przykładowy ogólny kod:
<syntaxhighlight lang="lua">
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
....
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst_artykulu}} {{LinkPatrz|tekst_artykulu}} | _1 = Tekst do analizy, jak w funkcji nadrzędnej.
| 2 = {{Code|nazwa_modulu_szablonu_opisu}} {{LinkPatrz|nazwa_modulu_szablonu_opisu}} | _2 = Nazwa strony potrzebna do ustalania wartości nazw do tworzenia dalszego zmiennej {{Code|szablony_magiczne}}, w przeciwnym wypadku brana jest wartość: {{Code|nazwa_strony_bez_kodow_html}} {{LinkPatrz|nazwa_strony_bez_kodow_html}}.
| 3 = {{Code|nazwa_strony_bez_kodow_html}} {{Patrz|nazwa_strony_bez_kodow_html}} | _3 = Jest to nazwa strony: {{Code|nazwa_strony}} {{LinkPatrz|nazwa_strony}}, tylko z kodami '''{{lpg|HTML}}''' zamienionymi na ich odpowiedniki znakowe.
| 4 = {{Code|szablony_magiczne}} {{LinkPatrz|szablony_magiczne}} | _4 = Tabela pseudoszablonów z ich wartościami ustalonymi, jak powyżej.
| 5 = {{Code|tabela_nazw}} {{Patrz|tabela_nazw}} | _5 = Tabela nazw obsługiwane przez funkcje nazw według: {{Code|{{ld2|Nazwy}}}}, używana też do ustalania zmiennej: {{Code|szablony_magiczne}} {{LinkPatrz|szablony_magiczne}}, wewnątrz tej funkcji nadrzędnej.
}}
{{Hr}}
Funkcja: {{Code|__FUNKCJA_KOMENTARZE}} {{LinkPatrz|__FUNKCJA_KOMENTARZE}}, ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja: {{Code|__FUNKCJA_PARAMETRY}} {{LinkPatrz|__FUNKCJA_PARAMETRY}}, ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica: {{Code|tablica_analizy_obiektow_strony_dany_modul[obiekt]}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul[obiekt]}}, uzyskana z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jest tablicą zawsze pustą, do niej dla każdego obiektu: {{Code|obiekt}} {{LinkPatrz|obiekt}}, przywiązana jest tablica, którą zapełniamy elementami, modyfikującego tablicę: {{Code|tablica}}. W funkcji zwracanej przez: {{Code|__FUNKCJA_PARAMETRY}} {{LinkPatrz|__FUNKCJA_PARAMETRY}}, też modyfikujemy ją. Jak piszemy {{Code|tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z niej, oto przykład:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_analizy_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
A dokładnie, podczas tych podstawień w tablicę i jej zmiany, wykonywany był kod metatabelki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}:
<syntaxhighlight lang="lua">
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
</syntaxhighlight>
A {{Code|__metatablica}} {{Patrz|__metatablica}}, to metatabelka, a {{Code|__FUNKCJA}} jest to funkcja zwracana przez: {{Code|__FUNKCJA_PARAMETRY}} {{LinkPatrz|__FUNKCJA_PARAMETRY}}.
=== Kolejność wywoływania elementów funkcji ===
Ten rozdział zawiera kolejność wywołań poszczególnych kroków w funkcji.
==== Poprawność pewnych nazw ====
* Sprawdzana jest, czy strona składa się z samych znaków odstępów lub dolnych myślników,
* Wywoływana jest funkcja: {{Code|{{sr|#p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]|p=Html}}}}, która z: {{Code|nazwa_strony}} {{LinkPatrz|nazwa_strony}}, liczy: {{Code|nazwa_strony_bez_kodow_html}} {{LinkPatrz|nazwa_strony_bez_kodow_html}},
* Sprawdzana jest poprawność nazwy według: {{Code|{{sr|#p.CzyNiepoprawnaNazwa|p=Pudełko/Tom I}}}}, ze zmiennej: {{Code|nazwa_strony_bez_kodow_html}} {{LinkPatrz|nazwa_strony_bez_kodow_html}}, a jeżeli ona zawiera błędy, wtedy są zapisywane błędy w tabeli błędów i zwracana jest wartość {{Code|nil}}, te błędy mogą być wykorzystane przez moduł: {{Code|{{ld2|StronicowyParser/Kategorie}}}}.
==== Parametry uzyskanej strony ====
* Uzyskujemy: {{Code|nazwa_strony_z_kodami_html}}, z {{Code|nazwa_strony}}, na podstawie funkcji: {{Code|{{sr|#p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]|p=Html}}}}.
* Aby uzyskać parametry strony uruchamiamy: {{Code|{{sr|#p.CzyStronaIstniejeJejParametry|p=Techniczne}}}}, używając parametru: {{Code|nazwa_strony_z_kodami_html}}, i z niej uzyskujemy wartości w postaci osobnych zwracanych zmiennych: {{Code|uchwyt strony}} {{Patrz|uchwyt strony}}, {{Code|tekst_artykulu}} {{LinkPatrz|tekst_artykulu}} i {{Code|czy_istnieje}} {{Patrz|czy_istnieje}}, jeżeli uchwyt jest nieprawidłowy, zawartość nie istnieje lub strona nie istnieje, wtedy błędy są zapisywane w tabeli błędów.
==== Składniki preprocesora kodu mechanizmu: {{nobold|{{NS|l=tak|k=mw|w=tak}}}} ====
* Gdy {{Code|czy_szablon}} {{LinkPatrz|czy_szablon}} {{=}} {{Code|nil}}:
** Jeśli: {{Code|czy_noinclude}} {{LinkPatrz|czy_noinclude}}, przyjmuje wartość {{Code|true}}, wtedy zawartość strony nie jest inkludowana, w przeciwnym wypadku jest przeciwnie. Ze strony są usuwane pozostałości ze znaczników wbudowanych w '''mechanizm {{NS|l=tak|k=mw|w=tak}}''' i znaczników jak {{Tag|templatedata}},
* Przeciwny wypadek: wtedy: {{Code|czy_szablon}} {{LinkPatrz|czy_szablon}}, jest funkcją, wtedy wywoływana jest wtedy ona,
** W przeciwnie: żadne operacje w tym przypadku nie są robione.
==== Komentarze ====
* Usuwane są komentarze funkcją: {{Code|__FUNKCJA_KOMENTARZE}} {{LinkPatrz|__FUNKCJA_KOMENTARZE}}, a jeżeli one nie istnieją, wtedy uruchamiana jest: {{Code|{{sr|#p.UsuwanieKomentarzowe|p=Techniczne}}}}.
===== Usuwanie pseudoszablonów i niektórych instrukcji warunkowych =====
* Ustawiane są zmienne w: {{Code|szablony_magiczne}} {{LinkPatrz|szablony_magiczne}}, jeżeli nie jest ta wartość równa wartości odpowiadającej fałszywej, na podstawie tabeli: {{Code|tabela_nazw}} {{LinkPatrz|tabela_nazw}}. Do tego celu jest używana zmienna: {{Code|nazwa_modulu_szablonu_opisu}}, lub {{Code|nazwa_strony_bez_kodow_html}}.
** Usuwane są pseudoszablony, dalej jest uruchamiana funkcja: {{Code|{{sr|#p.InstrukcjeWarunkowe|p=Ramka}}}} {{Patrz|InstrukcjeWarunkowe-PobierzSpecjalniePrzygotowanyPreWikikodStrony}}, by usunąć różne instrukcje warunkowe.
==== Specjalne elementy zmieniające wikikod ====
* Uruchamiana jest, jeśli istnieje, funkcja: {{Code|__FUNKCJA_ANALIZA_SPISOWA}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISOWA}},
* Uruchamiana jest, jeśli istnieje, funkcja: {{Code|__FUNKCJA_KONTROLNE}} {{LinkPatrz|__FUNKCJA_KONTROLNE}}.
==== Kodowanie bazy danych kodów {{nobold|{{Code|{{m|Szablonowe}}}}}} ====
* Jeśli: {{Code|szablon_nie_opis}} {{LinkPatrz|szablon_nie_opis}} {{=}} {{Code|false}}, i {{Code|dokumentacja}} {{LinkPatrz|dokumentacja}} {{=}} {{Code|false}}, wtedy jest uruchamiana funkcja: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z parametrem funkcyjnym, jeśli jest, o nazwie: {{Code|__FUNKCJA_PARAMETRY}} {{LinkPatrz|__FUNKCJA_PARAMETRY}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
j35u1buj09xftuxg0jf6uutaga2lek0
Wikibooks:Moduły/StronicowyParser/SpisTreści/Tom II
4
63661
560631
560420
2026-11-08T13:01:28Z
Persino
2851
560631
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SpisTreści}}|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.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku}}{{Code|p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku}} ===
Funkcja sprawdzająca, czy na stronie z głównym spisem treści lub w innych spisach treści podanych w: {{s|Układ autonawigacji}} {{Patrz|Układ autonawigacji}}, na jednych ze stron: {{s|NawigacjaSpecjalna/Nawigacja/}} {{Patrz|NawigacjaSpecjalna/Nawigacja/}} (te ustawienia są wykorzystywane przez: {{s|Autonawigacja}} {{Patrz|Autonawigacja}}), dotyczącej danej książki, znajduje się artykuł o nazwie, z dokładnością do wielkości liter, artykuły o nazwach według tabeli: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}}}:
{{Tbl|uchwyt=p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|tekst=
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku(tabela_artykulow)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tabela_artykulow}} | _1 = Tabela wielowymiarowa rozdziałów i do nich artykułów.
}}
Kopia tej tabeli jest połączona z metatabelką: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=StronicowyParser/obiekty}}}} {{Patrz|p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter}}, przy pomocy funkcji: {{LzLua|setmetatable}}.
Iterujemy po elementach tabeli: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}, a później sprawdzamy, czy artykuł znajduje się w dozwolonych rozdziałach jako artykuły książki: {{Code|tab_lista[2]}} {{Patrz|tab_lista[2]}}, iterując po jego elementach, wtedy jednych z jego wartości, o pewnym numerze, bierzemy element: {{Code|artykul_w_bazie_element}} {{Patrz|artykul_w_bazie_element}}, według kodu:
<syntaxhighlight lang="lua">
---- Bierzemy jego pierwszy element "tab_stare", bo: "artykul_w_bazie_element", jest tabelką;
local artykul_w_bazie=artykul_w_bazie_element[1];
---- Sprawdzamy, czy element, zawiera klucz o nazwie "["LINK"]=true";
local czy_table=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie);
---- Wybieramy w zależnosci, czy to jest tabelka, czy nie bez tego: "["LINK"]=true";
artykul_w_bazie=czy_table and artykul_w_bazie[1] or artykul_w_bazie;
---- Jeżeli ten element jest tabelką i posiada: "["LINK"]=true", to zwracamy pierwszy element, a jeżeli nie to sam element;
local artykul_bez_naglowka_w_bazie=stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul_w_bazie);
</syntaxhighlight>
Powyższy kod, zawiera funkcje z: {{Code|{{ld2|StronicowyParser/Potrzebne}}}}, tzn.: {{Code|{{sr|#p.CzyTabelaStronyWoluminuSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, która sprawdza, czy element jest tabelką, i czy ma klucz: {{Code|LINK}}, wtedy zwraca wartość: {{Code|false}}, w przeciwnym wypadku, zrzuca wynik, czy to jest owo (tabelka), i {{Code|{{sr|#p.TylkoNazwaStronyWoluminuZTabeliPublikacji|p=StronicowyParser/Potrzebne}}}}, który sprawdza, czy to jest tabelka, czy posiada klucz: {{Code|LINK}}, a jeżeli tak, to zwraca pierwszy element tej tabeli, a jeżeli nie, to zwraca, to nawet, gdy by nie była tabelką, a jak jest nią, to nie posiada klucza: {{Code|LINK}}. Aby zrozumieć te funkcje, skorzystaj z definicji: {{Code|tab_stare}} {{Patrz|tab_stare}}, na stronie: {{Code|{{lr|Moduły/StronicowyParser/SpisTreści/Tom I|SpisTreści - Tom I}}}}.
Następnie sprawdzamy, czy to jest ten spis treści zagwarantowany według: {{LinkTbl|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a jeżeli tak, to funkcja zrzuca wartość: {{Code|artykul_bez_naglowka_w_bazie}} {{Patrz|artykul_bez_naglowka_w_bazie}} - jest to nazwa artykułu spisu treści o określonej nazwie bez nagłówka, a jeżeli mimo to, nie znaleziono nic, to nic nie zwraca.
=== {{Śródtytuł|p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji}}{{Code|p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji}} ===
==== Opis funkcji ====
Funkcja zrzuca wynik z jednego spisu rzeczy, którym jest strona główna książki, lub ewentualnie skojarzony z nią, spis, który jest artykuł o nazwie jednych z: {{LinkTbl|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, z dokładnością do wielkości znaków. Funkcja też sprawdza stronę z: {{s|Układ autonawigacji}}, czyli strony znajdujące się w katalogu: {{s|NawigacjaSpecjalna/Nawigacja/}}, tam sprawdza, jakie spisy do niego należą i je liczy, też sprawdza jakie artykuły do niego należą. W ten sposób mamy utworzony spis treści, który po artykułach książki możemy nawigować za pomocą odpowiednich funkcji autonawigacji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,czy_artykul_korzystany,__FUNKCJA_SPISU_RZECZY,__FUNKCJA_ZBIERANIA_DANYCH)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|self}} {{Patrz|self}} | _1 = Zmienna obiektowa funkcji.
| 2 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _2 = Kolejno jak w: '''nazwa przestrzeni nazw''', '''nazwa przestrzeni książki''' i '''nazwa książki'''.
| 3 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _3 = {{Code|true}}, gdy artykuł dany jest korzystamy, czy aktualnie korzystamy z niego za pomocą przeglądarki.
| 4 = {{Code|__FUNKCJA_SPISU_RZECZY}} {{Patrz|__FUNKCJA_SPISU_RZECZY}} | _4 =
{{Śródtekst|bez preprocess=tak|uchwyt=__FUNKCJA_SPISU_RZECZY|tekst=
Funkcja wykorzystywana w: {{Code|{{sr|#p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|p=StronicowyParser/ZbieranieDanychStron}}}}, w module: {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}}, jest to funkcja do różnych celu, w tym przypadku służy, to przypisywania, na które wskazuje przekierowanie, danych z przekierowania do strony, którym jest to właśnie przekierowanie.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
kod_sukcesu_lub_bledu=__FUNKCJA_SPISU_RZECZY(tekst_rozwiniety_calego_artykulu_ref_spis,nazwa_przestrzeni_ref_spis,nazwa_przestrzeni_ksiazki_ref_spis,nazwa_ksiazki_ref_spis,nazwa_artykulu_ref_spis,tablica_analizy_obiektow_strony_dany_modul_ref_spis,tablica_danych_parametrow_szablonu_strony_ref_spis);
</syntaxhighlight>
Ta funkcja nie zwraca niczego.
}}
| 5 = {{Code|__FUNKCJA_ZBIERANIA_DANYCH}} {{Patrz|__FUNKCJA_ZBIERANIA_DANYCH}} | _5 = {{P|Funkcja opisana w rozdziale: {{Code|{{sr|#p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy|p=StronicowyParser/SpisTreści/Tom I}}}}, w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.}}
{{PobierzŚródtekst|uchwyt=__FUNKCJA_ZBIERANIA_DANYCH|nazwa artykułu=StronicowyParser/SpisTreści/Tom I}}
}}
==== Funkcje lokalne ====
===== {{Śródtytuł|Spis}}{{Code|Spis}} =====
Funkcja służy do ustawiania poszczególnych spisów treści, jeżeli książka ma ich kilka. Ona służy jedynie do jednego spisu, a nie wszystkich razem, tylko oddzielnie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(tablista_artykulow,spis_tresci,tab_inne_spisy,nazwa_glownego_spisu,numer)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tablista_artykulow}} {{Patrz|tablista_artykulow}} | _1 = Tabela rozdziałów i do nich artykułów.
| 2 = {{Code|spis_tresci}} {{Patrz|spis_tresci}} | _2 = Jeżeli strona nie jest przekierowaniem, to jest wtedy łańcuch znakowy opisujący dany spis, a jeżeli właśnie jest, wtedy jest to tablica, coś w rodzaju {{Code|<nowiki>{przekierowanie_spisu_tresci,spis_tresci,}</nowiki>}}:
| 3 = Wyjaśnienie: | nagłówek3 = tak
| 4 = {{Code|przekierowanie_spisu_tresci}} {{Patrz|przekierowanie_spisu_tresci}} | _4 = Strona spis treści, która jest jednocześnie przekierowaniem.
| 5 = {{Code|spis_treści}} | _5 = Jak w: {{LinkPatrz|spis_tresci}}, tylko, że tylko łańcuch znakowy, na który wskazuje przekierowanie.
| 6 = Inne parametry: | nagłówek6 = tak
| 7 = {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} | _7 = Tabela innych spisów książki, jeżeli istnieją,
| 8 = {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}} | _8 = Nazwa głównego spisu treści, zwykle jest to strona główna książki.
| 9 = {{Code|numer}} {{Patrz|numer}} | _9 = Numer, który liczmy, do którego dodajemy jeden.
}}
Parametry zwracane:
<syntaxhighlight lang="lua">
return tablista_artykulow,tab_inne_spisy,numer;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów zwracanych:
| 1 = {{Code|tablista_artykulow}} | _1 = Jak w: {{LinkPatrz|tablista_artykulow}}.
| 2 = {{Code|tab_inne_spisy}} | _2 = Jak w: {{LinkPatrz|tab_inne_spisy}}.
| 3 = {{Code|numer}} | _3 = Jak w: {{LinkPatrz|numer}}.
}}
Gdy zmienna: {{Code|tablista_artykulow}} {{LinkPatrz|tablista_artykulow}}, istnieje, i ma niepustą tablicę, wtedy ta funkcja wtedy faktycznie coś robi, w przeciwnym wypadku zwraca tylko wynik.
Liczmy spis treści, na który wskazuje przekierowanie, gdy strona nie jest nim, to sama strona ze wskazania:
<syntaxhighlight lang="lua">
local czy_spis_tresci_table=parametry_modul.TypeTable(spis_tresci);
local spis_tresci_strona=czy_spis_tresci_table and spis_tresci[1] or spis_tresci;
</syntaxhighlight>
Zmienna: {{Code|spis_tresci_strona}}, to jest nic innego, jak: {{Code|przekierowanie_spisu_tresci}} {{LinkPatrz|przekierowanie_spisu_tresci}}, lub tylko jest łańcuchem znakowym, według: {{Code|spis_tresci}} {{LinkPatrz|spis_tresci}}.
Policzmy zmienną: {{Code|tab_element}} {{Patrz|tab_element}}:
<syntaxhighlight lang="lua">
local tab_element={[1]={((not spis_tresci) and "Główny spis treści" or ("Spis treści - "..spis_tresci_strona)),{((spis_tresci) and 1 or nil),nil,nil,},["spis"]={spis_tresci_strona or nazwa_glownego_spisu or "",numer}},[2]=nil,[3]=nil,};
</syntaxhighlight>
Jeżeli pierwszy rozdział danego spisu nie ma numeracji, tzn. wtedy liczymy element: {{Code|tablista_artykulow[1][1][2][1]}}, to wtedy jego pozycje artykularne: {{Code|numer > 1}}, zapisujemy na sam koniec w tablicy: {{Code|tab_element}} {{LinkPatrz|tab_element}}. Następnie usuwamy pierwszy rozdział z artykułami przy pomocy funkcji: {{LzLua|table.remove}}.
Poziomy rozdziałów powiększamy o jeden aż do napotkania pierwszego rozdziału centrowanego, wtedy przerywamy pętle.
Następnym podejściem jest dodanie przed pierwszą pozycją elementu: {{Code|tab_element}} {{LinkPatrz|tab_element}}, do tablicy: {{Code|tablista_artykulow}} {{LinkPatrz|tablista_artykulow}}}, przy pomocy funkcji: {{LzLua|table.insert}}.
Jeżeli spis treści: {{Code|spis_tresci}} {{LinkPatrz|spis_tresci}}, istnieje, wtedy robimy dalsze operacje. Jeżeli tablica: {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, nie istnieje, to ją tworzymy, wtedy {{Code|spis_tresci}} {{LinkPatrz|spis_tresci}}, przy pomocy: {{LzLua|table.insert}}, dodajemy do: {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}. Następnie, jeżeli nie istnieje element: {{Code|tablista_artykulow[1][2]}} {{Patrz|tablista_artykulow[1][2]}}, związany artykułami należącymi do rozdziału, to go tworzymy, wtedy tworzymy element: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, w postaci:
<syntaxhighlight lang="lua">
local tab_stare={czy_spis_tresci_table and {spis_tresci_strona,nil,przekierowanie_strona} or spis_tresci,{0,"","",true,},"[[:"..pelna_nazwa_ksiazki.."/" ..spis_tresci_strona.."]]",false,};
</syntaxhighlight>
To: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, jest opisane w module: {{lr|Moduły/StronicowyParser/SpisTreści/Tom I|Spis treści - Tom I}}.
To dodajemy na pierwszą pozycję do zbioru artykułów, do elementu: {{LinkPatrz|tablista_artykulow[1][2]}}, na pierwszą pozycję, przy pomocy funkcji: {{LzLua|table.insert}}.
Następnym krokiem jest zwracanie przez funkcję zmiennych powyżej powiedzianych.
===== {{Śródtytuł|InneSpisy}}{{Code|InneSpisy}} =====
Funkcja służy do uzyskiwania elementów danego spisu, ustawiania go odpowiedniego i wstawianie go do ogólnego spisu opisujące wszystkie spisy w danej książce.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneSpisy(tablista_artykulow,tab_inne_spisy,spis_tresci,numer)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tablista_artykulow}} | _1 = Jak w: {{LinkPatrz|tablista_artykulow}}.
| 2 = {{Code|tab_inne_spisy}} | _2 = Jak w: {{LinkPatrz|tab_inne_spisy}}.
| 3 = {{Code|spis_tresci}} | _3 = Jak w: {{LinkPatrz|spis_tresci}}.
| 4 = {{Code|numer}} | _4 = Jak w: {{LinkPatrz|numer}}.
}}
Uzyskujemy elementy spisu z wywołania dla pojedynczego spisu treści:
<syntaxhighlight lang="lua">
local tablista_artykulow_iter,tablica_licencji,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,spis_tresci,false,nil,__FUNKCJA_ZBIERANIA_DANYCH);
</syntaxhighlight>
Jeżeli zmienna: {{Code|tablista_artykulow_iter}} {{Patrz|tablista_artykulow_iter}} istnieje i jest tablicą, to ją przetwarzamy przy pomocy funkcji: {{LinkŚródtytuł|InneSpisy}}, w sposób:
<syntaxhighlight lang="lua">
tablista_artykulow_iter,tab_inne_spisy,numer=Spis(tablista_artykulow_iter,(not przekierowanie_spisu_tresci)and spis_tresci or {przekierowanie_spisu_tresci,spis_tresci,},tab_inne_spisy,nil,numer);
</syntaxhighlight>
Tak otrzymaną zmienną: {{Code|tablista_artykulow_iter}} {{LinkPatrz|tablista_artykulow_iter}}, iterujemy po elementach, wsadzając ją do tablicy na sam koniec: {{Code|tablista_artykulow}} {{LinkPatrz|tablista_artykulow}}, a jak tablica nie istnieje, to ją tworzymy z pustą tablicą, i wtedy wykonujemy tą operację. To wsadzanie wykonujemy za pomocą funkcji: {{LzLua|table.insert}}.
Na samym końcu zwracamy wiele elementów:
<syntaxhighlight lang="lua">
return tablista_artykulow,tab_inne_spisy,numer;
</syntaxhighlight>
===== {{Śródtytuł|SpisRzeczy}}{{Code|SpisRzeczy}} =====
Funkcja przygotowuje aktualny spis treści, by dodać do niego nowy spis, jeżeli on istnieje, jako artykuł w spisie o nazwach: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function SpisRzeczy(tabela_artykulow,tab_inne_spisy)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tabela_artykulow}} | _1 = Jak w: {{LinkPatrz|tabela_artykulow}}.
| 2 = {{Code|tab_inne_spisy}} | _2 = Jak w: {{LinkPatrz|tab_inne_spisy}}.
}}
Uruchamiamy funkcję: {{LinkŚródtytuł|p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku}}, która zwraca wynik, który trzeba sprawdzić, czy istnieje, przed dalszymi operacjami, tzn. {{Code|artykul_spisu_rzeczy}} {{Patrz|artykul_spisu_rzeczy}}, uzyskując z aktualnej listy spis treści dla całej książki, jako jego zespołu, na podstawie jego, dowiadujemy, że taki omawiany spis istnieje, wtedy stary spis, czyli stronę główną podręcznika, przygotujemy do tego, do tego robimy funkcją: {{LinkŚródtytuł|Spis}}, wywołaniem, ale przed tym wywołaniem ustawiamy: {{Code|numer {{=}} 1}}, zatem:
<syntaxhighlight lang="lua">
tabela_artykulow,tab_inne_spisy,numer=Spis(tabela_artykulow,nil,tab_inne_spisy,"",numer);
</syntaxhighlight>
Następnym krokiem jest czytanie tego spisu przy pomocy wywołania: {{LinkŚródtytuł|InneSpisy}}, jako:
<syntaxhighlight lang="lua">
tabela_artykulow,tab_inne_spisy,numer=InneSpisy(tabela_artykulow,tab_inne_spisy,artykul_spisu_rzeczy,numer);
</syntaxhighlight>
Funkcja używa zmiennej uzyskanego wcześniej, tzn.: {{Code|artykul_spisu_rzeczy}} {{LinkPatrz|artykul_spisu_rzeczy}}, to jest to samo, co: {{Code|artykul_bez_naglowka_w_bazie}} {{LinkPatrz|artykul_bez_naglowka_w_bazie}}, uzyskanej z funkcji liczący taki spis według: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, którym wartością jest nazwa artykułu bez nagłówka w bazie.
Wartościami zwracanymi przez funkcję są dwie osobne zmienne zrzucane jednocześnie:
<syntaxhighlight lang="lua">
return tabela_artykulow,tab_inne_spisy;
</syntaxhighlight>
Jest to ogólna tabela wszystkich rozdziałów i do nich ich artykułów - pierwsza wartość, i uzupełniona lista innych spisów treści - druga wartość.
===== {{Śródtytuł|IteratorSpisTresci}}{{Code|IteratorSpisTresci}} =====
Funkcja uruchamiająca iterator po spisach treści innych niż spis treści główny, jego definicja:
<syntaxhighlight lang="lua">
local IteratorSpisTresci=function()
local liczba=1;
return function()
local spis_tresci=tabela_parametrow_szablonu_uklad_autonawigacji["spis treści "..liczba];
liczba=liczba+1;
return spis_tresci;
end;
end;
</syntaxhighlight>
Funkcja wykorzystuje tablicę parametrów autonawigacji ze strony ściśle określonej z katalogu stron: {{Code|NawigacjaSpecjalna/Nawigacja/...}} {{LinkPatrz|NawigacjaSpecjalna/Nawigacja/}}, iteruje co jeden numer spisu treści, tzn.: {{Code|spis treści 1}}, {{Code|spis treści 2}},..., {{Code|spis treści N}}, gdzie {{Code|N}}, to największa liczba charakteryzująca dany spis treści. W samym iteratorze liczba: {{Code|liczba}} {{Patrz|liczba-IteratorSpisTresci}}, powiększa się co jeden, aż do zakończenia limitu spisów treści, tzn do najbliżeszej przerwy lub końca przy iteracji, bo na samym końcu iterator zrzuci wynik {{Code|nil}}.
===== {{Śródtytuł|IteratorFun}}{{Code|IteratorFun}} =====
Funkcja iteruje po stronach i ich nazwach, jakie mają być wyświetlane w linkach, generowane przez: {{Code|{{s|Autonawigacja}}}} {{LinkPatrz|Autonawigacja}}, ale na podstawie {{Code|{{s|Układ autonawigacji}}}} {{LinkPatrz|Układ autonawigacji}}, według jednych ze stron: {{Code|NawigacjaSpecjalna/Nawigacja/...}} {{LinkPatrz|NawigacjaSpecjalna/Nawigacja/}}, ustawień.
Definicja skrótowa funkcji i jego funkcji zwracanej, która jest iteratorem:
<syntaxhighlight lang="lua">
local IteratorFun=function()
... ---- operacje robione przed uruchomieniem iteratora;
return function()
... ---- ciało iteratora
return strona,nazwa; ---- zwracane elementy;
end;
end;
</syntaxhighlight>
Definicja funkcji: {{Code|STRONA}} {{Patrz|STRONA}} i {{Code|NAZWA}} {{Patrz|NAZWA}}, są:
<syntaxhighlight lang="lua">
local STRONA=function(liczba)return liczba*2-1;end;
local NAZWA=function(liczba)return liczba*2;end;
</syntaxhighlight>
W iteratorze dostępna jest zmienna: {{Code|tabela_parametrow_szablonu_uklad_autonawigacji}} {{Patrz|tabela_parametrow_szablonu_uklad_autonawigacji}}, z którego uzyskujemy parametry, te wywołania są napisane w ciele iteratora, w sposób:
<syntaxhighlight lang="lua">
local strona=tabela_parametrow_szablonu_uklad_autonawigacji[STRONA(liczba)];
local nazwa=tabela_parametrow_szablonu_uklad_autonawigacji[NAZWA(liczba)];
</syntaxhighlight>
Iterację zaczynamy dla: {{Code|liczba}} {{Patrz|liczba-IteratorFun}}, od jedynki, po uzyskaniu powyższych wartości, licznik (tą liczbę) powiększamy o jeden, a następnie zwracamy w iteratorze zmienne: {{Code|strona}} {{Patrz|strona}}, i {{Code|nazwa}} {{Patrz|nazwa}}.
===== {{Śródtytuł|ZbieranieDanychStronZAutonawigacji}}{{Code|ZbieranieDanychStronZAutonawigacji}} =====
Jest to funkcja do zbierania danych z jednego ze ściśle określonej strony szablonu z: {{Code|NawigacjaSpecjalna/Nawigacja/...}} {{LinkPatrz|NawigacjaSpecjalna/Nawigacja/}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZbieranieDanychStronZAutonawigacji()...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = Brak parametrów. | komórka1 = tak
}}
Gdy parametr z iteracji iteratorem: {{Code|iter}}, z którego przy jego kolejnych wywołaniach otrzymujemy parametry: {{Code|strona}} {{LinkPatrz|strona}}, i {{Code|nazwa}} {{LinkPatrz|nazwa}}, dla: {{Code|strona}} {{LinkPatrz|strona}}, jest równy wartości odpowiadającej fałszywej, wtedy funkcja zakańcza pracę. W przeciwnym wypadku te parametry są dekodowane funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, z drugim parametrem: {{Code|true}}, ale nazwa jest dekodowana, gdy ona jest niepusta.
Gdy zmienna: {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}}, nie istnieje, to wtedy ją tworzymy, inicjując ją pustą tablicą, oraz inicjujemy tabelę artykułów dodatkowych wykorzystując funkcję: {{LzLua|table.insert}}:
<syntaxhighlight lang="lua">
table.insert(tablista_artykulow,{[1]={"Dodatkowe artykuły",{1,nil,nil},["dodatkowe"]="tak",},[2]=nil,});
</syntaxhighlight>
Następnie liczymy parametr dla danego rozdziału, tzn. liczymy: {{Code|tabela_rozdzial_artykulow}} {{LinkPatrz|tabela_rozdzial_artykulow}}, według:
<syntaxhighlight lang="lua">
tabela_rozdzial_artykulow=tablista_artykulow[#tablista_artykulow];
</syntaxhighlight>
Następnie liczymy adres bezwzględny: {{Code|strona}} {{LinkPatrz|strona}}, z funkcji: {{Code|DekodowanieTekstu}}, to jest wartość zwracana, jako funkcja, z: {{Code|{{sr|#p.DekodowanieTekstu|p=StronicowyParser/Potrzebne}}}}, a tą samą nazwę później to z: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, według wywołania, znając dwa parametry: {{Code|strona}} {{LinkPatrz|strona}}, i {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}, czyli:
<syntaxhighlight lang="lua">
strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=pelna_nazwa_ksiazki,};
</syntaxhighlight>
====== {{Śródtytuł|WsadzanieParametryDoTablicy}}{{Code|WsadzanieParametryDoTablicy}} ======
Jest to funkcja wsadzająca elementy do tablicy do funkcji: {{Code|{{sr|#WstawianieElementowychZarejestrowanychStronDoBazyWoluminu|p=StronicowyParser/SpisTreści/Tom I}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local WsadzanieParametryDoTablicy=function(tabela_rozdzial_artykulow,numer_rodzaju_artykulow_w_nie_podreczniku,tab_stare)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tabela_rozdzial_artykulow}} {{Patrz|tabela_rozdzial_artykulow}} | _1 = Tabela rozdziału i do niego artykułów.
| 2 = {{Code|numer_rodzaju_artykulow_w_nie_podreczniku}} {{Patrz|numer_rodzaju_artykulow_w_nie_podreczniku}} | _2 = Numer pozycji na którym element zostonie element {{LinkPatrz|tab_stare}} wstawiony.
| 3 = {{Code|tab_stare}} {{LinkPatrz|tab_stare}} | _3 = Wstawiany element.
}}
Jeżeli zmienna: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}, nie istnieje, to jest inicjowana tablicą pustą.
Liczymy adres strony na podstawie:
<syntaxhighlight lang="lua">
---- Jeżeli zmienna jest tablicą i nie ma klucza: "["LINK"]=true", wtedy przyjmuje wartość: true, w przeciwnym wypadku: false;
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab_stare[1]);
---- Nazwa artykułu lub adres strony, dla ktorej liczymy adres;
local adres=czy_table_baza_artykulu and tab_stare[1][1] or tab_stare[1];
</syntaxhighlight>
Liczymy, czy strona jest w podręczniku, czyli: {{Code|czy_w_podreczniku}} {{Patrz|czy_w_podreczniku}}, ze: {{Code|tab_stare[5]}} {{Patrz|tab_stare[5]}}, a następnie kod języka i projektu, kolejno: {{Code|kod_jezyka_koncowy}} {{Patrz|kod_jezyka_koncowy}}, i {{Code|kod_projektu_koncowy}} {{Patrz|kod_projektu_koncowy}}, jeżeli zmienna: {{Code|czy_table_baza_artykulu}} {{Patrz|czy_table_baza_artykulu}}, jest nie równa wartości prawdziwej, to te zmienne przyjmuje wartość {{Code|nil}}, w przeciwnym wypadku, kolejno wartości: {{Code|tab_stare[1][5]}} i {{Code|tab_stare[1][6]}}.
Wsadzamy element do tablicy: {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}}, przy pomocy funkcji: {{LzLua|table.insert}}, w sposób:
<syntaxhighlight lang="lua">
table.insert(dodatkowe_artykuly,{((adres) and (kod_jezyka_koncowy or kod_projektu_koncowy) and({adres,kod_jezyka_koncowy,kod_projektu_koncowy,}) or adres),nazwa,czy_w_podreczniku,});
</syntaxhighlight>
Później wstawiamy element: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, do: {{Code|tabela_rozdzial_artykulow}} {{LinkPatrz|tabela_rozdzial_artykulow}}, na pozycję: {{Code|numer_rodzaju_artykulow_w_nie_podreczniku}} {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}}, używając wywołania: {{LzLua|table.insert}}, czyli:
<syntaxhighlight lang="lua">
table.insert(tabela_rozdzial_artykulow[numer_rodzaju_artykulow_w_nie_podreczniku],tab_stare);
</syntaxhighlight>
====== Dalszy opis funkcji nadrzędnej ======
Dalszym krokiem jest wsadzenie elementu do ogólnej tablicy, a tutaj do artykułu w danym rozdziale, robimy, mając przetwarzaną zmienną: {{Code|tablica_artykulow_zebranych}} {{Patrz|tablica_artykulow_zebranych}}, to według:
<syntaxhighlight lang="lua">
local numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy;
numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy,tablica_artykulow_zebranych=WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,WsadzanieParametryDoTablicy,...,...,true,{strona,nazwa,},...,...,...,"",...,...,tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji,tablica_danych_parametrow_szablonu_strony_uklad_autonawigacji,nil,nil,...,--[[]]"*","",false,"[[:"..strona..((parametry_modul.CzyTak(nazwa))and("|"..nazwa) or "").."]]");
</syntaxhighlight>
Powyżej użyto trójkropków: {{Code|...}}, bo te parametry są standardowe dla każdego wywołania.
Powyżej wstawianie odbyło się przy pomocy funkcji: {{LinkŚródtytuł|WsadzanieParametryDoTablicy}}, używając: {{Code|{{sr|#WstawianieElementowychZarejestrowanychStronDoBazyWoluminu|p=StronicowyParser/SpisTreści/Tom I}}}}, w której jest tworzone: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, który natomiast jest wsadzany do ogólnej tablicy rozdziałów i w nich artykułach na odpowiednią pozycję. W wstawianym elemencie ustawiamy sztuczną listę z początkiem: {{Code|<nowiki>*</nowiki>}}, z numeracją pusta, i linią artykułu, którą jest link:
<syntaxhighlight lang="lua">
"[[:"..strona..((parametry_modul.CzyTak(nazwa))and("|"..nazwa) or "").."]]"
</syntaxhighlight>
To wstawienie dzieje się przy pomocy funkcji przetwarzającej dane: {{LinkŚródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu|StronicowyParser/SpisTreści/Tom I}}, używającą: {{LinkŚródtytuł|WsadzanieParametryDoTablicy}}.
==== Dalszy opis funkcji głównej ====
Liczymy adres strony głównej podręcznika: {{Code|pelna_nazwa_ksiazki}} {{LinkPatrz|pelna_nazwa_ksiazki}}, z funkcji: {{Code|{{sr|#m["NazwaModułu"]|p=Nazwy/Tom III}}}}, i sprawdzamy, czy strona istnieje na podstawie: {{Code|{{sr|#p.PoliczZbiory|p=Techniczne}}}}. Jeśli strona istnieje, wtedy liczymy, czy istnieje jego przekierowanie z funkcji: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, a jeżeli istnieje jego przekierowanie, to wtedy wartość tej funkcją jest stroną na którą wskazuje to przekierowanie, oznaczmy tą zmienną: {{Code|strona_spisu_tresci}} {{Patrz|strona_spisu_tresci}}.
Jeżeli: {{Code|strona_spisu_tresci}} {{LinkPatrz|strona_spisu_tresci}}, istnieje, wtedy jego nazwę dekodujemy funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, z drugim parametrem {{Code|true}}.
Używając tabeli nazw, tzn.: {{Code|tabela_nazw}} {{Patrz|tabela_nazw}}, której przydzielamy wartość tabeli pustej, liczymy kolejno: {{Code|nazwa_przestrzeni2}} {{Patrz|nazwa_przestrzeni2}}, {{Code|nazwa_przestrzeni_ksiazki2}} {{Patrz|nazwa_przestrzeni_ksiazki2}} i {{Code|nazwa_ksiazki2}} {{Patrz|nazwa_ksiazki2}}, z następujących funkcji kolejno: {{Code|{{sr|#m.NAZWAPRZESTRZENI|p=Nazwy/Tom II}}}}, {{Code|{{sr|#m["NAZWAPRZESTRZENIKSIĄŻKI"]|p=Nazwy/Tom IV}}}}, albo: {{Code|{{sr|#m["NAZWAKSIĄŻKI"]|p=Nazwy/Tom IV}}}}, gdy: {{Code|nazwa_przestrzeni_ksiazki2}} {{LinkPatrz|nazwa_przestrzeni_ksiazki2}}, jest pusta, przeciwnie z: {{Code|{{sr|#m["SUBNAZWAKSIĄŻKI"]|p=Nazwy/Tom IV}}}}. Sprawdzamy, czy one pokrywają się kolejno z: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, a jeżeli w całości, wtedy sprawdzamay, czy to z {{Code|2}} należą do przestrzeni nazw i niby-przestrzenu nazw książkowych. Przestrzenie ksiązkowe, to: {{Np|(main)|link=tak}}, {{Np|Wikijunior|link=tak}}, oraz {{Np|User|link=tak}}, w niby przestrzeni nazw: '''{{Np|User|link=tak}}:<użytkownik>/''', i {{Np|Project|link=tak}} w niby-przestrzeni nazw: '''{{Np|Project|link=tak}}:Brudnopis/<użytkownik>/''', jeżeli do tej przestrzeni nie należy, to funkcja kończy się z błędem (z wartością) {{Code|2}}, przeciwnie tworzona jest zmienna {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}:
<syntaxhighlight lang="lua">
adres_ksiazki_glownego_spisu_tresci={nazwa_przestrzeni2,nazwa_przestrzeni_ksiazki2,nazwa_ksiazki2,};
</syntaxhighlight>
Także jest tam wywoływana funkcja: {{Code|__FUNKCJA_SPISU_RZECZY}} {{LinkPatrz|__FUNKCJA_SPISU_RZECZY}}, jeśli istnieje:
<syntaxhighlight lang="lua">
local wynik=__FUNKCJA_SPISU_RZECZY and __FUNKCJA_SPISU_RZECZY(nazwa_przestrzeni2,nazwa_przestrzeni_ksiazki2,nazwa_ksiazki2) or nil;
</syntaxhighlight>
Jeżeli ta funkcja nie istnieje, lub zwraca {{Code|nil}} lub nawet {{Code|1}}, wtedy funkcja zakańcza się z błędem: {{Code|1}}, przeciwnie na podstawie tego innego niż te, jest przyrównywanie tego temu, wtedy mamy nowe parametry nazw dla tego. I na podstawie tego liczymy nową nazwę: {{Code|pelna_nazwa_ksiazki}} {{LinkPatrz|pelna_nazwa_ksiazki}}.
Liczymy adres ustawień z: {{Code|NawigacjaSpecjalna/Nawigacja/...}} {{LinkPatrz|NawigacjaSpecjalna/Nawigacja/}}, i sprawdzamy, czy on ma przekierowanie z: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, wtedy ma nowy adres, dalej liczymy jego kod źdródłowy z funkcji: {{Code|{{sr|#p.WikikodStrony|p=Techniczne}}}}, przy pomocy:
<syntaxhighlight lang="lua">
local tekst=techniczne_modul.WikikodStrony{["przestrzeń"]="",["nazwa"]=adres_ustawien,};
</syntaxhighlight>
A jeżeli taka strona nie istnieje, wtedy: {{Code|tekst}}, przyjmuje wartość: {{Code|nil}}, wtedy wydobywamy kod pojedynczego spisu treści {{Patrz|pojedyncze_wywolanie}}, czyli strony głównej podręcznika (książki):
<syntaxhighlight lang="lua">
---- Zbieranie parametrów pojedynczego spisu (strony głównej strony jako spisu treści)
local tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"",czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
local tab_inne_spisy;
---- Sprawdzanie, czy dodatkowy spis treści istnieje , taki jak: "Spis treści", i przekształcanie tablic otrzymanych z poprzedniego wywołania;
tabela_artykulow,tab_inne_spisy=SpisRzeczy(tabela_artykulow,nil);
---- Zwracanie parametrów;
return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and "" or {przekierowanie_spisu_tresci,"",},tab_inne_spisy,nil,adres_ksiazki_glownego_spisu_tresci;
</syntaxhighlight>
Przeciwnie kodujemy ten tekst: {{Code|tekst}} {{Patrz|tekst}}, przy pomocy pustej tabeli: {{Code|tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji}}. Co na podstawie liczmy tego parametry szablonu o: {{Code|obiekt}} {{=}} {{Code|SZABLON}}, w nim o nazwie: {{Code|{{sr|#p.uklad_autonawigacji|p=StronicowyParser/obiekty}}}}, czyli: {{Code|tabela_parametrow_szablonu_uklad_autonawigacji}} {{LinkPatrz|tabela_parametrow_szablonu_uklad_autonawigacji}}, również: {{Code|nazwa_szablonu_uklad_autonawigacji}} {{Patrz|nazwa_szablonu_uklad_autonawigacji}}, i {{Code|tabela_modyfikatorow_uklad_autonawigacji}} {{Patrz|tabela_modyfikatorow_uklad_autonawigacji}}, a także: {{Code|szablon_uklad_autonawigacji}} {{Patrz|szablon_uklad_autonawigacji}}, dalej przerywamy pętle. Jeżeli nie wykryto szablonu autonawigacji, wtedy zakańczamy funkcje jak w punkcie: {{LinkPatrz|pojedyncze_wywolanie}}. A jeżeli nie ma tabeli parametrów szablonu: {{Code|tabela_parametrow_szablonu_uklad_autonawigacji}} {{LinkPatrz|tabela_parametrow_szablonu_uklad_autonawigacji}}, to też podobnie.
A jeżeli chcemy liczyć manualnie, wtedy musimy powiedzieć:
<syntaxhighlight lang="lua">
local automat_manualny=tabela_parametrow_szablonu_uklad_autonawigacji["automat manualny"];
</syntaxhighlight>
Jeżeli wartość tej zmiennej: {{Code|automat_manualny}} {{Patrz|automat_manualny}}, jest nie {{Code|nil}}, i jest niepusta, to ze zmiennej: {{Code|spis treści}} {{Patrz|spis treści}}, liczmy z tego nazwę książki i ona musi się zgadzać ze zmienną: {{Code|pelna_nazwa_ksiazki}} {{LinkPatrz|pelna_nazwa_ksiazki}}, co po zgadzaniu, liczmy nazwę artykułu nazwy artykułu, w przeciwnym wypadku mamy do czynienia ze stroną główną podręcznika, wartość pusta będzie odpowiadała stronie głównej podręcznika, co na sam koniec liczymy:
<syntaxhighlight lang="lua">
---- Zbieranie parametrów pojedynczego o policzoej nazwie artykułu spisu;
local tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,sub_nazwa_spis_tresci,czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
---- Sprawdzanie, czy dodatkowy spis treści istnieje , taki jak: "Spis treści", i przekształcanie tablic otrzymanych z poprzedniego wywołania;
tabela_artykulow,tab_inne_spisy=SpisRzeczy(tabela_artykulow,nil);
---- Zwracanie parametrów;
return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and sub_nazwa_spis_tresci or {przekierowanie_spisu_tresci,sub_nazwa_spis_tresci,},tab_inne_spisy,nil,adres_ksiazki_glownego_spisu_tresci;
</syntaxhighlight>
Gdy zmienna: {{Code|automat_manualny}} {{LinkPatrz|automat_manualny}}, jest pusta lub niepodana, wtedy następnym krokiem jest odkodowanie parametrów: {{Code|{{s|Układ autonawigacji}}}} {{LinkPatrz|Układ autonawigacji}}, przy pomocy: {{Code|tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji}}, i ich rozwinięcie funkcją: {{LzLua|frame:preprocess}}.
Ustawmy zmienną: {{Code|numer}} {{LinkPatrz|numer}}, na wartość {{Code|1}}.
Liczymy zmienne: {{Code|bez spisów treści}} {{Patrz|bez spisów treści}}, i {{Code|bez analizy spisów treści}} {{Patrz|bez analizy spisów treści}}, tabeli parametrów: {{Code|tabela_parametrow_szablonu_uklad_autonawigacji}} {{LinkPatrz|tabela_parametrow_szablonu_uklad_autonawigacji}}, oraz sprawdzamy, czy one są niepuste.
Gdy zmienna: {{Code|bez spisów treści}} {{LinkPatrz|bez spisów treści}}, jest niepodana lub pusta, wtedy liczymy z klucza: {{Code|spis treści}} {{LinkPatrz|spis treści}}, ze zmiennej: {{Code|tabela_parametrow_szablonu_uklad_autonawigacji}} {{LinkPatrz|tabela_parametrow_szablonu_uklad_autonawigacji}}, a jeżeli ta zmienna istnieje, wtedy ją dekodujemy funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, z drugim parametrem {{Code|true}}, i liczymy jego adres bezwzględny z funkcji: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, mając względem, którego ma liczyć, tzn.: {{Code|pelna_nazwa_ksiazki}} {{LinkPatrz|pelna_nazwa_ksiazki}}.
Następnie sprawdzamy, czy w policzonym spisie nazwa ksiązki zgadza się z tą: {{Code|pelna_nazwa_ksiazki}} {{LinkPatrz|pelna_nazwa_ksiazki}}, a jeżeli się zgadza, to liczymy nazwę artylułu spisu treści, przeciwnie nazwa artykułu spisu treści ma wartość pustą, wartość pusta nazwy artykułu spisu treści odpowiada stronie głównej podręcznika. W innym wypadku, gdy zmienna: {{Code|bez spisów treści}} {{LinkPatrz|bez spisów treści}} jest niepusta, wtedy tylko uwzględniamy nazwę spisu treści jako stronę główną podręcznika. Tą zmienną jest: {{Code|nazwa_glownego_spisu}} {{LinkPatrz|nazwa_glownego_spisu}}.
Gdy zmienne: {{Code|bez spisów treści}} {{LinkPatrz|bez spisów treści}}, i {{Code|bez analizy spisów treści}} {{LinkPatrz|bez analizy spisów treści}}, są niepodane lub puste, wtedy liczymy pojedynczy artykuł będący spisem treści o nazwie: {{Code|nazwa_glownego_spisu}} {{LinkPatrz|nazwa_glownego_spisu}}, zatem tego wywołanie wygląda tak:
<syntaxhighlight lang="lua">
tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika,tabela_licencji_ksiazek_wedlug_strony_glownej_podrecznika,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_glownego_spisu,czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
</syntaxhighlight>
Gdy zmienna: {{Code|przekierowanie_spisu_tresci}} {{LinkPatrz|przekierowanie_spisu_tresci}}, ma wartość odpowiadającej prawidziwej, czyli to pewien łańcuch znakowy, wtedy policzmy: {{LinkPatrz|nazwa_glownego_spisu}}, dla tego przekierowania:
<syntaxhighlight lang="lua">
nazwa_glownego_spisu={przekierowanie_spisu_tresci,nazwa_glownego_spisu,};
</syntaxhighlight>
Jeśli wartość: {{Code|tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika}} {{Patrz|tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika}}, jest {{Code|nil}}, lub {{Code|0}}, wtedy funkcja jest zakańczana w sposób:
<syntaxhighlight lang="lua">
return tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika;
</syntaxhighlight>
Lub przeciwnie, napiszmy przemianowania zmiennych na: {{Code|tablista_artykulow}} {{LinkPatrz|tablista_artykulow}}, i {{Code|licencja}} {{Patrz|licencja}}, według:
<syntaxhighlight lang="lua">
tablista_artykulow=tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika;
licencja=tabela_licencji_ksiazek_wedlug_strony_glownej_podrecznika;
</syntaxhighlight>
Liczymy spis treści odpowiadającym wartością tabeli: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, zatem to policzmy, czy tak jest, schematycznie:
<syntaxhighlight lang="lua">
---- Przygotowanie spisu do wielu spisów treści;
tablista_artykulow,tab_inne_spisy,numer=Spis(tablista_artykulow,nil,tab_inne_spisy,nazwa_glownego_spisu,numer);
---- Liczenie czy jest artykuł w spisie treści o nazwie typu: "Spis treści";
local artykul_spisu_rzeczy=p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku(tablista_artykulow);
if(artykul_spisu_rzeczy)then
---- Dodaje spis nowy do większego spisu, ten wykryty zaraz powyższą funkcją;
tabela_artykulow,tab_inne_spisy,numer=InneSpisy(tablista_artykulow,tab_inne_spisy,artykul_spisu_rzeczy,numer);
end;
</syntaxhighlight>
Uruchamiamy iterator: {{Code|iter}} {{Patrz|iter}}, z funkcji: {{LinkŚródtytuł|IteratorSpisTresci}}, bez parametrów, zdefiniowanej w tym bloku, co jest ta iteracja, wtedy możemy je iterować po spisie treści w sposób:
<syntaxhighlight lang="lua">
for spis_tresci in iter do
.... ---- ciało iterowanej pętli;
end;
</syntaxhighlight>
Każdy tak uzyskany: {{Code|spis_treści}} {{LinkPatrz|spis_treści}}, dekodujemy funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, następnie rozwijamy adres względny na bezwzględny względem korzenia drzewa przestrzeni nazw z funkcji: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, i dodajemy te spisy do głównego drzewa tablicy rozdziałów i ich artykułów przy pomocy funkcji: {{LinkŚródtytuł|InneSpisy}}, właśnie tak:
<syntaxhighlight lang="lua">
tablista_artykulow,tab_inne_spisy,numer=InneSpisy(tablista_artykulow,tab_inne_spisy,spis_tresci,numer);
</syntaxhighlight>
Uruchomimy inny iterator: {{Code|iter}} {{LinkPatrz|iter}}, z funkcji: {{LinkŚródtytuł|IteratorFun}}, wywołanej bezparametrowo, wtedy iterację możemy napisać wykorzystujac funkcję: {{LinkŚródtytuł|ZbieranieDanychStronZAutonawigacji}}, zdefiniowanej w tej pętli, działającą tak:
<syntaxhighlight lang="lua">
for strona,nazwa in iter do
... ---- definicja funkcji: ZbieranieDanychStronZAutonawigacji;
ZbieranieDanychStronZAutonawigacji();
end;
</syntaxhighlight>
Funkcja w nagłówku zwraca wielowartościowy, wtedy wynik na samym końcu zakończenia jej jest:
<syntaxhighlight lang="lua">
return tablista_artykulow,licencja,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,adres_ksiazki_glownego_spisu_tresci;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis zwracanych parametrów:
| 1 = {{Code|tablista_artykulow}} | _1 = Jak w: {{LinkPatrz|tablista_artykulow}}.
| 2 = {{Code|licencja}} | _2 = Jak w: {{LinkPatrz|licencja}}.
| 3 = {{Code|nazwa_glownego_spisu}} | _3 = Jak w: {{LinkPatrz|nazwa_glownego_spisu}}.
| 4 = {{Code|tab_inne_spisy}} | _4 = Jak w: {{LinkPatrz|tab_inne_spisy}}.
| 5 = {{Code|dodatkowe_artykuly}} | _5 = Jak w: {{LinkPatrz|dodatkowe_artykuly}}.
| 6 = {{Code|adres_ksiazki_glownego_spisu_tresci}} | _6 = Jak w: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
r8d0topucpab3nye243c2nn38g4y2mx
Wikibooks:Moduły/StronicowyParser/SzablonyTekstu
4
63669
560645
560442
2026-11-08T13:56:35Z
Persino
2851
560645
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
Poniżej są opisane parametry dla szablonów typu {{Code|rodzaj: Śródtekst}} {{Patrz|rodzaj: Śródtekst}}:
* Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}.
** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}.
* Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}.
** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}.
Szablony: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}, mają walidację błędów, więc mogą, oprócz parametrów standardowych, przyjmować zmienne o kluczach odpowiednio: {{Code|klucz}} (lub {{Code|klucz1}}), {{Code|klucz2}}, {{Code|klucz3}}, ..., itd.. Tych parametrów może być dowolna liczba, ale mogą być pomiędzy nimi przerwy.
; Zbieranie elementów typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, na stronie bieżącej, jak i dołączonej{{dk}}
'''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|p.DodawanieDoBazyStronySzablonuTekstu}}:
<syntaxhighlight lang="lua">
if(not czy_artykul_korzystany)then
if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end;
table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{
{wartosc_elementu,lista_dwuelementowa,},
{},
{{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,},
{tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,},
});
else
if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end;
table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{
{wartosc_elementu,lista_dwuelementowa,},
{},
{{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,},
{tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,},
});
end;
</syntaxhighlight>
* Ten powyższy kod, to nic innego jak część definicji funkcji: {{LinkŚródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}, używaną do wstawiania tego, gdy napotkano szablony typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}.
; Strony niebieżące - zbieranie elementów szablonu {{Code|Pobierz}} {{LinkPatrz|Pobierz}} na stronie bieżącej, które odwołują się właśnie do tej niebieżącej{{dk}}
Drugi element wsadzanej tablicy za pomocą {{LzLua|table.insert}}, jest to nic innego, jak tablica zawierająca następne tablice, gdy tam jakiś element się pojawi, a ta operacja jest robiona przez funkcję {{LinkŚródtytuł|p.UstawianiePobierz}} {{ZobaczTeż|p.UstawianiePobierz}}:
<syntaxhighlight lang="lua">
local tablica_szablonu_tekstu;
if(czy_artykul_korzystany)then
tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_korzystanych;
else
tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_niekorzystanych;
end;
if(tablica_szablonu_tekstu)then
for _,pozycja in ipairs(tablica_szablonu_tekstu)do
...
local dodatkowe_elementy=pozycja[2];
...
if(not czy_tak)then
local tab_numer;
if(tablica_zmiennych)then
tab_numer={};
for name,value in pairs(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)do
tab_numer[name]=#tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[name];
end;
end;
table.insert(dodatkowe_elementy,{obiekt,kod,tab_numer});
break;
</syntaxhighlight>
* gdzie: tabela: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, będąca podtabelą tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, to nic innego, jak zbiór tablic mniejszych dla poszczególnych obiektów, tutaj nazwanych kluczami: {{Code|name}}, w tych mniejszych mieszczą się pojedyncze tabele, które pierwszym elementem jest uchwyt, a drugim jest sam tekst szablonu typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}.
* Tą funkcję używamy do zbierania informacji o inne stronie, dołączonej do aktualnej, w wyniku uruchomienia szablonu linku lub pobierania.
; Strony bieżące korzystane - zbieranie elementów szablonu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, które odwołują się do niej{{dk}}
Funkcja natomiast: {{LinkŚródtytuł|p.UstawianiePobierz}}, jest uruchamiana przez funkcję: {{LinkŚródtytuł|p.UstawPobierzKorzystanie}}, dla modułu bieżącego, która zbiera odpowiednie elementy pobierania (szablony typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}) w tablicach linkowych (pobierania) {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, to są tablice, aktualnej - bieżącej, strony, ta tablica jest tworzona sposobem, ale nie w tej funkcji, ta funkcja jedynie z tego korzysta, a ten kod poniżej jest używany, gdzie indziej w kodzie {{ZobaczTeż|p.LinkowanieFinalizowaniePrac}}:
<syntaxhighlight lang="lua">
if(czy_pobierz)then
if(not tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane)then
tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane={};
end;
table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},});
end;
</syntaxhighlight>
W tej tablicy mieszczą się informację, co do poszczególnych obiektów pobierania typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
----
; Inne{{dk}}
Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}.
== {{Śródtytuł|p["KopiujRekurencyjnieTabelęBazyOrazParametrówKodówZakodowanegoTekstu"]}}{{Code|p["KopiujRekurencyjnieTabelęBazyOrazParametrówKodówZakodowanegoTekstu"]}} ==
Funkcja do kopiowania bazy kodów bazy kodowania tekstu zakodowanego: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, i bazy parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, pojedynczego szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Ona zwraca te dwie kolejno kopie. Te kopie to nie są całości tych tabel, ale jedynie dotyczące tych szablonów tego typu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["KopiujRekurencyjnieTabelęBazyOrazParametrówKodówZakodowanegoTekstu"]=function(szablon,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|szablon}} | _1 =
{{Śródtekst|uchwyt=Śródtekst|tekst=
Kod całego zakodowanego szablonu typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, który ma pewne wnętrze, którym jest ten szablon. Jest to kod zapisany, używając pewnego szablonu z modułu: {{Code|{{ld2|Szablonowe}}}}, w formie:
<syntaxhighlight lang="lua">
local szablon_kod=szablonowe_modul.NormaKoduKodowaniaTekstu("SZABLON",kod);
</syntaxhighlight>
; Gdzie{{dk}}
* {{Code|SZABLON}} - Typ obiektu szablonowego tego szablonu,
* {{Code|kod}} - Jest to numer obiektu tego rodzaju.
}}
| 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = Uchwyt zakodowanej bazy kodów, jeśli: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, nie istnieje.
| 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
| 5 = {{Code|__FUNKCJA_PARAMETRY}} | _5 = Funkcja do modyfikacji parametrów w bazie połączonej w metatabelką.
{{PobierzŚródtekst|uchwyt=__FUNKCJA_PARAMETRY|nazwa artykułu=StronicowyParser/Tekst}}
}}
Parametry zwracane funkcji - ilustracja kodowa:
<syntaxhighlight lang="lua">
return __tablica_analizy_obiektow_strony_dany_modul,__tablica_danych_parametrow_szablonu_strony;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów zwracanych - opis
| 1 = Częściowa tabela kodów zakodowanego tekstu: | nagłówek1 = tak
| 2 = {{Code|__tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_stare}}| _2 = Bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 3 = {{Code|__tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony_stare}} | _3 = Parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
}}
== {{Śródtytuł|p.PreparowanieSzablonoweLinkoweSzablonuTekstu}}{{Code|p.PreparowanieSzablonoweLinkoweSzablonuTekstu}} ==
Funkcja służy do zastępowania parametrów, w szablonie typu: {{s|Śródtekst}} {{LinkPatrz|Śródtekst}}, w zmiennych parametru: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}} lub {{Code|1}} {{LinkPatrz|1}}, w jego wartości, argumentów typu o wzorze ogólnym: {{Code|<nowiki>klucz%d*</nowiki>}} {{Patrz|klucz%d*}}, na odpowiednie wartości, ustawiane przez szablon w rodzaju: {{s|PobierzŚródtekst}} {{LinkPatrz|Pobierz}}, występujących w parametrach w wywołaniach jego szablonu lub bezpośrednio w tym pierwszym.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PreparowanieSzablonoweLinkoweSzablonuTekstu(tekst,nazwa_modulu_aktualna_czy_biezaca_szablonowa,__tablica_analizy_obiektow_strony_dany_modul,__tablica_danych_parametrow_szablonu_strony,tabela_parametrow_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_ksiazki_tekstu,nazwa_artykulu_tekstu)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst}} {{Patrz|tekst-kod}} | _1 =
{{PobierzŚródtekst|uchwyt=Śródtekst}}
| 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _2 = Nazwa strony w formacie wykonywalnym szablonów, względem innych przestrzeni.
| 3 = Parametry szablonu typu: {{s|Śródtekst}}, rodzaju: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}: | nagłówek3 = tak
| 4 = {{Code|__tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul_stare}} | _4 = Baza danych szablonowa stworzona specjalnie dla szablonu typu: {{s|Śródtekst}} {{LinkPatrz|Śródtekst}}, który jest dokładną kopią tej orginalnej przed jej zmodyfikowaniem przez tą funkcję.
| 5 = {{Code|__tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony_stare}} | _5 = Tabela paremetrów rozwinieć bazy: {{Code|__tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul_stare}}, dzięki któremu uzyskuje się przyszybszenie stronicowego parsera. Jest ona dokładną kopią tej orginalnej przed jej zmodyfikowaniem przez tę funkcję.
| 6 = Parametry szablonu typu: {{s|PobierzŚródtekst}}, rodzaju: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla strony bieżącej: | nagłówek6 = tak
| 7 = {{Code|tabela_parametrow_szablonu}} | _7 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu}}. Jest to tabela parametrów szablonu.
| 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _8 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. Jest to tablica bazy kodów parsowania: '''{{ld|Szablonowe|w bibliotece parsowania dowolnego wikikodu mechanizmu MediaWiki}}'''.
| 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _9 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Jest to baza parametrów rozwinieć, jak: {{Code|__tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony_stare}}, ale dla: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 10 = Nazwy danej książki danej strony, jeśli poszczególne istnieją, na którą wskazuje szablon typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, na odpowiedni szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, przy nieustawionym niepustym parametrze: {{Code|bez preprocess}}, czyli: {{Parametr|bez preprocess|}}: | nagłówek10 = tak
| 11 = {{Code|nazwa_modulu_ksiazki_tekstu}} {{Patrz|nazwa_modulu_ksiazki_tekstu}} | _11 = Pełna nazwa książki danej strony, lub ewentualnie w niektórych przypadkach bez przestrzeni nazw.
| 12 = {{Code|nazwa_artykulu_tekstu}} {{Patrz|nazwa_artykulu_tekstu}} | _12 = Nazwa książkowa artykułu danej strony.
}}
{{OpisParametrów
| tytuł = Opis parametrów zwracanych:
| 1 = Zwraca to samo, co jest tym: {{Code|tekst}} {{LinkPatrz|tekst-kod}} | komórka1 = tak
}}
== {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} ==
Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, tekstu o nazwie pierwszy z kolei, który istnieje, więc: {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, parametrów szablonu: {{s|Śródtekst}} {{LinkPatrz|Śródtekst}}, i go zwraca:
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} | _1 = Parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych.
}}
== {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} ==
Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, parametrów szablonu: {{s|Śródtekst}} {{LinkPatrz|Śródtekst}}, i go zwraca:
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych.
}}
== {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} ==
Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona:
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tablica_zmiennych}} | _1 = Jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej.
| 2 = {{Code|tablica_zmiennych2}} | _2 = Jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie.
}}
== {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} ==
Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|p.DodawanieDoBazyStronySzablonuTekstu}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,__tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,__tablica_analizy_obiektow_strony_dany_modul,__tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tablica_zmiennych}} | _1 = Jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}. Pierwszy z nich zbiera elementy strony korzystanej (bieżącej, czy aktualne), a drugi, to niekorzystanej (dołączonej).
| 2 = {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} | _2 = Rodzaj elementu, jak typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu.
| 3 = {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} | _3 = Tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem.
| 4 = {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} | _4 = Obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym.
| 5 = {{Code|__tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu_stare}}| _5 = Jest to wierna kopia, bez żadnych zmian, tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}.
| 6 = {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} | _6 = Nazwa szablonu tekstu w wersji szablonowej, typu, dla {{LinkPatrz|Śródtekst}}.
| 7 = {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} | _7 = Tablica modyfikatorów uruchomienia wywołania szablonowego szablonu {{LinkPatrz|Śródtekst}}.
| 8 = {{Code|__tablica_analizy_obiektow_strony_dany_modul}} | _8 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul_stare}}. Jest to tablica bazy kodów zakodowanego tekstu, przed przekształceniem siebie samego do: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, dla strony korzystanej, czy nie, czyli będącą jego częściową kopią tylko dla jednego szablonu typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}.
| 9 = {{Code|__tablica_danych_parametrow_szablonu_strony}} | _9 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony_stare}}. Jest to tablica bazy rozkładu na czynniki pierwsze, elementów bazy: {{Code|__tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul_stare}}, przed przekształceniem siebie samego do: {{Code|tablica_danych_parametrow_szablonu_strony_modul}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, dla strony korzystanej, czy nie czyli będącą jego częściową kopią tylko dla jednego szablonu typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}.. Nie wszystkie elementy tutaj tej tablicy są rozłożone, tylko niektóre, ale mogą być wszystkie.
| 10 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _10 = Przyjmuje wartość prawdziwą, gdy rozważany artykuł jest wyświetlany jako korzystany, w pierwszej kolejności, widoczny w przeglądarce internetowej, dla innych stron na wartość jest fałszywa, takie strony są niekorzystane, są to strony dołączone do strony korzystanej (bieżącej, czy aktualnej).
}}
Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|p.DodawanieDoBazyStronySzablonuTekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych.
== {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} ==
Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie (obiekcie, nie linku, czy szablonie pobierania, ale w normalnym) było wtedy aktualnie elementów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu.
Funkcja służy do odpowiedniego przyporządkowania szablonów pobierania typu: {{Code|Pobierz}} {{LinkPatrz|Śródtekst}}, dla strony korzystanej, obiektom typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, na stronie za to niekorzystanej.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tablica_zmiennych}} | _1 = Jak w: {{LinkPatrz|tablica_zmiennych}}.
| 2 = {{Code|tablica_zmiennych2}} | _2 = Jak w: {{LinkPatrz|tablica_zmiennych2}}.
| 3 = {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} | _3 = Obiekt, jak: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}.
| 4 = {{Code|kod}} {{LinkPatrz|Pobierz: kod}} | _4 = Numer danego obiektu typu {{LinkPatrz|Pobierz}}.
| 5 = {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} | _5 = Nazwa danego obiektu {{LinkPatrz|Śródtekst}}.
| 6 = {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} | _6 = Unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}.
| 7 = {{Code|czy_artykul_korzystany}} | _7 = Jak w: {{LinkPatrz|czy_artykul_korzystany}}.
}}
Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|p.DodawanieDoBazyStronySzablonuTekstu}}.
== {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} ==
Funkcja na podstawie stworzonych elementów w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która składa się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}.
Funkcja służy do odpowiedniego przyporządkowania szablonów pobierania typu: {{Code|Pobierz}} {{LinkPatrz|Śródtekst}}, dla strony korzystanej, obiektom typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, też na tej samej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tablica_zmiennych2}} | _1 = Jak w: {{LinkPatrz|tablica_zmiennych2}}.
}}
Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}} (ten szablon jest odmianą tego dla strony korzystanej, dla elementów pobierania do strony bieżącej, czy aktualnej, ale w nim wtedy, w tym przypadku, nie ma tych numerków, do przesuwania elementów w tablicy uchwytów i ich numerków, danego obiektu), dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi.
== {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} ==
Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|<nowiki>pozycja[3][1][1]</nowiki>}}.
Modyfikuje też elementy zapisane w bazie szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, takie {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}:
* Zdefiniujmy, że to: {{Code|__tablica_analizy_obiektow_strony_dany_modul_nie_pobierz}} {{Patrz|__tablica_analizy_obiektow_strony_dany_modul_nie_pobierz}}, to jest: {{Code|<nowiki>(pozycja[4] or {})[1]</nowiki>}} (baza kodów bazy zakodowanego tekstu), to jest niczym innym, jak zapamiętanym: {{Code|__tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|__tablica_analizy_obiektow_strony_dany_modul_stare}}, a jeśli ona nie istnieje, to: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} (baza kodów strony bieżącej).
* Zdefiniujmy, że to: {{Code|__tablica_danych_parametrow_szablonu_strony_nie_pobierz}} {{Patrz|__tablica_danych_parametrow_szablonu_strony_nie_pobierz}}, to jest: {{Code|<nowiki>(pozycja[4] or {})[2]</nowiki>}} (baza parametrów danych obiektów dla szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}), to jest niczym innym, jak zapamiętanym: {{Code|__tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|__tablica_danych_parametrow_szablonu_strony_stare}}, a jeśli ona nie istnieje, to: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} (baza parametrów strony bieżącej).
: Ale to zwykle istnieją te poszczególne pierwsze, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną kolejno bazą danych kodów i parametrów strony bieżącej.
----
Funkcja robi kopię: {{Code|__tablica_analizy_obiektow_strony_dany_modul_nie_pobierz}} {{LinkPatrz|__tablica_analizy_obiektow_strony_dany_modul_nie_pobierz}}, i {{Code|__tablica_danych_parametrow_szablonu_strony_nie_pobierz}} {{LinkPatrz|__tablica_danych_parametrow_szablonu_strony_nie_pobierz}}, dla każdego wywołania szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, aby było możliwe jego analizowanie względem różnych wywołań tego szablonu do tego samego szablonu typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, o pewnym uchwycie na danej stronie, do zmiennych kolejno: {{Code|__tablica_analizy_obiektow_strony_dany_modul_nie_pobierz_kopia}} {{Patrz|__tablica_analizy_obiektow_strony_dany_modul_nie_pobierz_kopia}}, i {{Code|__tablica_danych_parametrow_szablonu_strony_nie_pobierz_kopia}} {{Patrz|__tablica_danych_parametrow_szablonu_strony_nie_pobierz_kopia}}.
Funkcja przyszykowuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, względem parametrów, wskazującego na niego, szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, do dalszej analizy przez: '''{{ld|StronicowyParser|Stronnicowy Parser}}''', to jest robione przy pomocy: {{LinkŚródtytuł|p.PreparowanieSzablonoweLinkoweSzablonuTekstu}}.
Funkcja wykorzystuje tabelę: {{Code|__tabela_parametrow_szablonu_nie_pobierz}}, liczoną z: {{Code|pozycja[3][1][1]}}, to jest niczym innym jak zapamiętanym: {{Code|__tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu_stare}}, którą kopiujemy do: {{Code|__tabela_parametrow_szablonu_nie_pobierz_kopia}} {{Patrz|__tabela_parametrow_szablonu_nie_pobierz_kopia}}, a ta kopia jest wykorzystywana do liczenia elementu: {{Code|tekst}}, przy pomocy formy proceduralnej: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}.
Funkcja do szybszego działania wykorzystuje tabelę: {{Code|__tablica_danych_parametrow_szablonu_strony_nie_pobierz_kopia}} {{LinkPatrz|__tablica_danych_parametrow_szablonu_strony_nie_pobierz_kopia}} i {{Code|tablica_danych_parametrow_szablonu_strony_nie_pobierz_kopia}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony_nie_pobierz_kopia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="Lua">
function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tabela_parametrow_szablonu,czy_korzystane)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|obiekt}} | _1 = Jak w: {{LinkPatrz|Pobierz: obiekt}}.
| 2 = {{Code|kod}} | _2 = Jak w: {{LinkPatrz|Pobierz: kod}}.
| 3 = {{Code|pozycja}} | _3 = Dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, ze strony szablonów rodzaju: {{Code|Śródtekst}}{{LinkPatrz|Śródtekst}}, lub {{Code|Pobierz}} {{LinkPatrz|Pobierz}}.
| 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _4 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa}}.
| 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
| 7 = {{Code|tabela_parametrow_szablonu}} | _7 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu}}.
| 8 = {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} | _8 = Czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}.
}}
Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
== {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} ==
Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, szablonu typu: {{s|PobierzŚródtekst}}, przetransformowanym tekstem z szablonu typu: {{s|Śródtekst}} {{LinkPatrz|Śródtekst}}: o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu, na odpowiedniej stronie nie otoczonej znacznikami: {{Tag|includeonly}}, '''mechanizmu: {{NS|l=tak|k=mw|w=tak|pk=d}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tabela_parametrow_szablonu,tablica_zmiennych)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Treści obiektu typu: {{LinkPatrz|Pobierz}}.
| 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|Pobierz: obiekt}}.
| 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|Pobierz: kod}}.
| 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _4 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa}}.
| 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
| 7 = {{Code|tabela_parametrow_szablonu}} | _7 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu}}.
| 8 = {{Code|tablica_zmiennych}} | _8 = Jak w: {{LinkPatrz|tablica_zmiennych}}.
}}
Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - gdy jego odpowiednik obiekt {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, znajduje się na bieżącej stronie, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - gdy jego odpowiednik obiekt {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, znajduje się na stronie niebieżącej, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}, który zamienia ten obiekt: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, pobierania na odpowiedni wikikod do działania z szablonu tekstu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}.
== {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} ==
Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|szablon}} | _1 = Jak w: {{LinkPatrz|szablon}}.
| 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}.
| 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod}}.
| 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _4 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa}}.
| 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
| 7 = {{Code|tablica_zmiennych}} | _7 = Jak w: {{LinkPatrz|tablica_zmiennych}}.
}}
Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. Funkcja do swojego działania potrzebuje: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, który pobiera tekst z tego szablonu, i zamieniąc go typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, ale nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, właśnie na to.
== {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} ==
Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów,
| 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _2 = Nazwa w formacie szablonowym strony danej, nie tylko szablonów, w wywołaniach szablonowych.
| 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _3 = Tablica bazy zakodowanego tekstu strony korzystanej (bieżącej, czy aktualnej). Jest to tablica prekształcona względem elementów: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}.
| 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _4 = Tablicy parametrów rozłożeń tablicy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, na czynniki pierwsze, nie wszystkie elementy są tam zawarte, ale mogą być wszystkie. Jest to tablica dla strony korzystanej (bieżącej, czy aktualnej). Jest to tablica prekształcona względem elementów: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}.
| 5 = {{Code|tablica_zmiennych}} | _5 = Jak w: {{LinkPatrz|tablica_zmiennych}}.
| 6 = {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} | _6 = Iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
}}
Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}.
Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (a gdy ona coś zwraca, to na nim jest uruchamiana funkcja: {{Code|IterowaniePoElementachTekstu}} {{LinkPatrz|IterowaniePoElementachTekstu}}, której definicja jest w: {{LinkŚródtytuł|IterowaniePoElementachTekstu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}), to na nim jest i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych.
Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
s2rd0pbdw6e9d3lzwol90s0zmuoujdu
Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom I
4
63902
560621
557515
2026-11-08T12:01:08Z
Persino
2851
560621
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|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.TekstWprowadzeniaTekstu}}{{Code|p.TekstWprowadzeniaTekstu}} ==
Funkcja liczy tekst pomiędzy dwoma rozdziałami o danych identyfikatorach {{Code|id}} na podstawie podanego tekstu do rozważań, który może posiadać rozdziały z tymi unikalnymi wartościami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.TekstWprowadzeniaTekstu(tekst,id_rozdzialu1,id_rozdzialu2)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst}} | _1 = Tekst do analizy, do uzyskania pomiędzy dwoma identyfikatorami tekstu,
| 2 = {{Code|id_rozdzialu1}} | _2 = Ten rozdział pierwszy, za którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany od poczatku, do pewnego identyfikatora,
| 3 = {{Code|id_rozdzialu2}} | _3 = Ten rozdział drugi, przed którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany do końca, od pewnego identyfikatora.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/TekstWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.TekstPoNapisieWprowadzeniaTekstuStrony}}{{Code|p.TekstPoNapisieWprowadzeniaTekstuStrony}} ==
Funkcja liczy tekst pomiędzy dwoma {{Code|id}} rozdziałami o danych identyfikatorach na podstawie wydobytego ze strony zawartości.
Ten tekst jest uzyskany z funkcji: {{LzLua|mw.title.makeTitle}}, na podstawie nazwy podanej jako pierwszy argument ramki tablicy transportu, funkcja też potrafić sprawdzić, czy uchwyt pliku jest prawidłowy lub czy plik istnieje, a także czy zawartość strony istnieje, bo np. chcelibyśmy policzyć zawartość strony w przestrzeni {{Np|Special|link=tak}} lub {{Np|Media|link=tak}}, wtedy wiadomo, że otrzymamy, że zawartość strony w tych przestrzeniach nazw nie istnieje, wyjątiem są inne istniejące strony, którego zawartość na pewno istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.TekstPoNapisieWprowadzeniaTekstuStrony(frame)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|frame}} | _1 = Tablica ramki funkcji rablicy transportu.
}}
{{OpisParametrów
| tytuł = Parametry ramki funkcji {{nobold|{{Code|frame}}}} tablicy transportu dziecka rodzica:
| 1 = {{Code|1}} | _1 = Nazwa strony do analizy (rozwijany funkcją: {{LzLua|frame:preprocess}}), którego chcemy sprawdzić zawartość strony, jeśli istnieje, pomiędzy dwoma {{Code|id}} rozdziałami - funkcja rozwija nazwę strony wwzględem tej funkcji,
| 2 = {{Code|2}} | _2 = Ten rozdział pierwszy, za którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany od poczatku, do pewnego identyfikatora,
| 3 = {{Code|3}} | _3 = Ten rozdział drugi, przed którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany do końca, od pewnego identyfikatora.
}}
=== Przykład przy pomocy szablonu z definicją z użytą tą funkcją ===
Popatrz na definicję przykładu, wywołującą w sobie ramkę {{lpg|Lua}} w {{lpr|Lua|Scribunto}} - szablonu: {{s|Wikibooks/Przykład/StronicowyParser/Rozdziały/TekstPoNapisieWprowadzeniaTekstuStrony/}}.
== {{Śródtytuł|p.ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony}}{{Code|p.ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony}} ==
Funkcja zwraca nagłówek (sekcję) rozwinięty, o danym identyfikatorze, na podstawie wydobytego ze strony jego zawartości.
Ten tekst jest uzyskany z funkcji: {{LzLua|mw.title.makeTitle}}, na podstawie nazwy podanej jako pierwszy argument ramki tablicy transportu, funkcja też potrafić sprawdzić, czy uchwyt pliku jest prawidłowy lub czy plik istnieje, a także czy zawartość strony istnieje, bo np. chcelibyśmy policzyć zawartość strony w przestrzeni {{Np|Special|link=tak}} lub {{Np|Media|link=tak}}, wtedy wiadomo, że otrzymamy, że zawartość strony w tych przestrzeniach nazw nie istnieje, wyjątiem są inne istniejące strony, którego zawartość na pewno istnieje.
Funkcja też uwzględnia, że dany rozdział w tekście może się powtarzać, i dlatego trzeba to robić za pomocą numerków przy {{Code|id}}, aby wyszukać ten ściśle określony .
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony(frame)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|frame}} | _1 = Tablica ramki tablicy transportu funkcji.
}}
{{OpisParametrów
| tytuł = Parametry ramki funkcji {{nobold|{{Code|frame}}}} tablicy transportu dziecka rodzica:
| 1 = {{Code|1}} | _1 = Nazwa strony - funkcja rozwija nazwę strony.
| 2 = {{Code|2}} | _2 = Identyfikator rozdzialu - domyślna wartość pusta.
}}
=== Przykład przy pomocy szablonu z definicją z użytą tą funkcją ===
Popatrz na definicję przykładu, wywołującą w sobie ramkę {{lpg|Lua}} w {{lpr|Lua|Scribunto}} - szablonu: {{s|Wikibooks/Przykład/StronicowyParser/Rozdziały/ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony/}}.
== {{Śródtytuł|p.NumerSekcjiStrony}}{{Code|p.NumerSekcjiStrony}} ==
Funkcja liczy numer sekcji rozdziału, który posiada dany identyfikator, na podstawie wydobytego ze strony zawartości.
Ten tekst jest uzyskany z funkcji: {{LzLua|mw.title.makeTitle}}, na podstawie nazwy podanej jako pierwszy argument ramki tablicy transportu.
Funkcja też potrafić sprawdzić, czy uchwyt pliku jest prawidłowy lub czy plik istnieje, a także czy zawartość strony istnieje, bo np. chcelibyśmy policzyć zawartość strony w przestrzeni {{Np|Special|link=tak}} lub {{Np|Media|link=tak}}, wtedy wiadomo, że otrzymamy, że zawartość strony w tych przestrzeniach nazw nie istnieje, wyjątiem są inne istniejące strony, którego zawartość na pewno istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.NumerSekcjiStrony(frame)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|frame}} | _1 = Tablica ramki funkcji rablicy transportu.
}}
{{OpisParametrów
| tytuł = Parametry ramki funkcji {{nobold|{{Code|frame}}}} tablicy transportu dziecka rodzica:
| 1 = {{Code|1}} | _1 = Nazwa strony do analizy (rozwijany funkcją: {{LzLua|frame:preprocess}}), którego chcemy sprawdzić zawartość strony, jeśli istnieje, pomiędzy dwoma id rozdziałami.
| 2 = {{Code|2}} | _2 = Ten rozdział pierwszy, za którym jest wyszukiwany tekst - domyślna wartość pusta.
}}
=== Przykład przy pomocy szablonu z definicją z użytą tą funkcją ===
Popatrz na definicję przykładu, wywołującą w sobie ramkę {{lpg|Lua}} w {{lpr|Lua|Scribunto}} - szablonu: {{s|Wikibooks/Przykład/StronicowyParser/Rozdziały/NumerSekcjiStrony/}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
tldr8cpisnx19o8yvcctwhevyi2oxo6
Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom II
4
63904
560622
560412
2026-11-08T12:08:30Z
Persino
2851
560622
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|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.NapisWprowadzeniaTekstu}}{{Code|p.NapisWprowadzeniaTekstu}} ==
Funkcja tworzy nagłówek rozdziału.
Dla poziomu większego niż zero, ale mniejszego niż siedem, zwraca nagłówek, np.: {{Code|{{=}}{{=}} Tekst rozdziału {{=}}{{=}}}}, a dla większego niż sześć kreuje je jako, np.: {{Code|<nowiki><h6 class=\"mw-hnumber mw-hnumber-7">Tekst rozdziału</h6></nowiki>}}.
Gdy {{Code|0 < poziom <{{=}} 6}} tworzony jest taki nagłówek, że z lewej i prawej strony jest tyle minimalnie równa się, ile wskazuje poziom. A dla większego niż sześć tworzony jest nagłówek za pomocą znacznika {{Code|<nowiki><h6></nowiki>}} z klasą ogólną {{Code|mw-hnumber}} plus {{Code|mw-hnumber-<poziom>}}, gdzie {{Code|<poziom>}}, to numer danego poziomu.
Funkcja pozwala tworzyć nagłówki o dowolnym poziomie większym niż zero, o ile {{lpg|Lua}} w {{lpr|Lua|Scribunto}} na to pozwoli, ze strony swoich ograniczeń.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.NapisWprowadzeniaTekstu(rozdzial,poziom)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|rozdzial}} | _1 = Tekst wnętrza rozdziału.
| 2 = {{Code|poziom}} | _2 = Numer całkowity dodatni poziomu.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/NapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.NapisWprowadzeniaTekstuHn}}{{Code|p.NapisWprowadzeniaTekstuHn}} ==
Funkcja dla rozdziału: na podstawie jej zawartości, poziomu i tabeli atrybutów, zamienia to na nagłówek w jednej linii.
Dla poziomu większego niż zero, ale mniejszego niż siedem, zwraca nagłówek, np.: {{Code|<nowiki><h3>Tekst rozdziału</h3></nowiki>}}, dla poziomu: {{Code|3}}, czy są używane wtedy są nagłówki od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}. A dla większego niż sześć tworzony jest nagłówek za pomocą znacznika {{Code|<nowiki><h6></nowiki>}} z klasą ogólną {{Code|mw-hnumber}} plus {{Code|mw-hnumber-<poziom>}}, gdzie {{Code|<poziom>}}, to numer danego poziomu, czyli coś w rodzaju, np. {{Code|<nowiki><h6 id="coś" class="mw-hnumber mw-hnumber-9">Tekst rozdziału</h6></nowiki>}}, dla poziomu: {{Code|9}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.NapisWprowadzeniaTekstuHn(rozdzial,poziom,tab_atrybuty)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|rozdzial}} | _1 = Tekst rozdziału.
| 2 = {{Code|poziom}} | _2 = Poziom rozdziału.
| 3 = {{Code|tab_atrybuty}} | _3 = Tabela nazw (kluczy) i ich wartości atrybutów.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/NapisWprowadzeniaTekstuHn/}}.
== {{Śródtytuł|p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego}}{{Code|p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego}} ==
Funkcja sprawdzająca, czy we podanym rozdziale, dodatnim lub ujemnym, o pewnym formacie, który musi istnieć, jako format szablonu {{s|HNumer}}, czy istnieje w nim element (obiekt), w postaci zakodowanej, o kodzie: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, który nie zawiera w sobie żadnej nowej linii, a jak nie zawiera, to czy ten element jest bezpośrednio elementem rozdziału napisanego wewnątrz tego szablonu.
Defnicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego(tekst,zawartosc,obiekt,kod)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst}} {{LinkPatrz|tekst|StronicowyParser/Rozdziały}} | _1 = Tekst zawartości pierwszego parametru wspomnianego szablonu.
| 2 = {{Code|zawartość}} {{Patrz|zawartosc}} | _2 = Zawartość elementu kodu.
| 3 = {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} | _3 = Jaki to jest obiekt, np. {{Code|ZNACZNIK}}.
| 4 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}} | _4 = Kod danego obiektu.
}}
Funkcja wykorzystuje do swojego liczenia instrukcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{LinkPatrz|NormaWzoruKodowaniaTekstu|StronicowyParser/Rozdziały}}, aby policzyć kod pewnego elementu mając zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, aby wykorzystać ta metodę.
Przykłady użycia, używając omawianego szablonu:
<syntaxhighlight lang="mediawiki">
{{HNumer|1= === Oto jest tekst <span class="plainlinks">Zawartość znacznika</span> ===}}
{{HNumer|1= * Oto jest tekst <span class="plainlinks">Zawartość znacznika</span>}}
</syntaxhighlight>
Zmienną {{Code|tekst}} w nich kolejno, które należy zakodować odpowiednio właściwą funkcją, aby otrzymać odpowiednio ich wersje zakodowane, tej zmiennej, aby móc operować tą funkcją, w przeciwnym wypadku tej funkcji nie ma sensu używać, bo otrzymamy nieprzewidywalne skutki:
<syntaxhighlight lang="lua">
local tekst="=== Oto jest tekst <span class=\"plainlinks\">Zawartość znacznika</span> ===";
local tekst="* Oto jest tekst <span class=\"plainlinks\">Zawartość znacznika</span>";
</syntaxhighlight>
A {{Code|zawartosc}} kolejno, która mieści się w wersji zakodowanej zmiennej {{Code|tekst}} (tutaj mamy wersje jego niezakodowaną):
<syntaxhighlight lang="lua">
local zawartosc="Zawartość znacznika";
local zawartosc="Zawartość znacznika";
</syntaxhighlight>
W obu przykładach szablon zwraca wartość: {{Code|true}} (bo w tej ostatniej zmiennej nie ma nowej linii), pod warunkiem, że znacznik: {{Code|<nowiki><span class="plainlinks">Zawartość znacznika</span></nowiki>}}, jest zakodowany w zmiennej {{Code|tekst}}, i jest częścią zmiennej tej wersji, co jest uwidocznione kodem, według dwóch kolejnych sprawdzeń wykluczających się:
<syntaxhighlight lang="lua">
if(mw.ustring.match(tekst,"\n=+[^\n]*"..kod_norma_wzoru_obiektu.."[^\n]*=+[^%S\n]*\n"))then return true;end;
if(mw.ustring.match(tekst,"\n[:#%*;]+[^\n]*"..kod_norma_wzoru_obiektu.."[^\n]*\n"))then return true;end;
</syntaxhighlight>
Widzimy, że ten znacznik musi leżeć bezpośrednio w zakodowanym tekście (to musi być zakodowane, bo w przeciwnym wypadku nie ma o czym mówić).
== {{Śródtytuł|p.NapisWprowadzeniaTekstuHNumer}}{{Code|p.NapisWprowadzeniaTekstuHNumer}} ==
Generuje napis wprowadzenia tekstu według szablonu {{s|HNumer}}, w którym parametrach szablonów jest równaniowy nagłówek.
Szablon dla {{Code|0 < poziom <{{=}} 6}} poziomów, np.: {{Code|{{=}}{{=}} Tekst rozdziału {{=}}{{=}}}}, podaje poziom napisu wprowadzenia tekstu przy pomocy funkcji: {{Code|{{sr|#p.PodajNapisPoziomuWprowadzeniaTekstu}}}}, i go zamienia na znaczniki od: {{Code|<nowiki><h1></nowiki>}} do {{Code|<nowiki><h6></nowiki>}}, a dla {{Code|poziom > 6}}, tworzy inny nagłówek, dla {{Code|<nowiki>======== Tekst rozdziału ========</nowiki>}}, tworzy: {{Code|<nowiki><h6 class="mw-hnumber mw-hnumber-8">Tekst rozdziału</h6></nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.NapisWprowadzeniaTekstuHNumer(parametr)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|parametr}} | _1 = Napisz wprowadzenia tekstu dodatni, czyli napisany za pomocą znaku {{Code|{{=}}}}, rozdziały napisane za pomocą list, tzn. napisane tak by zaczynały się od: {{Code|<nowiki>#*:;</nowiki>}}, odpadają, inne listy znacznikowe też.
}}
Przykłady użycia reprezentujące dwa rozłączne formy przedstawiające nagłówki, napisane tym samym sposobem:
<syntaxhighlight lang="mediawiki">
{{HNumer|1= === Tekst rozdziału ===}}
{{HNumer|1= ======= Tekst rozdziału =======}}
</syntaxhighlight>
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/NapisWprowadzeniaTekstuHNumer/}}.
== {{Śródtytuł|p.PodajNapisPoziomuWprowadzeniaTekstu}}{{Code|p.PodajNapisPoziomuWprowadzeniaTekstu}} ==
Szablon na podstawie dowolnego nagłówka dodatniego równaniowego, tzn. o poziomie o dobrowolnej liczbie, tzn. jego poziom może być: {{Code|poziom > {{=}} 1}}, a nie {{Code|1 <{{=}} poziom <{{=}} 6 }}, równa się, czyli np.: {{Code|<nowiki>====== Tekst nagłówka ======</nowiki>}}, takie poziomy są jedynie interpretowalne przez '''{{NS|k=mw|l=tak|w=tak}}''', a ta funkcja również uwzględnia poziomy: {{Code|poziom > 6}}, czyli o liczbie {{Code|{{=}}}} z prawej i lewej strony nagłówka o większej liczbie niż sześć.
Metoda podaje jego zawartość (nagłówek jest trimowany funkcją: {{LzLua|mw.text.trim}}) i poziom, jako dwa kolejne parametry zwracane, tzn. {{Code|naglowek, poziom}}, przez nią.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PodajNapisPoziomuWprowadzeniaTekstu(linia)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _1 = Parametr przedstawiający linię rozważanego tekstu, ona może być zakodowana.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/PodajNapisPoziomuWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.PodajTekstHNumerNapisuWprowadzeniaTekstu}}{{Code|p.PodajTekstHNumerNapisuWprowadzeniaTekstu}} ==
Szablon podaje zawartość nagłówka rozdziału od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, i jego poziom, czyli liczba stojąca przy {{Code|h}}, tzn, jak mamy {{Code|<nowiki><h5></nowiki>}}, to tą liczbą jest {{Code|5}}.
W innych przypadkach szablon zwraca zamiast liczby wartość {{Code|nil}}, np. gdy tag znacznika końcący nagłówek nie zgadza się z tym rozpoczynającym, lub gdy liczba przy {{Code|h}} jest większa niż {{Code|6}}, czyli: {{Code|<nowiki><h7></nowiki>}}, albo gdy np. mamy: {{Code|<nowiki><h67></nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PodajTekstHNumerNapisuWprowadzeniaTekstu(linia)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|linia}} | _1 = Linia rozważanego tekstu, w tekście musi mieścić się ten znacznik, choćby jeden, on nie musi się rozpoczynać na samym początku, a kończyć się na samym końcu, wnętrze jego najlepiej by było zakodowane, najlepiej, by był w nim to znacznik tylko jeden w samej linii zawarty bezpośrednio tam, aby on cały był jednocześnie tą linią.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/PodajTekstHNumerNapisuWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.CzyJestNapisWprowadzeniaTekstu}}{{Code|p.CzyJestNapisWprowadzeniaTekstu}} ==
Funkcja podaje, czy w podanym tekście, jest jakikolwiek nagłówek dodatni, tzn. czy napisany za pomocą {{Code|{{=}}}}, tzn. np. {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}}, w zakodowanym tekście.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyJestNapisWprowadzeniaTekstu(zawartosc)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|zawartosc}} | _1 = Tekst, jak w: {{LinkPatrz|zawartosc}}, w którym zawarty jest jakikolwiek nagłówek, ono musi być zakodowane.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyJestNapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.CzyJestListaNapisuWprowadzeniaTekstu}}{{Code|p.CzyJestListaNapisuWprowadzeniaTekstu}} ==
Funkcja sprawdza, czy w tekście występuje nagłówek ujemny, czyli napis wprowadzenia tekstu, w postaci listy zaczynającej się od nowej linii: {{Code|<nowiki>[;%*:#]</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|zawartosc}} | _1 = Tekst, jak w: {{LinkPatrz|zawartosc}}, w który ma znajdować napis wprowadzenia tekstu w postaci listy.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyJestListaNapisuWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}}{{Code|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}} ==
Funkcja sprawdzająca, czy w tekście jest jakolwiek nagłówek podany w postaci dodatniej równaniowej lub nagłówków w postaci znaczników: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}.
Definicja skrótowa funkcji
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|wiersz}} | _1 = Czy w tekście jest wiersz z takim opisywanym nagłókiem.
}}
Funkcja używa do sprawdzenia: {{Code|{{sr|#p.CzyJestNapisWprowadzeniaTekstu|b=tak}}}} (czy to jest rozdział dodatni) i {{Code|{{sr|#p.PodajTekstHNumerNapisuWprowadzeniaTekstu|b=tak}}}} (czy ujemny).
{{OpisParametrów
| tytuł = Wartość zwracana:
| 1 = Czy takie dopasowanie znaleziono, możliwe wartości: {{Code|true/false}}. | komórka1 = tak
| 2 = Czy jest to rozdział dodatni równaniowy, wtedy {{Code|true}}, przeciwnie {{Code|false}}. | komórka2 = tak
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/SprawdzanieCzyToJestNapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.WierszHNumer}}{{Code|p.WierszHNumer}} ==
Funkcja w nagłówkach od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, usuwa w nich znaki nowych linii, zamieniając w nich po kolei na spację, i dodaje z lewej (przed znacznikiem) i prawej (po) stronie tego nagłówka znak nowej linii: {{Code|\n}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WierszHNumer(tekst)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst}} | _1 = Parametr z tymi nagłówkami.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/WierszHNumer/}}.
== {{Śródtytuł|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}}{{Code|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}} ==
Mając napis rozdziału wraz z numeracją, funkcja liczy właściwy napis i numerację w osobnych po kolei parametrach.
Funkcja jest skomplikowana, analizująca, czy numeracja jest poprawna, czy nie, jeśli numeracja jest poprawna, to ona zwraca rozdział bez numeracji i samą numerację, a jeśli nie, to cały rozdział i numerację, będącą ciągiem pustym.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|rozdzial_z_numeracja}} | _1 = Rozdzial z numeracją lub bez.
}}
{{OpisParametrów
| tytuł = Zwracane wartości:
| 1 = {{Code|rozdzial}} | _1 = Rozdzial bez numeracji,
| 2 = {{Code|numetracja}} | _2 = Numeracja.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu/}}.
== {{Śródtytuł|p.CzyZerowyNapisWprowadzeniaTekstu}}{{Code|p.CzyZerowyNapisWprowadzeniaTekstu}} ==
Funkcja sprawdza, czy napis wprowadzenia tekstu, który nie jest dodatni, tzn. np.: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}} (czyli określony wzorem: {{Code|<nowiki>=+[^\n]*[^=]+[^\n]*=+[^%S\n]*</nowiki>}}), ani np.: linia opisywana formułą: {{Code|<nowiki>\n[:#%*;]+[^\n]*</nowiki>}}, zatem to jest przepis na definicję na tą funkcję, ale nie do końca, bo w tej funkcji pierwszy parametr nie może opisywać tego, ani tego.
Funkcja zwraca dwa parametry, tzn. otrzymany rozdział i wartość: {{Code|true/false}}. Wartość {{Code|true}} mówi o rozdziale zerowym, a przeciwna wartość, że taki on nie jest. Także funkcja może zwracać wartość {{Code|nil}}, to determiniuje, że to nie jest rozdział wcale zerowy, czyli rozdział świadczący, że to jest zerowy, nie musi być wcale zerowy.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyZerowyNapisWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _1 = Rozważana zakodowana linia, która może być rozdziałem zerowym, ale ona nie może być dodatnia, ani ujemna.
| 2 = {{Code|pelna_nazwa_spisu_tresci}} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 3 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _3 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _5 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
}}
Do liczenia rozdziału spisu treści (rzeczy) funkcja wykorzystuje z modułu {{Code|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}}}: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}} - funkcja sprawdzająca {{Code|true/nil}}, czy w tekście znajduje się rozdział, który jest o nazwie typu: {{Code|Spis treści}} ({{Code|Spis rzeczy}}) - niezależnie jakimi literami napisany, ile tam jest odstępów, a do kompletowania (rozwijania) rozdziałów, służy do tego z {{Code|{{ld2|StronicowyParser/SpisTreści}}}}: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}.
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyZerowyNapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu}}{{Code|p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu}} ==
Funkcja sprawdza, czy strona jest z przedrostkiem listy: {{Code|:}}, a dla tego, czy linia jest w cudzysłowach pojedyńczych podwójnych, a jeżeli to nie jest prawda, to funkcja zwraca wynik {{Code|false}}, normalnie przy braku parametru linkowego: {{Code|z_parametrami_linkowymi}} {{LinkPatrz|z_parametrami_linkowymi}}, lub przy jej wartości fałszywej, funkcja zwraca wynik {{Code|true}}, w przeciwnym wypadku on rewiduje, czy w lini są artykuły aktualnej ksiązki, wtedy ona zwraca wynik {{Code|false}}, a jeżeli nie, to zwracany w przeciwnym wypadku jest wynik {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia,z_parametrami_linkowymi,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|przedrotek_listy}} {{Patrz|przedrotek_listy}} | _1 = Przedrostek listy z linią {{Code|linia}}.
| 2 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _2 = Linia bez przedrostka.
| 3 = {{Code|z_parametrami_linkowymi}} {{Patrz|z_parametrami_linkowymi}} | _3 = Wartość {{Code|false}}, aby nie sprawdzał właśności artykularnych artykułów na linku, wtedy funkcja na samym końcu przy sprawdzedniu tego parametru, a jeżeli ta wartość, to wtedy otrzymany wynik z funkcji to {{Code|true}}, przeciwnym funkcja idzie dalej.
| 4 = {{Code|nazwa_przestrzeni}} | _4 = Jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, i {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}} - parametry nazw książki.
| 5 = {{Code|nazwa_spisu_tresci}} | _5 = Jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 6 = {{Code|pelna_nazwa_spisu_tresci}} | _6 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 7 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _7 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _8 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _9 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
| 10 = {{Code|tab_nazwa_spisow_przekierowaniowych}} | _10 = Jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}}.
}}
Funckja wykorzustuje: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|NormaWzoruKodowaniaTekstu|StronicowyParser/Rozdziały}}, {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu|StronicowyParser/Rozdziały}}, i {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} - jak w: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki|StronicowyParser/Rozdziały}}.
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu/}}.
== {{Śródtytuł|p.HnNumerWprowadzeniaTekstu}}{{Code|p.HnNumerWprowadzeniaTekstu}} ==
Funkcja zwraca numer poziomu nagłówka od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}. Jeśli poziom jest mniejszy niż 6, wtedy wynik zwracany tej funkcji jest liczbą stojącą przy {{Code|h}}.
Gdy mamy {{Code|<nowiki><h6></nowiki>}}, jeżeli ten znacznik nie ma klasy ('''class''') atrybutu: {{Code|<nowiki>mw-hnumber-<liczba></nowiki>}}, to zwracane jest: 6, w przeciwnym wypadku daje to wynik, którym jest: {{Code|<liczba>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.HnNumerWprowadzeniaTekstu(nazwa,atrybuty)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|nazwa}} | _1 = Nazwa tagu typu {{Tag|h<numer>}}, gdzie: {{Code|<nowiki>0 < numer < 7</nowiki>}}.
| 2 = {{Code|atrybuty}} | _2 = Tabela atrybutów, których z jedną z elementów może być opcja: '''class'''.
}}
Funkcja wykorzystuje podtablicę: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, tablicy transportu, którego link ma referencje do jej opisu, zdefiniowany w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}, definicja jej jest w:
{{Tbl|uchwyt=p.znaczniki_wprowadzenia_tekstu|tekst=
<syntaxhighlight lang="lua">
p.znaczniki_wprowadzenia_tekstu={
["h1"]=1,
["h2"]=2,
["h3"]=3,
["h4"]=4,
["h5"]=5,
["h6"]=6,
};
</syntaxhighlight>}}
Funkcja posługuje się jedynie na tych typach znaczników, a nie innych.
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu/}}.
== {{Śródtytuł|p.NumeracjaOrazTekstWprowadzeniaTekstu}}{{Code|p.NumeracjaOrazTekstWprowadzeniaTekstu}} ==
Funkcja zwraca numerację i rozdział całego rozdziału.
Funkcja jest bardzo prosta, ponieważ nie analizuje numeracji, czy jest poprawnie podana, czy nie.
Zawartość rozdziału musi się składać z numeracji, składający się z numerków oddzielonych kropkami - tutaj też mogą być dwie kropki koło siebie, albo numeracja może składać się z samych kropek, chociaż to jest niepoprawne, ale tak może być, na końcu numeracji może być też krokpa, po nim znajduje się właściwy rozdział zawartości tej wielkiej zawartości (rozdziału). A gdy numeracja nie istnieje, to zamiast niego zwracaną wartością jest wartość pusta.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.NumeracjaOrazTekstWprowadzeniaTekstu(zawartosc)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|zawartosc}} | _1 = Zawartość rozdziału, jak w: {{LinkPatrz|zawartosc}}.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/NumeracjaOrazTekstWprowadzeniaTekstu/}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
0cc5h2bcm99bp0sdoruwhlkpwehrv28
Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom III
4
63905
560623
560413
2026-11-08T12:12:54Z
Persino
2851
560623
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|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.CzyJestJakikolwiekLinkArtykularnyTekstu}}{{Code|p.CzyJestJakikolwiekLinkArtykularnyTekstu}} ==
Funkcja sprawdza na podstawie artykułu spisu treści, czy są w nim linki artykularne, które generują szablony, w postaci: {{s|SpisTreści}}, {{s|Sekcja referencyjna}} (lub jego skrót: {{s|Sr}}), {{s|Link wewnętrzny}} (lub jego skrót: {{s|Ly}}), {{s|LinkOgólne}} (lub jego skrót: {{s|Lo}}), czyli linki według tabeli:
{{Tbl|uchwyt=p.linki_szablony_elementy_spisu_rzeczy|tekst=
<syntaxhighlight lang="lua">
p.linki_szablony_elementy_spisu_rzeczy={
["SpisTreści"]=true,
["Sekcja referencyjna"]=true,
["Sr"]=true,
["Link wewnętrzny"]=true,
["Ly"]=true,
["LinkOgólne"]=true,
["Lo"]=true,
};
</syntaxhighlight>}}
Tablica opisana w: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}}. Albo inne generujące części spisu treści: {{s|SpisPozycja}} i {{s|SpisZw}}, na podstawie, które są elementami z {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
{{Tbl|uchwyt=p.inne_linki_szablony_elementy_spisu_rzeczy|tekst=
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>}}
Tablica opisana w: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}}. Te tablice są zdefiniowane w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
Bądź szablony linków inteligentnych. Ewentualnie ich skróty, artykułów sprawdzane przy pomocy funkcji: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}}, te szablony mieszczą się w kategorii: {{Code|{{lk2|Szablony linków inteligentnych}}}}, i ich skróty w: {{Code|{{lk2|Przekierowania skrótów do szablonów linków inteligentnych}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyJestJakikolwiekLinkArtykularnyTekstu(tekst,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst}} {{LinkPatrz|tekst|StronicowyParser/Rozdziały}} | _1 = Tekst do sprawdzenia, czy zawiera zakodowane linki artykularne, w postaci szablonów.
| 2 = {{Code|pelna_nazwa_spisu_tresci}} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 3 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _3 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _5 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
}}
{{OpisParametrów
| tytuł = Funkcja wykorzystuje:
| 1 = {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} | _1 = Jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu|StronicowyParser/Rozdziały}}.
| 2 = {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=Szablonowe}}}} | _2 = Jednocześnie można powiedzieć, że on sprawdza, czy to jest link inteligentny.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyJestJakikolwiekLinkArtykularnyTekstu/}}.
== {{Śródtytuł|p.CzyJestInnySpecjalnyTekstowyObiekt}}{{Code|p.CzyJestInnySpecjalnyTekstowyObiekt}} ==
Funkcja sprawdza, czy jest obiekt zakodowany o kodzie: {{Code|INNEPRE}}, {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|MATH}}, {{Code|GALERIA}} i {{Code|MAPAOBRAZU}}, a co oznaczają te kody, to można zobaczyć w dokumentacji: '''{{sr|Szablonowe|Parsera ogólnych reguł Szablonowe}}''', wtedy funkcja zwraca wynik {{Code|true}}, w przeciwnym wypadku {{Code|false}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyJestInnySpecjalnyTekstowyObiekt(tekst,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst}} {{LinkPatrz|tekst|StronicowyParser/Rozdziały}} | _1 = Tekst do policzenia, zawierające elementy z omawianymi kodami.
| 2 = {{Code|pelna_nazwa_spisu_tresci}} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
}}
Funkcja używa iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu|StronicowyParser/Rozdziały}}.
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyJestInnySpecjalnyTekstowyObiekt/}}.
== {{Śródtytuł|p.__FUNKCJA_KOMPLETOWANIA}}{{Code|p.__FUNKCJA_KOMPLETOWANIA}} ==
Funkcja kompletowania, sprawdza, czy nazwa szablonu jest jedna z wielu, tzn.: {{s|Kompletność}}, {{s|Kompletność krótka}}, {{s|Kompletność junior}} i {{s|Książka}}, wtedy zwraca wartość: {{Code|true}}, w przeciwnym wypadku: {{Code|nil}}, a tabela dzięki, któremu to wszystko się dzieje, przedstawia się w formie:
{{Tbl|uchwyt=p.szablony_kompletowania_stron_woluminu|tekst=
<syntaxhighlight lang="lua">
p.szablony_kompletowania_stron_woluminu={
["Kompletność"]=true,
["Kompletność krótka"]=true,
["Kompletność junior"]=true,
["Książka"]=true,
};
</syntaxhighlight>}}
Ta tabela mieści się w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}, opisana w: {{Code|{{sr|#p.szablony_kompletowania_stron_woluminu|p=StronicowyParser/obiekty}}}}, wraz z innymi tabelami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.__FUNKCJA_KOMPLETOWANIA(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
| 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
| 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
| 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
| 5 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}} | _5 = Kod, dla jego typu {{Code|SZABLON}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, potrzebny do poprzedniej tabeli.
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/__FUNKCJA_KOMPLETOWANIA/}}.
== {{Śródtytuł|p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu}}{{Code|p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu}} ==
Funkcja usuwa dolne myślniki i odstępy na końcach podanego tekstu oraz zamienia kolejne je wewnątrz tekstu na jeden dolny myślnik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(tekst)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst}} | _1 = Tekst do przerobienia.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.ObiektySzablonoweFormatowaniaTekstu}}{{Code|p.ObiektySzablonoweFormatowaniaTekstu}} ==
Funkcja, która zastępuje szablony ich ściśle okreslonymi parametrami, ale nie normalnie wszystkimi, według danych, które zwykle są tabelami z modulu: {{Code|{{ld2|StronicowyParser/obiekty}}}}, ale nie zawsze, bo taką tabelę można skonstrułować i włanorecznie podać do tej procedury.
Przykładową tą tabelą, którą można znaleźć pod tym modułem, o którym wspomnialiśmy, jest:
{{Tbl|uchwyt=p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|tekst=
<syntaxhighlight lang="lua">
p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu={
["Kolumny"]=2,---- Tutaj parametry, więcej niż jeden, oddzielamy średnikami, ale tutaj mamy jedynie jeden parametr, więc średniki nie są tutaj potrzebne;
};
</syntaxhighlight>}}
Jest to tablica zdefiniowana w: {{Code|{{ld2|StronicowyParser/obiekty}}}}, opisana w: {{Code|{{sr|#p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu}}.
Funkcja zwraca zawartości właśnie tych kolejnych parametrów, jeśli w szablonie istnieją.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|szablon}} | _1 = Szablon, który chcemy zastąpić odpowiednimi, nie wszystkimi, jego parametrami.
| 2 = {{Code|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu}} | _2 = Tabela informująca, które parametry szablonu należy zastąpić parametrami, tutaj parametry są oddzielone średnikami.
| 3 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} |_3 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
| 5 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}} | _5 = Kod, dla obiektu {{Code|SZABLON}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, będący jednocześnie częścią kodów bazy, czyli: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/ObiektySzablonoweFormatowaniaTekstu/}}.
== {{Śródtytuł|p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu}}{{Code|p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu}} ==
Szablon zamieniający wywołania szablonów w tekście na ich odpowiednie wartości, które przedstawiają się za pomocą dodatków o ogólnym wzorze: {{Code|<nowiki>$(<name>)</nowiki>}}. Przykładowa tabela z tymi dodatkami jest w: {{Code|{{ld2|StronicowyParser/obiekty}}}}, a w nim tabela:
{{Tbl|uchwyt=p.szablony_z_dodatkiem_obiektowym|tekst=
<syntaxhighlight lang="lua">
p.szablony_z_dodatkiem_obiektowym={
["ISBN"]="ISBN $(1)";
};
</syntaxhighlight>}}
Opisana w: {{Code|{{sr|#p.szablony_z_dodatkiem_obiektowym|p=StronicowyParser/obiekty}}}}. Pierwszym elementem (kluczem) jest nazwa szablonu, a wartością tego elementu jest przepis, jak zastąpić ten szablon nim, a właściwie w nim dodatek, robiąc jeszcze dodatkowe operacje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu(szablon,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} | _1 = Zakodowany szablon, z możliwym dodatkiem, w nazwie szablonu.
| 2 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 3 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _3 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
| 4 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}} | _4 = Kod dla obiektu {{Code|SZABLON}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}.
}}
Funkcja na podstawie użytych elementów z: {{Code|{{ld2|Techniczne}}}}, wykonuje operacje na parametrach, używając procedur dla nazw argumentów: {{Code|{{sr|#p["PrzekształćWzórDoCzystegoTekstu"]|p=Techniczne}}}}, i jego wartościach: {{Code|{{sr|#p["TekstBezOdwołańDoParametrówWeWzorze"]|p=Techniczne}}}}, zamieniając elementy typu: {{Code|(<name>)}}, gdzie {{Code|name}}, to nazwa argumentu, na ich wartości.
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu/}}.
== {{Śródtytuł|p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii}}{{Code|p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii}} ==
Funkcja zamienia znaczniki nowej linii: {{Code|<nowiki><br /></nowiki>}} i kreski poziomej {{Code|<nowiki><hr /></nowiki>}}, a także szablony, ich odpowiedniki wersji znacznikowych, tzn. kolejno: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, na jedną wartość: {{Code|\n\n }} (który charakteryzuje trzy linie, ostatnia linia ma początku ma spację, aby ona przypadkiem nie była traktowana, jako np. rozdział), ustaloną przez nią.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst}} {{LinkPatrz|tekst|StronicowyParser/Rozdziały}} | _1 = Zakodowany tekst, na którym operujemy.
| 2 = {{Code|pelna_nazwa_spisu_tresci}} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 3 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _3 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _5 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
| 6 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} |_6 = Jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}.
| 7 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} | _7 = Jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii/}}.
== {{Śródtytuł|p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia}}{{Code|p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia}} ==
Funkcja łączy linie w jedną linię, pomiędzy liniami, które nie udało się połączyć z nimi, a jakie to są linie, otóż te, które reprezentują rozdziały, takie jak: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}}, i linie reprezentowane przez listy, które zaczynają się na: {{Code|<nowiki>[;%*:#]</nowiki>}}. Też nie zostaną połączone z innymi, które zawierają szablony: {{Code|{{s|SpisPozycja}}}}, {{Code|{{s|SpisZw}}}} i {{Code|{{s|SpisTreści}}}}, te szablony sa umieszczone w tabeli, na stronie: {{Code|{{ld2|StronicowyParser/obiekty}}}}, tzn.:
{{Tbl|uchwyt=p.szablony_w_nie_w_tej_samej_linii|tekst=
<syntaxhighlight lang="lua">
p.szablony_w_nie_w_tej_samej_linii={
["SpisPozycja"]=true,
["SpisZw"]=true,
["SpisTreści"]=true,
};
</syntaxhighlight>}}
Tabela opisana w: {{Code|{{sr|#p.szablony_w_nie_w_tej_samej_linii|p=StronicowyParser/obiekty}}}}. Funkcja w wewnątrz linii każdy znacznik: {{Code|<nowiki><br /></nowiki>}} lub {{Code|<nowiki><hr /></nowiki>}} albo {{Code|{{s|Br}}}} lub {{Code|{{s|Hr}}}}, zamienia na {{Code|\n\n }} (przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii|b=tak}}}}), co potem odpowiada trzem liniom, linia pośrodku jest pusta (lub biała), a jeżeli taki znacznik szablonowy, czy znacznikowy, jest na końcu linii, czyli po prostu, wtedy mamy, jeśli: {{Code|<nowiki>^(.*\n)[^%S\n]*\n[^%S\n]*$</nowiki>}}, co odpowiada dwom oddzielnym liniom, na jakie dzielona jest ona, w końcowym tekście.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(tekst,nazwa_modulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_obiektow_strony_dany_modul_uzyskany,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst}} {{LinkPatrz|tekst|StronicowyParser/Rozdziały}} | _1 = Zakodowany tekst, na którym operujemy.
| 2 = {{Code|pelna_nazwa_spisu_tresci}} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 3 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _3 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 4 = {{Code|tablica_obiektow_strony_dany_modul_uzyskany}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _5 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
| 6 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} | _6 = Jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}.
| 7 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} | _7 = Jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia/}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
2au5kc9hoixwetb4b459sumq6jp9ult
560624
560623
2026-11-08T12:13:22Z
Persino
2851
/* {{Śródtytuł|p.__FUNKCJA_KOMPLETOWANIA}}{{Code|p.__FUNKCJA_KOMPLETOWANIA}} */
560624
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|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.CzyJestJakikolwiekLinkArtykularnyTekstu}}{{Code|p.CzyJestJakikolwiekLinkArtykularnyTekstu}} ==
Funkcja sprawdza na podstawie artykułu spisu treści, czy są w nim linki artykularne, które generują szablony, w postaci: {{s|SpisTreści}}, {{s|Sekcja referencyjna}} (lub jego skrót: {{s|Sr}}), {{s|Link wewnętrzny}} (lub jego skrót: {{s|Ly}}), {{s|LinkOgólne}} (lub jego skrót: {{s|Lo}}), czyli linki według tabeli:
{{Tbl|uchwyt=p.linki_szablony_elementy_spisu_rzeczy|tekst=
<syntaxhighlight lang="lua">
p.linki_szablony_elementy_spisu_rzeczy={
["SpisTreści"]=true,
["Sekcja referencyjna"]=true,
["Sr"]=true,
["Link wewnętrzny"]=true,
["Ly"]=true,
["LinkOgólne"]=true,
["Lo"]=true,
};
</syntaxhighlight>}}
Tablica opisana w: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}}. Albo inne generujące części spisu treści: {{s|SpisPozycja}} i {{s|SpisZw}}, na podstawie, które są elementami z {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
{{Tbl|uchwyt=p.inne_linki_szablony_elementy_spisu_rzeczy|tekst=
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>}}
Tablica opisana w: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}}. Te tablice są zdefiniowane w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
Bądź szablony linków inteligentnych. Ewentualnie ich skróty, artykułów sprawdzane przy pomocy funkcji: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}}, te szablony mieszczą się w kategorii: {{Code|{{lk2|Szablony linków inteligentnych}}}}, i ich skróty w: {{Code|{{lk2|Przekierowania skrótów do szablonów linków inteligentnych}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyJestJakikolwiekLinkArtykularnyTekstu(tekst,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst}} {{LinkPatrz|tekst|StronicowyParser/Rozdziały}} | _1 = Tekst do sprawdzenia, czy zawiera zakodowane linki artykularne, w postaci szablonów.
| 2 = {{Code|pelna_nazwa_spisu_tresci}} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 3 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _3 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _5 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
}}
{{OpisParametrów
| tytuł = Funkcja wykorzystuje:
| 1 = {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} | _1 = Jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu|StronicowyParser/Rozdziały}}.
| 2 = {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=Szablonowe}}}} | _2 = Jednocześnie można powiedzieć, że on sprawdza, czy to jest link inteligentny.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyJestJakikolwiekLinkArtykularnyTekstu/}}.
== {{Śródtytuł|p.CzyJestInnySpecjalnyTekstowyObiekt}}{{Code|p.CzyJestInnySpecjalnyTekstowyObiekt}} ==
Funkcja sprawdza, czy jest obiekt zakodowany o kodzie: {{Code|INNEPRE}}, {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|MATH}}, {{Code|GALERIA}} i {{Code|MAPAOBRAZU}}, a co oznaczają te kody, to można zobaczyć w dokumentacji: '''{{sr|Szablonowe|Parsera ogólnych reguł Szablonowe}}''', wtedy funkcja zwraca wynik {{Code|true}}, w przeciwnym wypadku {{Code|false}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyJestInnySpecjalnyTekstowyObiekt(tekst,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst}} {{LinkPatrz|tekst|StronicowyParser/Rozdziały}} | _1 = Tekst do policzenia, zawierające elementy z omawianymi kodami.
| 2 = {{Code|pelna_nazwa_spisu_tresci}} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
}}
Funkcja używa iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu|StronicowyParser/Rozdziały}}.
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyJestInnySpecjalnyTekstowyObiekt/}}.
== {{Śródtytuł|p.__FUNKCJA_KOMPLETOWANIA}}{{Code|p.__FUNKCJA_KOMPLETOWANIA}} ==
Funkcja kompletowania, sprawdza, czy nazwa szablonu jest jedna z wielu, tzn.: {{s|Kompletność}}, {{s|Kompletność krótka}}, {{s|Kompletność junior}} i {{s|Książka}}, wtedy zwraca wartość: {{Code|true}}, w przeciwnym wypadku: {{Code|nil}}, a tabela dzięki, któremu to wszystko się dzieje, przedstawia się w formie:
{{Tbl|uchwyt=p.szablony_kompletowania_stron_woluminu|tekst=
<syntaxhighlight lang="lua">
p.szablony_kompletowania_stron_woluminu={
["Kompletność"]=true,
["Kompletność krótka"]=true,
["Kompletność junior"]=true,
["Książka"]=true,
};
</syntaxhighlight>}}
Ta tabela mieści się w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}, opisana w: {{Code|{{sr|#p.szablony_kompletowania_stron_woluminu|p=StronicowyParser/obiekty}}}}, wraz z innymi tabelami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.__FUNKCJA_KOMPLETOWANIA(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
| 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
| 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
| 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
| 5 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}} | _5 = Kod, dla jego typu {{Code|SZABLON}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, potrzebny do poprzedniej tabeli.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/__FUNKCJA_KOMPLETOWANIA/}}.
== {{Śródtytuł|p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu}}{{Code|p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu}} ==
Funkcja usuwa dolne myślniki i odstępy na końcach podanego tekstu oraz zamienia kolejne je wewnątrz tekstu na jeden dolny myślnik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(tekst)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst}} | _1 = Tekst do przerobienia.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.ObiektySzablonoweFormatowaniaTekstu}}{{Code|p.ObiektySzablonoweFormatowaniaTekstu}} ==
Funkcja, która zastępuje szablony ich ściśle okreslonymi parametrami, ale nie normalnie wszystkimi, według danych, które zwykle są tabelami z modulu: {{Code|{{ld2|StronicowyParser/obiekty}}}}, ale nie zawsze, bo taką tabelę można skonstrułować i włanorecznie podać do tej procedury.
Przykładową tą tabelą, którą można znaleźć pod tym modułem, o którym wspomnialiśmy, jest:
{{Tbl|uchwyt=p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|tekst=
<syntaxhighlight lang="lua">
p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu={
["Kolumny"]=2,---- Tutaj parametry, więcej niż jeden, oddzielamy średnikami, ale tutaj mamy jedynie jeden parametr, więc średniki nie są tutaj potrzebne;
};
</syntaxhighlight>}}
Jest to tablica zdefiniowana w: {{Code|{{ld2|StronicowyParser/obiekty}}}}, opisana w: {{Code|{{sr|#p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu}}.
Funkcja zwraca zawartości właśnie tych kolejnych parametrów, jeśli w szablonie istnieją.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|szablon}} | _1 = Szablon, który chcemy zastąpić odpowiednimi, nie wszystkimi, jego parametrami.
| 2 = {{Code|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu}} | _2 = Tabela informująca, które parametry szablonu należy zastąpić parametrami, tutaj parametry są oddzielone średnikami.
| 3 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} |_3 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
| 5 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}} | _5 = Kod, dla obiektu {{Code|SZABLON}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, będący jednocześnie częścią kodów bazy, czyli: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/ObiektySzablonoweFormatowaniaTekstu/}}.
== {{Śródtytuł|p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu}}{{Code|p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu}} ==
Szablon zamieniający wywołania szablonów w tekście na ich odpowiednie wartości, które przedstawiają się za pomocą dodatków o ogólnym wzorze: {{Code|<nowiki>$(<name>)</nowiki>}}. Przykładowa tabela z tymi dodatkami jest w: {{Code|{{ld2|StronicowyParser/obiekty}}}}, a w nim tabela:
{{Tbl|uchwyt=p.szablony_z_dodatkiem_obiektowym|tekst=
<syntaxhighlight lang="lua">
p.szablony_z_dodatkiem_obiektowym={
["ISBN"]="ISBN $(1)";
};
</syntaxhighlight>}}
Opisana w: {{Code|{{sr|#p.szablony_z_dodatkiem_obiektowym|p=StronicowyParser/obiekty}}}}. Pierwszym elementem (kluczem) jest nazwa szablonu, a wartością tego elementu jest przepis, jak zastąpić ten szablon nim, a właściwie w nim dodatek, robiąc jeszcze dodatkowe operacje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu(szablon,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} | _1 = Zakodowany szablon, z możliwym dodatkiem, w nazwie szablonu.
| 2 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 3 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _3 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
| 4 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}} | _4 = Kod dla obiektu {{Code|SZABLON}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}.
}}
Funkcja na podstawie użytych elementów z: {{Code|{{ld2|Techniczne}}}}, wykonuje operacje na parametrach, używając procedur dla nazw argumentów: {{Code|{{sr|#p["PrzekształćWzórDoCzystegoTekstu"]|p=Techniczne}}}}, i jego wartościach: {{Code|{{sr|#p["TekstBezOdwołańDoParametrówWeWzorze"]|p=Techniczne}}}}, zamieniając elementy typu: {{Code|(<name>)}}, gdzie {{Code|name}}, to nazwa argumentu, na ich wartości.
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu/}}.
== {{Śródtytuł|p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii}}{{Code|p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii}} ==
Funkcja zamienia znaczniki nowej linii: {{Code|<nowiki><br /></nowiki>}} i kreski poziomej {{Code|<nowiki><hr /></nowiki>}}, a także szablony, ich odpowiedniki wersji znacznikowych, tzn. kolejno: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, na jedną wartość: {{Code|\n\n }} (który charakteryzuje trzy linie, ostatnia linia ma początku ma spację, aby ona przypadkiem nie była traktowana, jako np. rozdział), ustaloną przez nią.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst}} {{LinkPatrz|tekst|StronicowyParser/Rozdziały}} | _1 = Zakodowany tekst, na którym operujemy.
| 2 = {{Code|pelna_nazwa_spisu_tresci}} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 3 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _3 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _5 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
| 6 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} |_6 = Jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}.
| 7 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} | _7 = Jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii/}}.
== {{Śródtytuł|p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia}}{{Code|p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia}} ==
Funkcja łączy linie w jedną linię, pomiędzy liniami, które nie udało się połączyć z nimi, a jakie to są linie, otóż te, które reprezentują rozdziały, takie jak: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}}, i linie reprezentowane przez listy, które zaczynają się na: {{Code|<nowiki>[;%*:#]</nowiki>}}. Też nie zostaną połączone z innymi, które zawierają szablony: {{Code|{{s|SpisPozycja}}}}, {{Code|{{s|SpisZw}}}} i {{Code|{{s|SpisTreści}}}}, te szablony sa umieszczone w tabeli, na stronie: {{Code|{{ld2|StronicowyParser/obiekty}}}}, tzn.:
{{Tbl|uchwyt=p.szablony_w_nie_w_tej_samej_linii|tekst=
<syntaxhighlight lang="lua">
p.szablony_w_nie_w_tej_samej_linii={
["SpisPozycja"]=true,
["SpisZw"]=true,
["SpisTreści"]=true,
};
</syntaxhighlight>}}
Tabela opisana w: {{Code|{{sr|#p.szablony_w_nie_w_tej_samej_linii|p=StronicowyParser/obiekty}}}}. Funkcja w wewnątrz linii każdy znacznik: {{Code|<nowiki><br /></nowiki>}} lub {{Code|<nowiki><hr /></nowiki>}} albo {{Code|{{s|Br}}}} lub {{Code|{{s|Hr}}}}, zamienia na {{Code|\n\n }} (przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii|b=tak}}}}), co potem odpowiada trzem liniom, linia pośrodku jest pusta (lub biała), a jeżeli taki znacznik szablonowy, czy znacznikowy, jest na końcu linii, czyli po prostu, wtedy mamy, jeśli: {{Code|<nowiki>^(.*\n)[^%S\n]*\n[^%S\n]*$</nowiki>}}, co odpowiada dwom oddzielnym liniom, na jakie dzielona jest ona, w końcowym tekście.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(tekst,nazwa_modulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_obiektow_strony_dany_modul_uzyskany,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst}} {{LinkPatrz|tekst|StronicowyParser/Rozdziały}} | _1 = Zakodowany tekst, na którym operujemy.
| 2 = {{Code|pelna_nazwa_spisu_tresci}} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 3 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _3 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 4 = {{Code|tablica_obiektow_strony_dany_modul_uzyskany}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _5 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
| 6 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} | _6 = Jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}.
| 7 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} | _7 = Jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia/}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
1wrj75apkrglqjrbtsk22gjq5cbop6y
Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom IV
4
63906
560626
560416
2026-11-08T12:26:37Z
Persino
2851
560626
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|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.UruchamianieAnalizatoraSpisuRzeczyStrony}}{{Code|p.UruchamianieAnalizatoraSpisuRzeczyStrony}} ==
Funkcja zwraca wynik, czy uruchomić wydzielonie generowania spisu treści z całego jego pierwotnego. Szablon zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UruchamianieAnalizatoraSpisuRzeczyStrony()...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = Funkcja nie przyjmuje żadnego parametru. | komórka1 = tak
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/UruchamianieAnalizatoraSpisuRzeczyStrony/}}.
== {{Śródtytuł|p.ParserPodawaniaNapisuWprowadzeniaTekstu}}{{Code|p.ParserPodawaniaNapisuWprowadzeniaTekstu}} ==
Funkcja sprawdza, czy podany napis, nie dodatni równaniowy, czy jest rzeczywiście nagłówkiem rozdziału, czy tylko zwykłym tekstem.
Ona bada linie list, tzn. zaczynające się od linii znakami: {{Code|<nowiki>[;%*:#]</nowiki>}} (to są rozdziały ujemne), także rozważa też rozdziały zerowe (to nie są nagłówki typu {{Code|<nowiki>== Nagłówek==</nowiki>}}, ani ujemne).
Funkcja zalicza też do rozdziałów linie utworzone ze znaczników od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, też rozważa parametr w nim: {{Code|<nowiki>mw-hnumber-<liczba></nowiki>}}, wtedy poziom nie musi być od {{Code|<nowiki>1-6</nowiki>}}, ale też i: {{Code|<nowiki>> 6</nowiki>}}.
Funkcja sprawdza też, czy zaliczyć rozdziały centrowane (znacznikowe: znacznik {{Tag|center}}, i centrowane: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}) do rozdziałów, ona też potrafi odliczyć je od wykrywanych rozdziałów, jeśli zajdzie taka potrzeba.
Nie wszystkie rozdziały ujemne (rozdziały listy) przez ten twór (przez niego) są uważane jako rozdziały, które trzeba zaliczyć, podobnie zerowe i centrowane.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
...
return function(linia,tak_ce_spis_tresci)
... ---- ciało funkcji zwracanej. Tutaj są sprawdzane, czy podane linie zaliczyć do rozdziałów. Zmienna: tak_ce_spis_tresci, to jest zmienna mówiąca, czy uwzględniać rozdziały centrowane.
return linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;---- Zwracane parametry tej funkcji;
end;
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|nazwa_przestrzeni}} | _1 = Jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}.
| 2 = {{Code|nazwa_przestrzeni_ksiazki}} | _2 = Jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}.
| 3 = {{Code|nazwa_ksiazki}} | _3 = Jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}.
| 4 = {{Code|nazwa_spisu_tresci}} | _4 = Jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 5 = {{Code|pelna_nazwa_spisu_tresci}} | _5 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 6 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _6 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 8 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _8 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
| 9 = {{Code|tab_nazwa_spisow_przekierowaniowych}} | _9 = Jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}}.
}}
{{OpisParametrów
| tytuł = Parametry funkcji zwracanej:
| 1 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _1 = Linia zakodowana do rozważenia bez rozdziałów dodatnich, aby sprawdzić, czy to jest rozdział,
| 2 = {{Code|tak_ce_spis_tresci}} {{Patrz|tak_ce_spis_tresci}} | _2 = Czy ma uwzględniać rozdziały centrowane znacznikowe, czy szablonowe, podane pozyżej.
}}
{{OpisParametrów
| tytuł = Parametry zwracane przez funkcję, zwracaną przez tą funkcję, opisuje daną linie, czy ją uważać za rozdział, któremu w innej funkcji niż ta można przyporządkować jej zawartość:
| 1 = {{Code|linia_temp}} {{Patrz|linia_temp}} | _1 = Rozważana linia.
| 2 = {{Code|nazwa_rozdzialu}} {{Patrz|nazwa_rozdzialu}} | _2 = Nazwa rozdziału w opisanym linii rozdział, zwykle jest to ciało danego nagłówka, częśc tekstu po znakach listy następują ce po sobie od początku linii.
| 3 = {{Code|poziom_rozdziału}} {{Patrz|poziom_rozdziału}} | _3 = Poziom danego rozdziału podanego, jest ściśle zależna od tego, czy to jest rozdział centrowany, wtedy rozdział: {{Code|2}}, nagłówek, to liczba przy: {{Code|h}}, dla znaczników nagłówka, lub przy: {{Code|mw-hnumber-<number>}} {{Patrz|mw-hnumber-<number>}} dla: {{Code|<nowiki><h6></nowiki>}}.
| 4 = {{Code|poczatek_rozdzialu}} {{Patrz|poczatek_rozdzialu}} | _4 = Początek rozdziału, początek rozdziału to jest przedrostek listy, czyli znaki: {{Code|<nowiki>[;%*:#]</nowiki>}}.
| 5 = {{Code|numeracja_rozdzialu}} {{Patrz|numeracja_rozdzialu}} | _5 = Numeracja rozdziału, to są numerki oddzielone od siebie kropką, na końcu tegomoże być ona, ale nie musi.
| 6 = {{Code|czy_rozdzial_centrowany}} {{Patrz|czy_rozdzial_centrowany}} | _6 = Czy rozdział napisany jako szablonowo lub znacznikowo, jeśli jest centrowany, to: {{Code|true}}, w przeciwny wypadku: {{Code|nil}}.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/ParserPodawaniaNapisuWprowadzeniaTekstu/}}.
=== Wartości początkowe przyjmowane przez funkcję ===
Wartością początkową przyjmowaną jedyną jest zmienna {{Patrz|maksymalny_rozmiar_rozdzialu_zerowego}}:
<syntaxhighlight lang="lua">
local maksymalny_rozmiar_rozdzialu_zerowego=70;
</syntaxhighlight>
Ona mówi, jaką szerokość może mieć maksymalną rozdział zerowy, czy nawet ujemny, aby został uznany za prawdziwy rozdział.
Reszta zmiennych przyjmuje wartości poczatkowe, jako nilowe, jak to jest przy deklaracji zmiennych w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== Tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Przedstawione tutaj tablice są zdefiniowane w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}, a opisane w: {{Code|{{sr|StronicowyParser/obiekty}}}}.
==== {{Śródtytuł|Szablony centrowania}}Szablony centrowania ====
Funkcja wykorzystuje tabelę: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}, o:
{{Tbl|uchwyt=p.szablony_wprowadzenia_napisu_spisu_rzeczy|tekst=
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>}}
Z którego się dowiadujemy, z jakimi szablonami centrowania mamy do czynienia w tej funkcji, funkcja je wykrywa i ustawia, że dla tej linii z nim ją wykrył, niezależnie, jakie linki wewnątrz posiada.
==== Szablony linków wewnętrznych artykularne tworzące spis rzeczy szablonowe ====
Jeżeli w linii wykryto te szablony zamiast szablonów centrowania, to wiadomo, że ona nie stanowi rozdziału w liniach, które mają być rozdziałami ujemnymi lub zerowymi. Do tego celu służą linki zdefiniowane w tablicach, które są napisane w podrozdziałach poniżej.
===== Pierwszego typu - linki inteligentne =====
Następną tablicą: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} jest z punktu: {{LinkTbl|p.linki_szablony_elementy_spisu_rzeczy|StronicowyParser/Rozdziały/Tom III}}.
===== Drugiego typu - szablony tworzenia spisu rzeczy =====
Tą tablicą jest: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} jest z punktu: {{LinkTbl|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/Rozdziały/Tom III}}.
==== Znaczniki wprowadzenia tekstu ====
Ta tablica: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, zawiera definicję znaczników różnych nagłówków, zdefiniowaną tam.
Są to znaczniki {{Strong|HTML}} o możliwych pozimach od: {{Code|1}} do {{Code|6}}, jakie ta funkcja ma wykrywać, żeby uznać tą linię za rozdział, niezależnie, jakie linki wewnątrz znacznika są zdefiniowane.
Poziomy większe od {{Code|6}} są jedynie możliwe za pomocą szablonu {{s|HNumer}}.
==== Rozdziały dodatnie centrowane znacznikowe i szablonowe, które uznać za nie rozdziały ====
Linie, które zostały uznane za rozdziały, można uznać, że takie nie są, jeżeli zawierają one szablony zdefiniowane w tablicy: {{Code|{{sr|#p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego|p=StronicowyParser/obiekty}}}}:
{{Tbl|uchwyt=p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego|tekst=
<syntaxhighlight lang="lua">
p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego={
["Rozdział"]=true,
["Podrozdział"]=true,
["MapaObrazu"]=true,
};
</syntaxhighlight>}}
Rozdziały te, które zostały uznane za nierozdziały, powoduje to, że iterator tej funkcji wtedy dla ściśle określonej linii zwróci wartość {{Code|nil}}, a nie konkretne wartości, które by świadczyły o rozdziale centrowanym. Szablony centrowania szablonowego są zdefiniowane w: {{LinkŚródtytuł|Szablony centrowania}}, a znaczniki to są po prostu w postaci definicji: {{Tag|center}}.
==== Funkcje lokalne ====
===== {{Śródtytuł|LiniaCydzyslow}}{{Code|LiniaCydzyslow}} =====
====== Pierwszy przypadek ======
* Funkcja wyszukuje, czy rozdział jest pomiędzy cudzysłowami, a jeżeli nie, to zwraca {{Code|false}}, lub idzie dalej.
====== Druga sytuacja ======
; Przypadek nieprawidłowości{{dk}}
* W innym wypadku sprawdzamy dalej, jeżeli rozdział pasuje do tego, że on składa się z samych dużych liter z możliwymi odstępami.
* Lub w rozdziale można wyróżnić pojedyńcze litery duże.
* lub ta duża pojedyncza znajduje sie na początku rozdziału, bądź na jej końcu.
; Zwracana wartość{{dk}}
* W przypadku sukcesu dopasowań warunku alternatywy, funkcja zrzuca wartość fałszu, a jeżeli nie, to prawdy.
===== {{Śródtytuł|WykluczenieNieodpowiednichNormSzablonowych}}{{Code|WykluczenieNieodpowiednichNormSzablonowych}} =====
Funkcja zwraca {{Code|true}}, gdy dało się wykluczyć nieodpowiednie norm szablonowe, w przeciwnym wypadku {{Code|nil}}, to ostatnie właśnie to jest zwracane, gdy obiekt szablonowy jest z kodem o obiektami: {{Code|GALERIA}}, {{Code|ŹRÓDŁO}}, {{Code|PRE}}, {{Code|INNEPRE}}, {{Code|WIKITABELA}} lub {{Code|MAPAOBRAZU}}, albo on jest szablonem normalnym o obiekcie: {{Code|SZABLON}}, którego nazwy pasują do nazw kluczy tabeli: {{LinkTbl|p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego}}.
===== {{Śródtytuł|FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu}}{{Code|FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu}} =====
Funkcja słuzy do rewidowania zawartości szablonu, ukrytą pod pewnym parametrem, czy znacznika, oczywiście centrowania, czy ona jest: {{Code|<nowiki>^%s*%d+%s*/%s*%d+%</nowiki>}} (czyli rozdziały składające się z dwóch liczb oddzielonych prawym ukośnikiem), a jeśli nie, to czy: {{Code|<nowiki>!%s*'*%s*$</nowiki>}} (na końcu przed ewentualnie cudzysłowem znajduje się wykrzyknik), w takich przypadkach zawsze zwracana jest wartość {{Code|nil}}, jeżeli się funkcja zakańcza, jeżeli sprawdzenie przeszło pomyślnie.
Jeśli ona się nie zakończyła przedwcześnie, wtedy liczy zmienne, tutaj nielokalne, rozdział {{Code|rozdzial}} i numerację {{Code|numeracja}} z: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}} {{Patrz|p.NumeracjaOrazTekstWprowadzeniaTekstu}} ze zmiennej testowej, ktorą jest pojedyncza linia bez znaków listy, a jeżeli tak z policzonego ze zmiennej rozdziału, funkcja: {{LinkŚródtytuł|WykluczenieNieodpowiednichNormSzablonowych}}, nie wyklucza niczgo, tzn. zaprzeczenie zwrócone przez tą funkcję przyjmuje wartość prawdziwą - czyli w tekście sprawdzamy, czy występują tam te specjalne znaki, wtedy zmienne: {{Code|numeracja}} i {{Code|rozdział}}, są przyrównywane do wartości {{Code|nil}}, przeciwnym wypadku funkcja nic nie robi.
===== {{Śródtytuł|NiestardardoweSzablonoweWprowdzeniaTekstu}}{{Code|NiestardardoweSzablonoweWprowdzeniaTekstu}} =====
Funkcja sprawdza zawartość szablonu jakiegoś centrowania. Funkcja rewiduje, czy nazwa tego szablonu, czy jest rzeczywiście szablonem centrowania według tabeli: {{LinkTbl|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}, a jeżeli tak, z tej tabeli jest liczony klucz zmiennej jego zawartości tabeli parametrów szablonow, pod którym jest ukryta jego zawartość liczona z tabeli parametrów szablonu, co ta zawartość jest sprawdzana później przez funkcję: {{LinkŚródtytuł|FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu}}, która możliwie niluje odpowiednio dwie zmienne, jeżeli zajdzie taka potrzeba.
===== {{Śródtytuł|NiestardardoweZnacznikoweWprowdzeniaTekstu}}{{Code|NiestardardoweZnacznikoweWprowdzeniaTekstu}} =====
To samo, co dla funkcji: {{LinkŚródtytuł|NiestardardoweSzablonoweWprowdzeniaTekstu}}, tylko że, tym razem nie dla szablonów centrowania, tylko dla znaczników centrowania {{Tag|center}}, ale też dla znaczników wprowadzenia tekstu opisywanych przez tabelę: {{LinkTbl|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Początek (znaki specjalne początku pozycji listy) i rozdział z możliwą numeracją ====
Funkcja wyodrębnia początek i rozdział z możliwą numeracją od siebie na linii z pozycją listy. Jeżeli tego się nie dało wyodrębnić, to mamy wtedy prawdopodobnie rozdział zerowy, ale nie musi być, może być to zwykła linia tekstowa pewnego napisu wprowadzenia tekstu. W takim przypadku funkcja liczy rozdział z numeracją lub wyodrębnia to z tego otoczonego cudzysłowami.
==== Badanie, jaki to jest rozdział ====
===== Rozdział zerowy =====
====== Istnienie rozdziału z numeracją ======
* Jeżeli to dało się wyodrębnić rozdział {{ZobaczTeż|rozdział}} z numeracją, to przyjmujemy, że zmienna {{Code|poczatek}} jest równa ciągowi znakowemu pustemu, a z tego usuwamy znaki specjalne dzięki {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}, dalej są usuwane odstępy z początku i końca tego czegoś i na podstawie tego jest wyznaczany {{Code|rozdział}} i {{Code|numeracja}} z tak uzyskanemu szeregu.
====== Brak numeracji rozdziału ======
Określimy tutaj sytuację braku numeracji rozdziału.
* Wykryta linia cudzysłowu{{dk}}
*: Jest sprawdzane, czy to jest linia z cudzysłowem na podstawie {{LinkŚródtytuł|LiniaCydzyslow}}, a jeżeli funkcja zrzuci wartość odpowiadającą prawdziwej wartości, wtedy {{Code|rozdział}} jest równy linii, a {{Code|poczatek}} i {{Code|numeracja}} są równe ciągowi pustemu.
* Wykryta linia bez cudzysłowów - adresu URL w linii{{dk}}
*: Sprawdzamy, czy któreś z poszczególnych ciągów będących czarnymi znakami są adresami z {{Strong|URL}}, a jeżeli tak, to wtedy są tak samo inicjowane zmienne, jak w przypadku poprzednim.
===== Rozdział będący rozdziałem pozycji listy (rozdział niezerowy) z pewnym początkiem charakterystycznym dla list =====
Gdy jednak linia ma poczatek pozycji listy, to wtedy to samo robimy, co w {{LinkZobaczTeż|rozdział}}, tylko bez znaków początku pozycji listy, która nic nie robimy, rozdzielając na dwa łańcuchy znaków, tzn. {{Code|rozdział}} i {{Code|numeracja}}.
==== Uzyskany istniejący rozdział ====
Jeżeli uzyskamy rozdział istnieje, to zmienna {{Code|ze_specialnymi_obiektami}} {{Patrz|ze_specialnymi_obiektami}} przyjmuje wartość {{Code|true}}, a zmienna {{Code|tekst}} jest równa uzyskanemu rozdziałowi bez numeracji, w przeciwnym wypadku jest równy linii {{Code|linia}} podanemu do funkcji.
==== Iterator po zawartości tekstu linii prawdopodobnego rozdziału ====
Uruchamiamy iterator: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, który zwraca funkcję iteratora po zmiennej {{Code|tekst}} z pierwszą funkcją, która powoduje, że ona jak zwróci wartość {{Code|nil}}, to natychmiast się zakańcza, lub to robi po zakończeniu zasobów danych.
===== Możliwe operacje robione przez funkcję iteratora =====
Funkcja dopuszcza rozdziały z pozycją listy, poczatek linii ma znaki listy tzn. {{Code|<nowiki>[%*#;:]</nowiki>}}, wtedy mamy doczynienia z możliwy rozdziałem ujemnym, ale to nie musi byc rzeczywiście rozdziałem, linia nie musi być częścią listy, wtedy mamy rozdział z możliwą numeracją, ale z drugiej strony w tych dwóch poprzednich wypadkach, nawet numeracji nie musi być, aby był przez tą funkcją zwracaną, uznanym, że to może być rozdział, albo normalną linią.
====== Obiekt szablon, czyli typu SZABLON ======
W tej funkcji sprawdzamy też obiekt: {{Code|SZABLON}}, przy pomocy funkcji: {{Code|{{sr|#p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON|p=Szablonowe}}}}, dla szablonów centrowania: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, tabelą {{LinkTbl|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}:
; Szablony rozdziałów szablonowe{{dk}}
* Wtedy ustawiamy zmienne: {{Code|ze_specialnymi_obiektami}} {{LinkPatrz|ze_specialnymi_obiektami}} i {{Code|czy_centrowanie}} {{Patrz|czy_centrowanie}}, na wartości {{Code|true}}.
* Potem uruchamiamy funkcję dla niej: {{LinkŚródtytuł|NiestardardoweSzablonoweWprowdzeniaTekstu}}, co potem ta funkcja zwraca wartość {{Code|true}}.
; Szablony linków{{dk}}
* A dla szablonów będących linkami sprawdzamy za pomocą kluczy w tabelach: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.linki_szablony_elementy_spisu_rzeczy|StronicowyParser/Rozdziały/Tom III}} i {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/Rozdziały/Tom III}}, lub funkcją {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=SronicowyParser/Potrzebne}}}}, a jeżeli któreś z nich zwróci wartość {{Code|true}}, wtedy przy istnieniu zmiennej: {{Code|rozdział}}, zmienne: {{Code|poczatek}}, {{Code|rozdzial}} i {{Code|numeracja}}, przyjmują {{ZobaczTeż|nilowanie-rozdział}} wartość {{Code|nil}}, wtedy ta funkcja w iteratorze zwraca wartość {{Code|true}}.
; Wartość zwracana{{dk}}
A wiec wtedy na podstawie tych powyższych przypadków, funkcja iteratorze zwraca wartość domyślnie nilową, a więc wtedy przy uruchomieniu tego iteratora pętla się zatrzymuje.
====== Obiekty znacznikowe '''HTML''', czyli typu ZNACZNIK ======
Gdy obiekt jest równy: {{Code|ZNACZNIK}}:
* Wtedy używamy funkcji: {{Code|{{sr|#p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika|p=StronicowyParser/Potrzebne}}}}, do zwracania nazwy, zawartości i atrybutów.
** Dla zawartości nienilowej, sprawdzane, czy znacznikiem jest: {{Tag|center}}, czy jednych ze znaczników wynikających z tabeli: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
; Pierwszy przypadek sprawdzania{{dk}}
* W tym pierwwszym ustawiamy zmienne: {{Code|ze_specialnymi_obiektami}} {{LinkPatrz|ze_specialnymi_obiektami}} i {{Code|czy_centrowanie}} {{LinkPatrz|czy_centrowanie}}}, na wartość {{Code|true}}, i zwracamy do funkcji w iteratorze wartość {{Code|nil}}.
; Drugi przypadek (ciąg dalszy){{dk}}
* A w tym drugim wypadku zmienna: {{LinkPatrz|ze_specialnymi_obiektami}}, przyjmuje wartość {{Code|true}}, a: {{Code|czy_znaczniki_hn}} {{Patrz|czy_znaczniki_hn}}, przyjmuje też to samo, i to samo jest zwracane, co w pierwszym. A w obu tych przypadkach uruchamiana jest funkcja: {{LinkŚródtytuł|NiestardardoweZnacznikoweWprowdzeniaTekstu}}.
====== Linki wewnętrzne i zewnętrzne ======
Gdy mamy obiekt: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy zmiennej {{LinkPatrz|ze_specialnymi_obiektami}} przydzielana jest wartość {{Code|true}}, i przy istnieniu zmiennej {{Code|rozdział}}, inne zmienne takie jak w: {{LinkZobaczTeż|nilowanie-rozdział}}, są tak inicjowane jak tam.
==== Wartości zwracane, przez funkcję iteratora zwracanej przez funkcję główną, w przypadku wykrycia rozdziału ====
Funkcja, gdy nie wykryła rozdziału, to zwraca wartość {{Code|nil}}, w przypadku jego rozpoznania, mamy coś w rozdziaju {{Patrz|procedura zwracania ogólnie wartości}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,(#poczatek*(-1)),poczatek,numeracja,czy_centrowany_rozdzial;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Parametry zwracane przez funkcję zwracaną:
| 1 = {{Code|linia}} | _1 = Rozważana linia zwracana przez funkcję.
| 2 = {{Code|rozdzial}} | _2 = Wyodrębiony rozdział, bez początku listy i numeracji.
| 3 = {{Code|(#poczatek*(-1))}} | _3 = Ogólnie dla rozdziałów ujemnych lub zerowych, lub ogólniej: {{Code|numer_rozdziału_wartosc_ujemna_lub_dodatnia}} - numer rozdziału dodatniego, ujemnego, czy zerowego, jeżeli w ogóle ona jest rozdziałem, generowanym przez daną linię.
| 4 = {{Code|poczatek}} | _4 = Znaki początka listy, lub {{Code|nil}}.
| 5 = {{Code|numeracja}} | _5 = Numeracja rozdziału, znajdująca się na samym jej poczatku, w przypadku pozycji listy, tuz za tymi znakami.
| 6 = {{Code|czy_centrowany_rozdzial}} | _6 = Zwracane wartości {{Code|true/nil}}, wartość prawdziwą, gdy wykryto rozdział centrowany szablonowo, czy znaczniowo, przeciwnym wypadku jest zwracana wartość {{Code|nil}}.
}}
Funkcja na wiele sposobów może wskazywać, czy rozdział niedodatni jest rozdziałem, lub zwracać wartość {{Code|nil}}, gdy jest tylko zwykłą linią, a nie rozdziałem w żadnym wypadku. W przypadku rozdziałów dodatnich równaniowych, one są zawsze rozdziałami, ale to nie jest kwestią tej funkcji, ale za to jest dla rozdziałów centrowanych znacznikowych lub szablonowych, one nie zawsze są rozdziałami, czasami są zwykłym tekstem, bo nie należy do spisu, albo ma dziwną zawartość. A w przypadku rozdziałów nagłówkowych generowanych przez znaczniki typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jeżeli zawierają zawartość niepustą, to są rozdziałami dodatnimi ({{Code|<nowiki>numer_rozdziału_wartosc_ujemna_lub_dodatnia > 0</nowiki>}}), wykrywane przez tą funkcję, jako nierównaniowe.
===== Brak obiektów specjalnych linii, które sugerują, że to nie jest jednak rozdział =====
Jeżeli ustawiony nie został parametr przez wcześniejsze wykonywanie iteracji parametr {{Code|ze_specialnymi_obiektami}} na wartość {{Code|true}}, gdy przed iteracją parametr {{Code|rozdział}} istniał, jeśli nie, wtedy wchodzimy do pierwszego rozkłazienia funkcji iteratora dla danej rozważanej linii.
Funkcja sprawdza, czy to jest rozdział zerowy przy użyciu funkcji {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|b=tak}}}} w ten sposób otrzymamy zmienną rozdziału, jak to na pewno jest rozdziałem możliwym zerowym bez dalszych sprawdzeń. Funkcja następnie też rewiduje, czy ona posiada nieprzekroczoną liczbę z maksimum znaków, określonej przez zmienną {{Code|maksymalny_rozmiar_rozdzialu_zerowego}} {{LinkPatrz|maksymalny_rozmiar_rozdzialu_zerowego}}.
Funkcja, jeżeli weszła w ten krok instrukcji warunkowej, w takich przypadkach może zwrócić informację w zależności od jej definicji, że to jest jednak taki rozdział w odpowiedni sposób, w przeciwnym wypadku zwraca informację w postaci wartości nilowej, że jednak nim nie jest, czyli jest to zwykła linia tekstowa, a nie rozdział zerowy, jak przypuszczaliśmy.
W przypadku pozytywnego rozeznania jest sprawdzene, czy rozdział przed cudzysłowem końcy się na znaki iterpunkcyjne, w języku polskim, a jeżeli nie, to funkcja zwraca wartość {{Patrz|bez obiektów zwracane}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,0,nil,numeracja;
</syntaxhighlight>
Gdy nie jest spełniony faktyczny rozmiar rozdziaału zerowego, wtedy sprawdzane jest, czy wartości zmiennych {{Code|poczatek}} i {{Code|numeracja}}, czy są niepuste. A gdy nie ma początku, lub jest, ale jest on pusty, oraz jednocześnie, nie ma numeracji, lub numeracja jest pusta, wtedy funkcja iteratora zwraca {{Code|nil}}. Przeciwnie, jeśli przed cudzysłowem nie ma znaków iterpunkcyjnych, funkcja zwraca podobny wynik do: {{LinkPatrz|bez obiektów zwracane}}.
W pozostałych wypadkach funkcja zwraca wartość {{Code|nil}}.
===== Rozdziały centrowane =====
Gdy zmienna: {{Code|czy_centrowanie}} {{LinkPatrz|czy_centrowanie}}, ma uzyskaną z iteracji, a także {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci}}, wstawianej jako drugi parametr iteratora, czy uwzględniać rozdziały centrowane, jeśli przyjmuje wartość nieprawdziwą, to wtedy funkcja iteratora zwraca zawsze {{Code|nil}}, w tym przypadku, przeciwnie, a jeżeli rozdział i numeracja jednocześnie nie istnieją, to funkcja ogólnie zwraca {{Code|nil}}.
Przy istnieniu rozdziału centrowanego w linii, funkcja zwróci taki rozdział, jeżeli zmienna rozdziału i numeracji istnieją, ale któreś z nich nie może może być puste. Poziom rozdziału jest wtedy {{Code|2}}. A zmienna, czy to jest rozdział centrowany, wtedy przyjmuje wartość {{Code|true}}.
Wartości zwracane przez funkcję, w przypadku rozdziałów centrowanych {{Patrz|centrowane_zwracane}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,2,nil,numeracja,true;
</syntaxhighlight>
===== Rozdział nagłówka ze znacznikami {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}=====
Jest podobny przypadek rozpatrywania, jak przy rozdziałach centrowania, poziom rozdziału jest okreslany przez funkcję: {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, a to nie jest rozdział centrowany, tylko nagłówkowy. W tym przypadku zmienna {{LinkPatrz|czy_znaczniki_hn}} przyjmuje wartość odpowiadającej prawdziwej. Gdy numeracja i rozzdział nie istnieją lub są puste, wtedy funkcja zwraca jedną wartość {{Code|nil}}.
Wynik w tym wypadku jest zwracany {{Patrz|znaczniki_hn_zwracane}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,numer_rozdzialu,nil,numeracja;
</syntaxhighlight>
===== Pozostałe rozdziały (ujemne), które zostały podseperowane, że jednak mogą być rozdziałami, a nie zwykłym tekstem - rozdziały niedwukropkowe (listy niezaczynające się od: {{Code|:}})=====
Wtedy funkcja sprawdza również, czy taki rozdział nie ma przekroczonego maksimum znaków, tzn. {{Code|maksymalny_rozmiar_rozdzialu_zerowego}} {{LinkPatrz|maksymalny_rozmiar_rozdzialu_zerowego}}.
Ta część dokonuje też dalszych sprawdzeń, co na podstawie tego taki rozdział zaliczać do rozdziału ujemnego (wtedy jest zwracany szereg wartości), czy do zwykłego tekstu (wtedy jest zwracana tylko wartość {{Code|nil}}).
Sprawdzane jest {{ZobaczTeż|rozdział niedwukropkowy zwracane}}, czy jest to rozdział dwukropkowy, przy pomocy funkcji: {{Code|{{sr|#p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu|b=tak}}}}, jeżeli nie jest, to jest dalej sprawdzane, czy rozdział ma początek równy znakom listy, lub przed cudzysłowem (w ramach cudzysłowu) ma znaki interpunkcyjne, a jeżeli nie ma, to zwracany jest wynik ogólny {{Patrz|rozdział niedwukropkowy zwracane}}:
<syntaxhighlight lang="lua">
return linia,rozdzial,(#poczatek*(-1)),poczatek,numeracja;
</syntaxhighlight>
{{Tab}}W innym wypadku, jeżeli poczatek linii, lub nawet numeracja, jeśli któreś z nich nie istnieją lub są puste, wtedy funkcja zwraca {{Code|nil}}, przeciwnie jest sprawdzane, co w punkcje {{LinkZobaczTeż|rozdział niedwukropkowy zwracane}} i zwracany jest wynik jak: {{LinkPatrz|rozdział niedwukropkowy zwracane}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
6as6zfg8l8euntdbnavqh5yoiybhp7k
Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom V/Część I
4
63907
560628
560418
2026-11-08T12:39:26Z
Persino
2851
560628
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|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.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział.
Przed uruchomieniem iteratora, gdy tekst jest zakodowany, funkcja modyfikuje nagłówki i ich zawartości rozdziałów, upraszczając je na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane.
Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}.
Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co jest nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie równaniowe, czy również dodatnie nierównaniowe (centrowane szablonowo, czy znaczniowo), ujemne (będące częścią pozycji listy) i zerowe (nie są tymi wcześniejszymi), do tego służy zmienna: {{Code|czy_inne_rozdzialy_analizowac}} {{LinkPatrz|czy_inne_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca całą linię rozdziału, i jego wnętrze, i nazwę rozdziału, także zwraca inne parametry, charakteryzujące nagłówek.
* Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego dalszego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_inne_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony.
| 2 = Nazwy strony danego określonego spisu: | nagłówek2 = tak
| 3 = {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} | _3 = Jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 4 = {{Code|czy_inne_rozdzialy_analizowac}} {{Patrz|czy_inne_rozdzialy_analizowac}} | _4 = Czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,.
| 5 = {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} | _5 = czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu
| 6 = Tablice wynikłe z zakodowanych zmiennych: | nagłówek6 = tak
| 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 8 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _8 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}}.
| 9 = Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:|nagłówek9 = tak
| 10 = {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} | _10 = Funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zwraca jego zawartość.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
str=__FUNKCJA(pelna_nazwa_szablonu,tabela_modyfikatorow);
</syntaxhighlight>
| 11 = {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} | _11 = Funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału).
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
tekst_rozwiniety_calego_artykulu=__FUNKCJA2 and __FUNKCJA2(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or tekst_rozwiniety_calego_artykulu;
</syntaxhighlight>
| 12 = {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} | _12 = Funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja w niej zwróci ściśle określoną wartość, która to właśnie powoduje, że ta właściwa część tej funkcji nie jest uruchamiana, ta inna część funkcja bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}. Jeśli ta funkcja nie istnieje, lub zwraca wartość nilową, to ta zmienna {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} nie zmienia się, w przeciwnym wypadku, ta ona przyjmuje wartość zwróconą z tej funkcji.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
tekst_rozwiniety_calego_artykulu=__FUNKCJA_ANALIZA_SPISU and __FUNKCJA_ANALIZA_SPISU(tekst_rozwiniety_calego_;artykulu,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or tekst_rozwiniety_calego_artykulu;
</syntaxhighlight>
}}
{{OpisParametrów
| tytuł = Parametry funkcji zwracanej:
| 1 = Funkcja nie przyjmuje żadnych parametrów. | komórka1 = tak
}}
{{OpisParametrów
| tytuł = Jednoczesne parametry zwracane przez funkcję zwracaną:
| 1 = {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} | _1 = To jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią.
| 2 = {{Code|str}} {{Patrz|str}} | _2 = Tekst napisu wprowadzenia tekstu (zawartość rozdziału).
| 3 = {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} | _3 = Poziom aktualnego rozdziału.
| 4 = {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} | _4 = Przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału.
| 5 = {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} | _5 = Numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}}.
| 6 = {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} | _6 = Przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
}}
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych nagłówków są w: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w:
{{Tbl|uchwyt=p.szablony_do_usuwania_z_tekstu|tekst=
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>}}
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkTbl|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji:
{{Tbl|uchwyt=p.szablony_bez_generowania_napisowego|tekst=
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>}}
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie:
{{Tbl|uchwyt=p.szablony_nie_typowo_linkowe|tekst=
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>}}
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w:
{{Tbl|uchwyt=p.znaczniki_szablonowe|tekst=
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>}}
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu, to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest:
{{Tbl|uchwyt=p.szablony_sztucznego_wprowadzenia_tekstu|tekst=
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>}}
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o numerze stojącego przy wartości elementów w tej tablicy, jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, ich definicja:
{{Tbl|uchwyt=p.magiczne_derektywy|tekst=
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>}}
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w:
{{Tbl|uchwyt=p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|tekst=
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>}}
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy:
{{Tbl|uchwyt=p.artykularne_niespisowe|tekst=
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>}}
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy kolejno, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|szablon}} | _1 = Tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
}}
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charakteryzujący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji {{nobold|{{ZobaczTeż|szablon-obiekt-kod}}}}:
| 1 = {{Code|szablon}} | _1 = Tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}.
| 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
}}
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}, zamieniając to na spację.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}. |nagłówek1 = tak
}}
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}.
* W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
* W innych zakresach funkcja nic nie zwraca.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji {{Nobold|{{ZobaczTeż|parametry znacznikowe}}}}:
| 1 = Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}. | komórka1 = tak
| 2 = Parametry w wersji - szablonowe: | nagłówek2 = tak
| 3 = Parametry szablonowe, gdy obiekt wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu: {{Code|SZABLON}}, wtedy one mają taką słuszność:| komórka3 = tak
| 4 = {{Code|parametr1}} {{Patrz|parametr1-szablonowe}} | _4 = To nic innego jak: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika.
| 5 = {{Code|parametr2}} {{Patrz|parametr2-szablonowe}} | _5 = To nic innego jak: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}}, czyli zawartość znacznika.
| 6 = {{Code|parametr3}} {{Patrz|parametr3-szablonowe}} | _6 = To nic innego jak: {{Code|tabela_modyfikatorow}} {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
| 7 = Parametry w wersji - znacznikowe:| nagłówek7 = tak
| 8 = Parametry znacznikowe, gdy obiekt: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu: {{Code|ZNACZNIK}}, tutaj wtedy mamy ów:|komórka8 = tak
| 9 = {{Code|parametr1}} {{Patrz|parametr1-znacznikowe}} | _9 = To nic innego jak: {{Code|nazwa}} {{LinkPatrz|nazwa|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
| 10 = {{Code|parametr2}} {{Patrz|parametr2-znacznikowe}} | _10 = To nic innego jak: {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
| 11 = {{Code|parametr3}} {{Patrz|parametr3-znacznikowe}} | _11 = To nic innego jak: {{Code|atrybuty}} {{LinkPatrz|atrybuty|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
}}
Jeżeli nic się nie zmieniło, to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie, to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
; Funkcja służy do tego{{dk}}
* Jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy,
** Bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego.
* Element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje.
* Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku może występować dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|komorka}} | _1 = Przetwarzana komórka - linia,
| 2 = {{Code|nie_trimowanie}} | _2 = Czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
}}
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na początek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana wartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, ale to aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''.
Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|zawartosc}} | _1 = Zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}}
| 2 = {{Code|czy_szablon}} {{Patrz|czy_szablon}} | _2 = Czy zawartość modyfikowana jest od szablonu.
}}
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną zawartość, jeśli były elementy nabierające magicznego kontrastu, lub nie.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni równaniowy {{LinkPatrz|czy_rozdział_dodatni}}.
; Funkcja w przypadku rozdziału dodatniego równaniowego (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (przypominające rozdziały ujemne){{dk}}
* Rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{LinkTbl|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{LinkTbl|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}},
* Jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nim we wnętrzu według jego definicji jest dowolna liczba równa się po lewej i po prawej stronie jego, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest,,
** Funkcja zastąpuje je ich zawartościami, i zastępując wszystkie znaczniki nowych linii {{Tag|br}} i kresek {{Tag|hr}}, czy szablony kolejno: {{s|Br}} i {{s|Hr}}, wtedy w głównym rozdziale dodatnim, czy przypominającym ujemnym, tego już nie ma, i mamy czyste te, które pisze się dokładnie jedną linią, a nie wieloma.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|wzór}} {{Patrz|wzor}} | _1 = Wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy).
| 2 = {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} | _2 = Czy linia reprezentuje rozdział dodatni równaniowy.
}}
Funkcja wydziela poszczególne linie wewnątrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}, i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, jest robione, co w nagłówku powiedziane jest, a dla znaczników mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', obiektów {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} równym: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|NOWIKI}}, są specjalne znaki znacznika: {{Tag|nowiki}}, są zamieniane na kody '''{{lpg|HTML}}''', dla znaków: {{Code|<nowiki>[%!{}|=<>%[%]]</nowiki>}}, na podstawie wywołanej tam funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}, co później w ostatecznym tym elemencie znak nowej linii: {{Code|<nowiki>\n</nowiki>}}, jest zastąpiony jedną spacją. A gdy jednak te znaczniki nie mają zawartości, to są zastępowane ciagiem pustym.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu (Krok 1) - Upraszczanie jakikolwiek linii do najprostszej możliwej postaci, aby było możliwe rozpoznanie pewnych obiektów, nie tylko linkowych przez {{ld|StronicowyParser|Stronicowy parser}} ======
{{Tab}}Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji: {{s|R}}, {{s|RN}} i {{s|RNota}}, {{s|U}}, {{s|UN}} i {{s|UNota}}, {{s|O}} i {{s|Ref}} oraz {{s|Refn}}, znaczniki '''mechanizmu {{NS|k=mw|w=tak|l=tak}}''': {{Tag|ref}}, a także dopisująca linkom zewnętrznym nienazwanym ich numerkowe nazwy, by napisać ich numerki uruchomień, aby się zgadzała ich kolejność, a te elementy za to referencji są zamieniane w odpowiednie kody {{Strong|HTML}}, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}} (która robi inne operacje, które wykorzystamy do definicji funkcji tutaj, która coś robi), która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w opisywanym module.
{{Tab}}Funkcja ta doprowadza, za pomocą funkcji: {{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}} - pierwsza funkcja w niej, do najprostrzej postaci wikitekst zakodowany: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, aby w tekście były tylko linki szablonowe, nawet iteligentne, bądź spisowe, czy typu linki wewnętrzne {{Code|LINKW}}, a nawet zewnętrzne {{Code|LINKZ}}: i rozdziały niezależnie jak są reprezentowane, czy znacznikowo, czy szablonowo, i niektóre inne, aby one były w najprostrzej postaci, aby nie było rozdziałów zagnieżdżonych jeden w drugim, szablony typu stucznego reprezentowania rozdziałów dodatnich równaniowych, są zastępowane ich zawartościami. W rozdziałach szablonowych mogą być linki, niezależnie jakie.
{{HNumer|1=
======= Opis funkcji {{nobold|{{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}}}, a w nim jest, jako pierwszy argument modyfikowany tekst wnętrzna elementu innego niż przypadek szablonów i znaczników referencji - nazwane i nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = Parametry podstawowe: | nagłówek1 = tak
| 2 = Parametry tej funkcji, jak w: {{LinkZobaczTeż|parametry znacznikowe}}. | komórka2 = tak
| 3 = Inne parametry: | nagłówek3 = tak
| 4 = {{Code|tekst}} | _4 = Jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
}}
Funkcja modyfikuje wnętrza obiektów: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, o typie:
* {{Code|SZABLON}} - pewne szablony są zastępowane ich wnętrzem lub są zastępowane ciągiem pustym,
** Szablony typu: {{s|HNumer}}, jeśli można są modyfikowane,
** Szablony cenntrowania z: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zachowywane, chyba że w swojej zawartości mają inne rozdziały dodatnie równaniowe i pozycje listy, wtedy one są zachowywane ich zawartościami.
* {{Code|ZNACZNIK}} - elementy ze znacznikami są zastępowane ich zawartościami, a znaczniki typu:
** centrowania: {{Tag|center}} i nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zachowywane, lub zastępowane ich zawartościami, jeśli w sobie mają rozdziały dodatnie równaniowe lub pozycje listy.
* {{Code|INNEPRE}} - składająca się z samych odstępów są zastępowane ciągiem pustym, a inne ich zawartościami,
* {{Code|LINKW}} i {{Code|LINKZ}} - w nich znaczniki normalne są zastępowane ich zawartościami, lub one znaczniki nowych linii: {{Tag|br|pojedynczy}}, i kresek: {{Tag|hr|pojedynczy}}, są zamieniane na spacje, i analogicznie podobnie znaczniki szablonowe i też szablony nowych linii: {{s|Br}}, i kresek: {{s|Hr}},
* {{Code|WIKITABELA}} - komórki, w niej, są upraszczne do zbioru nowych linii, aby była zachowana, kolejność wierszy i komórek.
; Szablony i znaczniki nagłówków jakie modyfikujemy w funkcji są{{dk}}
* Elementy do centrowania obiektów na stronie '''{{lpg|HTML}}''' w '''mechanizmie {{NS|l=tak|w=tak|k=mw}}''':
** {{s|Ce}}, {{s|Centruj}} i {{s|Center}} - szablony centrowania rozdziałów,
** {{Tag|center}} - znaczniki centrowania,
* {{s|HNumer}} - szablonu sztucznych rozdziałów,
* {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}} - szablony znaczników nagłówków.
: Zagieżdżone formy szablonów nagłówków w nich są usuwane, także szablony i znaczniki, nowej linii i kresek, są tam zastępowane spacją.
; Szablony sztucznych nagłówków{{dk}}
* {{s|HNumer}} - jeśli w sobie posiadają znaczniki {{Tag|div}}, i w nich nie ma nowej linii, ale on bezpośrednio znajduje się w tym szablonie, to ten znacznik jest zastępowany tą zawartością, a magiczność elementów, w tym znaczniku, rozdziałów dodatnich równaniowych i poyzycji listy zostaje usunięta.
====== Zmiana tekstu (Krok 2) - Upraszczanie rozdziałów, dodatnich równaniowych i pozycji list, do najprostszej postaci ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w '''mechanizmie {{NS|k=mw|l=tak}}''', ta funkcja działa dla każdej linii w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
* Funkcja upraszcza zawartość tych linii (rozdziałów) do takiej postaci, by w nim nie było znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego.
** Znaczniki, czy szablony, nowej linii i kreski poziomej, bądź ich szablony, czy znaki nowej linii, są zastępowane spacją.
** Ich elementy są zastępowane ich zawartościami.
; Inne obiekty
* Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjalne, zastępując je na kody '''{{lpg|HTML}}'''.
* Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}.
** W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim. Ale w każdym bądź razie, zawartośc ich, a w nich magiczne elementy przyjmują kształt kodów języka: '''{{lpg|HTML}}'''.
====== Zmiana tekstu (Krok 3) - Doprowadenie tekstu, to jednoznaczności rozumienia szablonów rozdziałów, aby w linii, wszystko co reprezentuje główny nagłówek był w całości w niej, nigdy jako normalna część ======
; Modyfikacja obiektów typu szablonowego{{dk}}
* Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, tzn.: napisu wprowadzenia tekstu, w których ich nazwy pasują do: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia.
* A szablony o nazwach z tabeli: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
; Typu znacznikowego{{dk}}
* Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
; Teksty z czcionką o stałej szerokości{{dk}}
* Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
; Specjalne obiekty{{dk}}
* A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}} {{LinkTbl|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiany jest znak nowej linii wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|p.IterTekst}}, tzn. na podstawie użycia: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
13hfyonmx5db8nkeki2d1fazpwyk5kb
Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I
4
63908
560635
558134
2026-11-08T13:32:19Z
Persino
2851
560635
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Przedstawione są tu funkcje do zbierania informacji o uchwycie.
== {{Śródtytuł|p.UstawUchwytyWeTablicyBezNumeracji}}{{Code|p.UstawUchwytyWeTablicyBezNumeracji}} ==
Funkcja zbiera uchwyty, dla obiektów {{ZobaczTeż|p.UstawUchwytyWeTablicyBezNumeracji}}, bez numeracji, nie licząc obiektów tekstu, takich jak {{s|Śródtekst}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UstawUchwytyWeTablicyBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|self}} {{Patrz|self}} | _1 = Zmienna obiektowa modułu {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}} {{Patrz|StronicowyParser/ZbieranieDanychStron}}.
| 2 = {{Code|tabela_elementow_strony_kodow}} {{Patrz|tabela_elementow_strony_kodow}} | _2 = Zmienna zbierająca takie kody jak {{LinkZobaczTeż|p.UstawUchwytyWeTablicyBezNumeracji}}.
| 3 = {{Code|nazwa_obiektu}} {{Patrz|nazwa obiektu}} | _3 = Nazwa obiektu.
| 4 = {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} | _4 = Pozycja w normalnej tabeli uchwytów i przeważnie ich numeracji, a tutaj dla tego obiektu.
| 5 = {{Code|kod}} {{Patrz|kod}} | _5 = Numer kodu dla tego obiektu.
}}
Funkcja zbiera elementy tablicy: {{Code|lista_dwuelementowa}} {{LinkPatrz|lista_dwuelementowa}}, w tablicy wielowymiarowej o pierwszym elemencie wymiaru o wartości: {{Code|nazwa obiektu}} {{LinkPatrz|nazwa obiektu}}, i trzecim o wartości: {{Code|kod}} {{LinkPatrz|kod}}, oraz o drugim: {{Code|uchwyty_bez_numeracji}} {{Patrz|uchwyty_bez_numeracji}}.
Ta tablica: {{Code|lista_dwuelementowa}} {{LinkPatrz|lista_dwuelementowa}}, ma pierwszy element, którym jest element numerowany na pozycji: {{Code|1}}, którym jest uchwyt danego obiektu o wartości zmiennej: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, drugiem elementem jest wyliczony numer strony, a tutaj tego numeru, nigdynie ma prawa być.
Ta funkcja jest wykorzystywana do liczenia szablonów tytułów: {{s|Śródtytuł}}, którego zawartość nagłówka, na który on wskazuje, jest do pobierana w tym przypadku przy pomocy szablonu: {{s|LinkŚródtytuł}} lub {{s|LinkŚródtytułTutaj}}. Nie są uwzględniane przy tym szablony ustawiania: {{s|Śródtekst}}, i pobierania: {{s|PobierzŚródtekst}}, bo one w naszej tablicy nic nie zmieniają.
== {{Śródtytuł|p.WydobywanieUchwytuZeTablicyBezNumeracji}}{{Code|p.WydobywanieUchwytuZeTablicyBezNumeracji}} ==
Funkcja wydowywa tablicę uchwytu dla pozycji, ale nie sam uchwyt, dla podtablicy: {{Code|uchwyty_bez_numeracji}} {{LinkPatrz|uchwyty_bez_numeracji}}, o danym kodzie: {{Code|kod}} {{LinkPatrz|kod}}, dla nazwy obiektu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WydobywanieUchwytuZeTablicyBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self}}.
| 2 = {{Code|tabela_elementow_strony_kodow}} | _2 = Jak w: {{LinkPatrz|tabela_elementow_strony_kodow}}.
| 3 = {{Code|nazwa_obiektu}} | _3 = Jak w: {{LinkPatrz|nazwa_obiektu}}.
| 4 = {{Code|kod}} | _4 = Jak w: {{LinkPatrz|kod}}.
}}
Funkcja wykorzystuje elementy tablicy: {{Code|uchwyty_bez_numeracji}} {{LinkPatrz|uchwyty_bez_numeracji}}, ustalane przez funkcję: {{LinkŚródtytuł|p.UstawUchwytyWeTablicyBezNumeracji}}, w tablicy: {{Code|tabela_elementow_strony_kodow}} {{LinkPatrz|tabela_elementow_strony_kodow}}.
== {{Śródtytuł|p.RozpatrywanieElementuUchwytuNumeracji}}{{Code|p.RozpatrywanieElementuUchwytuNumeracji}} ==
Funkcja wsadzająca utworzoną tablicę z podanym uchwytem do ogólnej tablicy pozycji nazwanych tabel z uchwytami o danej pozycji z nim. Ta tablicą jest: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a własciwie do jej podtablicy o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, a jeszcze lepiej, w jego podtablicy o kluczu o wartości reprezentowanej przez: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozpatrywanieElementuUchwytuNumeracji(self,uchwyt_obiektu,tab_numer,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self}}.
| 2 = {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} | _2 = Kod uchwytu podanego do szablonu stronicowego z odpowiednim uchwytem.
| 3 = {{Code|tab_numer}} {{Patrz|tab_numer}} | _3 = Tablica z numerkami ilości elementów w tablicy parametrów nazwanych z uchwytami, w danym elemencie analizowania strony z uchwytami i obiektami.
| 4 = {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}} | _4 = Tablica analizowania obiektów, danej strony.
| 5 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} {{Patrz|nazwa_artykulu}} | _5 = Kolejno: nazwa przestrzeni nazw, nazwa przestrzeni książki, nazwa książki i nazwa artykułu książki.
| 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu}}.
| 7 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _7 = Czy artykuł aktualny wyświetlany w przeglądarce.
| 8 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _8 = Nazwa artykułu aktualna lub bieżąca, w wersji nieszablonowej, i jednoczeście uchwyt do bazy danych kodów zakodowanego tekstu.
| 9 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _9 = Nazwa artykułu aktualna lub bieżąca, w wersji szablonowej.
| 10 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _10 = Tablica bazy kodów parsowania strony.
| 11 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _11 = Tablica analizy poszczególnych elementów kodów, do szybszego działania skryptu.
| 12 = {{Code|KtorySzablonMaZwracacKategorie}} {{Patrz|KtorySzablonMaZwracacKategorie}} | _12 = Tablica zbierająca odkodowany i rozwinięty uchwyt, do analizowania w nim zebranych kategorii, według modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}, uruchamiana w szablonach stronicowych z funkcjami '''stronicowego parsera'''.
}}
Funkcja rozwija: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a potem je odkodowuje przy pomocy: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a jeżeli ona nie jest pusta, to dla tego jest uruchamiana funkcja: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie}}.
Tworzona jest tablica: {{Code|lista_dwuelementowa}} {{LinkPatrz|lista_dwuelementowa}}, z uchwytem, jako pierwszy parametr.
Jest sprawdzane, czy element: {{Code|tablica_zmiennych.sprawdzenie_dokonane_obiektu}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_obiektu}}, jest fałszywy, jeżeli tak, to dalej jest sprawdzane, czy są elementy numerowane nazwanej tablicy: {{Code|tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2}}, o nazwie: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, a jeżeli jest pusta - na samym końcu jest ustawiana prawdziwość elementu: {{Code|tablica_zmiennych.sprawdzenie_dokonane_obiektu}} {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_obiektu}}, czyli jest inicjowana na wartość: {{Code|true}}, to dalej jest sprawdzane, czy dla elementów: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy dana książka jest poza zakresem obsługiwanym, czyli rewidowane jest, czy jest ustawiony kod problemu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, czy a jeżeli jednak nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, ustawiające pewne elementy błędu, jeżeli trzeba to zrobić.
Gdy tabela: {{Code|tab_numer}} {{LinkPatrz|tab_numer}}, odpowiada nienilowej tablicy, wtedy element: {{Code|lista_dwuelementowa}} {{LinkPatrz|lista_dwuelementowa}}, jest wstawiany na odpowiedniej pozycji, ale przeważnie nie na końcu, przy pomocy funkcji: {{LzLua|table.insert}}, dzięki określonej tabeli: {{Code|tab_numer}} {{LinkPatrz|tab_numer}}, przeciwnie na jej końcu.
Funkcja zwraca element tablicowy: {{Code|lista_dwuelementowa}} {{LinkPatrz|lista_dwuelementowa}}.
Ta tablica: {{Code|lista_dwuelementowa}} {{LinkPatrz|lista_dwuelementowa}}, ma pierwszy element, którym jest element numerowany na pozycji: {{Code|1}}, którym jest uchwyt danego obiektu o wartości zmiennej: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}.
== {{Śródtytuł|p.RozpatrywanieSzablonuObiektuDoNumeracji}}{{Code|p.RozpatrywanieSzablonuObiektuDoNumeracji}} ==
Funkcja, która uruchamia funkcję: {{LinkŚródtytuł|p.RozpatrywanieElementuUchwytuNumeracji}} {{Patrz|p.RozpatrywanieElementuUchwytuNumeracji}}, dla istniejącego uchwytu w postaci nazwanej o kluczu: {{Code|uchwyt}} {{Patrz|uchwyt}}, lub nienazwanej - w postaci numeru jego uchwytu o kluczu o wartości zmiennej: {{Code|numer_numeracji}} {{Patrz|numer_numeracji}}.
Funkcja ta wsadza tabele z uchwytem na odpowiednią pozycję w odpowiedniej nazwanej tabeli o nazwie obiektu o wartości: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, w ogólnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}.
Dokładniej własciwie w tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, do jej podtablicy o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, a jeszcze lepiej, w jego podtablicy o kluczu o wartości reprezentowanej przez: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}. To jest robione poprzez funkcję: {{LinkPatrz|p.RozpatrywanieElementuUchwytuNumeracji}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji,tab_numer,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self}}.
| 2 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _2 = Tabela parametrów szablonu.
| 3 = {{Code|tablica_zmiennych}} | _3 = Jak w: {{LinkPatrz|tablica_zmiennych}}.
| 4 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _4 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}.
| 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu}}.
| 6 = {{Code|czy_artykul_korzystany}} | _6 = Jak w: {{LinkPatrz|czy_artykul_korzystany}}.
| 7 = {{Code|numer_numeracji}} | _7 = Jak w: {{LinkPatrz|numer_numeracji}}.
| 8 = {{Code|tab_numer}} | _8 = Jak w: {{LinkPatrz|tab_numer}}.
| 9 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _9 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}.
| 10 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _10 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa}}.
| 11 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _11 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 12 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _12 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
| 13 = {{Code|KtorySzablonMaZwracacKategorie}} | _13 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}}.
}}
Funkcja zwraca wartość: {{Code|lista_dwuelementowa}} {{LinkPatrz|lista_dwuelementowa}}, którą jest pewna tablica, uzyskaną z wywołania funkcji: {{LinkPatrz|p.RozpatrywanieElementuUchwytuNumeracji}}.
Ta tablica: {{Code|lista_dwuelementowa}} {{LinkPatrz|lista_dwuelementowa}}, ma pierwszy element, którym jest element numerowany na pozycji: {{Code|1}}, którym jest uchwyt danego obiektu o wartości zmiennej: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
139tt0sz6hv43xow8drjsc8d82v01jb
Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II
4
63909
560636
558135
2026-11-08T13:33:45Z
Persino
2851
560636
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|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.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}{{Code|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}} ==
Funkcja sprawdza, czy dany artykuł należy do artykułów, któregoś spisu treści, a jeżeli nie, to dla stron, które nie należą do kategorii z ustawionym problemem: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, ale do nieaktualnej strony jest ustawiony problem: {{Code|brak spisów treści do dołączonych stron}} {{Code|brak spisów treści do dołączonych stron}} {{Patrz|brak spisów treści do dołączonych stron}}. Natomiast dla aktualnej dla stron tej samej kategorii ustawiany jest problem: {{Code|brak spisu treści do korzystanych stron}} {{Patrz|brak spisu treści do korzystanych stron}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _2 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
}}
== {{Śródtytuł|p.PusteParametryReferencji}}{{Code|p.PusteParametryReferencji}} ==
Funkcja sprawdza, jeśli są podane parametry szablonu stronicowego, które są w kategorii: {{lk|Szablony stronicowe}}, czyli: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, ewentualnie: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, ale zawsze z: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, czy są one puste.
A jeżeli one istnieją i są takie, to są ustawione problemy typu, jeśli ich wcześniej nie ustawiono:
* {{Code|puste parametry szablonów stronicowych linkujących}} {{Patrz|puste parametry szablonów stronicowych linkujących}}, kolejno dla: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, kolejno z numerami problemów: {{Code|1}}, {{Code|2}} i {{Code|3}}.
Dla obiektu o nazwie: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
{{Hr}}
Definicja skrótowa funkcji
<syntaxhighlight lang="lua">
function p.PusteParametryReferencji(self, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _2 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 3 = {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} | _3 = Uchwyt obiektu, podane w danym szablonie stronicowym.
| 4 = {{Code|nazwa_obiektu}} | _4 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
}}
== {{Śródtytuł|p.SzablonyReferencjiParametrowych}}{{Code|p.SzablonyReferencjiParametrowych}} ==
Funkcja z parametrów pudełkowych nazwy artykułu {{ZobaczTeż|nazwa artykułu}}: {{Code|nazwa artykułu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, albo {{Code|1}}, gdy bezuchwytowe, lub {{Code|2}}, i pełnej nazwy książki {{ZobaczTeż|pełna nazwa strony}}: {{Code|nazwa książki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} albo, {{Code|2}}, gdy bezuchwytowe, lub {{Code|3}}.
To wszystko jest liczone z: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, lub przy użyciu parametru również: {{Code|bezuchwytowe}} {{Patrz|bezuchwytowe}}, gdy mamy szablon stronicowy {{lk|Szablony stronicowe}}, bezuchwytowy, wtedy {{Code|true}}, przeciwnie {{Code|false/nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,bezuchwytowe)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 3 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _3 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _5 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 6 = {{Code|bezuchwytowe}} | _6 = Jak w: {{LinkPatrz|bezuchwytowe}}.
}}
Funkcja uzyskane obie nazwy książkowe dekoduje funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a później jest liczony adres bezwzględny podręcznika ze względnego dzięki: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, przy pomocy podstawy: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, podobnie, ale wcześniej jest liczona nazwa artykułu {{LinkZobaczTeż|nazwa artykułu}}, czyli: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, ale tutaj adres względny jest liczony z podstawy o ciągu pustym jako drugi parametr.
Na podstawie pełnej nazwy książki {{LinkZobaczTeż|pełna nazwa strony}}: jest liczona bardziej jej wersja pełniejsza, jeżeli to jest w ogóle możliwe z: {{Code|{{sr|#p["PełnaNazwaStronicowejKsiążki"]|p=Książkowe}}}}. A póżniej z tego wszystkiego są liczone nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy pomocy funkcji nazw: {{Code|{{ld2|Nazwy}}}}.
Na samym końcu funkcji są zwracane parametry nazw, czyli: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
62aw8ksnsbp22qegakbnelm5tq5m2gw
Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom III
4
63910
560637
558137
2026-11-08T13:35:16Z
Persino
2851
560637
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Tutaj są przedstawione inne funkcje do zbierania informacji o projekcie.
== {{Śródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}{{Code|p.ZbieranieInformacjiStronyWoluminowychPozycji}} ==
Funkcja zbierania informacji na stronie dla szablonów stronicowych: {{lk|Szablony stronicowe}}, bezuchwytowych, ale nie kontenerowych. Gdy parametr nie ma wartości, lub ma wartość fałszywą: {{Code|czy_inna_wartosc_tekst}} {{Patrz|czy_inna_wartosc_tekst}}, wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, która liczy kolejne nazwy charakteryzujące nazwy dla danego artykułu książki dla danej strony, przeciwnie parametry nazw są ściagane z: {{Code|tab_nazwy}} {{Patrz|tab_nazwy}}, ta tabela składa się numerowanych elementów, którymi są nazwy charakyteryzujące stronę.
Gdy jakaś nazwa artykułu strony została policzona, wtedy są liczone pozostałe nazwy z: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, a na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}} - ona służy do zbierania informacji o stronie, a tuż przed nim, jeśli istnieje: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 3 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _3 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _4 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 7 = {{Code|KtorySzablonMaZwracacKategorie}} | _7 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 8 = {{Code|czy_inna_wartosc_tekst}} | _8 = Jak w: {{LinkPatrz|czy_inna_wartosc_tekst}}.
| 9 = {{Code|tab_nazwy}} | _9 = Jak w: {{LinkPatrz|tab_nazwy}}.
}}
== {{Śródtytuł|p.ZbieranieKontenerowychInformacji}}{{Code|p.ZbieranieKontenerowychInformacji}} ==
Funkcja do zbierania informacji, która z parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, czyli: {{Code|nazwa przestrzeni nazw}} {{Patrz|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}, z nich są liczone parametry nazw charakteryzujące artykuł książki strony. A na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}} {{Patrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
Funkcja służy do analizy szablonów kontenerowych, na podstawie jego parametrów pudełkowych modułu: {{Code|{{m|Szablonowe}}}}, tzn. {{Code|nazwa przestrzeni nazw}} {{LinkPatrz|nazwa przestrzeni nazw}} (przestrzeń, w której mieśści się strona) i {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}} (nazwa strony).
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 3 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _3 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _4 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 7 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{Patrz|czy_szablon_pudelkowy_strony_zbiorczej}} | _7 = Funkcja potrzebna do funkcji zbierającej {{LinkPatrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, określającej, czy mamy szablon pudełkowy strony zbiorczej, taki jak: {{Code|{{s|StronaSubst}}}}, czy: {{Code|{{s|KsiążkaSubst}}}}, zobacz stronę: {{Code|{{lr2|Moduły/StronicowyParser/StronaSubst}}}}.
| 8 = {{Code|KtorySzablonMaZwracacKategorie}} | _8 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
}}
Gdy parametry: {{Code|nazwa przestrzeni nazw}} {{LinkPatrz|nazwa przestrzeni nazw}}, i {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}, uzyskane z tabeli parametrów szablonu: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, nie istnieją, wtedy funkcja się natychmiast zakańcza.
A gdy: {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}, istnieje i jest puste, wtedy też tak samo.
Gdy w parametrach pudełkowych: {{Code|nazwa przestrzeni nazw}} {{LinkPatrz|nazwa przestrzeni nazw}}, i {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}, są kody bazy kodowania, wtedy funkcja się natychmiast zakańcza, wykrywane przez funkcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}.
Zmienne istniejące: {{Code|nazwa przestrzeni nazw}} {{LinkPatrz|nazwa przestrzeni nazw}}, i {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}, są też dekodowane funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
Z: {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}, jest wydzielana nazwa jednostki właściwa bez nazwy nagłówka, którą nazwiemy tą samą zmienną.
Z tych dwóch nazw, czyli: {{Code|nazwa przestrzeni nazw}} {{LinkPatrz|nazwa przestrzeni nazw}}, i {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}, jest liczony adres, ewentualnie względny, który za pomocą funkcji: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, jest przeistaczany na bezwzględny.
Dalej są liczone nazwy charakteryzujące artykuł danej książki strony, czyli: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z tak uzyskanego adresu.
Przedostatnia funkcja, którą jest funkcją ostatnią przed funkcją zbierającą, czyli: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jeśli istnieje, to jest uruchamiana bezparametrowo, która służy do ustalania, który szablon ma zwracać kategorie na stronę.
== {{Śródtytuł|p.ZbieranieKontenerowychInformacjiReferencji}}{{Code|p.ZbieranieKontenerowychInformacjiReferencji}} ==
Funkcja zbiera informacje o stronie. Na podstawie informacji o nazwie artykułu i pełnej nazwy książki liczy parametry nazw charakteryzujące artykuł, co na tej podstawiwe liczy parametry pudełkowe i wywołuje funkcję główną przez inną funkcję, też zbierającą, i zbiera informacje o artykule.
Funkcję wykorzystuje się przy analizie linków, jeśli chcemy, by ładowana strona inna niż bieżąca, w której miesci się ten link, została przeanalizowana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 3 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _3 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _4 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
}}
Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jako parametry zwracane przez funkcję: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}.
Funkcja wyznacza parametry pudełkowe {{m|Pudełko}}, tzn.: {{Code|nazwa przestrzeni nazw}} {{LinkPatrz|nazwa przestrzeni nazw}}, i {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}, na podstawie tych nazw.
Funkcja na samym końcu wywołuje funkcję zbierającą dane ze strony: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}} (z uwzględnieniem parametru: {{Code|tab_nazwy}} {{LinkPatrz|tab_nazwy}}), która z kolei w niej jest uruchamiana procedura, z parametrem: {{Code|czy_inna_wartosc_tekst}} {{LinkPatrz|czy_inna_wartosc_tekst}}, o wartości {{Code|true}}, zwracająca wartość, czyli: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
4ny7iqrtglyw771lgc37hd69y7n183b
Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV
4
63911
560638
557584
2026-11-08T13:35:59Z
Persino
2851
560638
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|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.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}{{Code|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}} ==
Funkcja sprawdza niepoprawność nazwy strony i na podstawie tego ustawia pewne kody problemów.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,__FUNKCJA_SPRAWDZANIE)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 2 = {{Code|nazwa_obiektu}} | _2 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 3 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _3 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 4 = {{Code|uchwyt_obiektu}} | _4 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 5 = {{Code|__FUNKCJA_SPRAWDZANIE}} {{Patrz|__FUNKCJA_SPRAWDZANIE}} | _5 = Funkcja uruchamiana, jeśli jest ustawiona, na wypadek poprawności strony.
}}
W przypadku niepoprawności strony, gdy strona modułu jest aktualna (bieżąca), wtedy sprawdzany jest kod problemu, czy jest ustawiony, tzn.: {{Code|nieprawidłowe nazwy korzystanych stron}} {{Patrz|nieprawidłowe nazwy korzystanych stron}}, przy pomocy funkcji: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli nie ma takiego, to wtedy jest uruchamiana funkcja: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. Podobnie jest dla niekorzystanej strony, wtedy jest problem dla kodu: {{Code|nieprawidłowe nazwy stron dołączanych do stron}} {{Patrz|nieprawidłowe nazwy stron dołączanych do stron}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ichhsxy3nls6fzmwqhhhrufeqbqvfie
Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom V
4
63912
560639
560421
2026-11-08T13:38:22Z
Persino
2851
560639
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|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 zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wsadza uchwyt obiektu, wskazujący na aktualną stronę, do pewnej tablicy, ściśle: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
Funkcja dla tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dla jego podtablicy: {{Code|linkobiekt}} {{Patrz|linkobiekt}} (jest to tablica, w której są zbierane w różnych podtablicach, w zależności od obiektu, uchwyty różnych linków na bieżącej stronie), w jego podtablicy o wartości elementu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, co taka tablica, to nic innego jak obiekt: {{Code|linkobiekttab}} {{Patrz|linkobiekttab}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku.
| 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}.
| 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 8 = {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} | _8 = Czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}.
}}
Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych, tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, czy ma te elementy, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej poza instrukcją warunkową w tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, jest wstawiany obiekt o wartości: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
Następnie, gdy element: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli:
<syntaxhighlight lang="lua">
table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},});
</syntaxhighlight>
== {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} ==
Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} pewne podtablice.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}.
| 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 6 = {{Code|nazwa_przestrzeni_stare}} {{Patrz|nazwa_przestrzeni_stare}}, {{Code|nazwa_przestrzeni_ksiazki_stare}} {{Patrz|nazwa_przestrzeni_ksiazki_stare}}, {{Code|nazwa_ksiazki_stare}} {{Patrz|nazwa_ksiazki_stare}} i {{Code|nazwa_artykulu_stare}} {{Patrz|nazwa_artykulu_stare}} | _6 = Są to kolejno nazwy uzyskane z linków, czy funkcji pobierania, one mogą poszczególne nie istnieć. One są inicjowane w funkcji: {{LinkŚródtytuł|p.GeneralneLinkowanie}}.
| 7 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _7 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 8 = {{Code|uchwyt_obiektu}} | _8 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 9 = {{Code|czy_pobierz}} | _9 = Jak w: {{LinkPatrz|czy_pobierz}}.
}}
Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw strony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, uruchamia funkcję zdefiniowaną w nim.
{{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wcześniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}.
Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, ale niekorzystana, a {{Code|false}}, bieżąca, ale niekorzystana, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest sprawdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza.
=== {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} ===
Dla obiektów, dla których jest ustawiony parametr: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkowej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}, również wskazywanych przez: {{s|PobierzŚródtekst}}.
Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno o wartościach: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}.
=== Dalszy opis funkcji ===
Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr takiej wartości nie przyjmuje, wtedy tylko jest uruchamiana ta funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dotyczące szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
{{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie, to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}.
Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}} {{Patrz|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
{{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, do sprawdzania pustości pewnych parametrów.
{{Tab}}Gdy tabela: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}} {{Patrz|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
== {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} ==
Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, na podstawie poszczególnych wskazywanych artykułów na biężącej książce lub innej, która zbiera raz informacje o danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}.
| 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 8 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _8 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 9 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _9 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 10 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _10 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 11 = {{Code|KtorySzablonMaZwracacKategorie}} | _11 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 12 = {{Code|czy_pobierz}} | _12 = jak w: {{LinkPatrz|czy_pobierz}}.
}}
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}.
=== Wyznaczanie nazw linku stronicowego ===
Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, wywołując: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}.
=== {{Śródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}{{Code|UstalanieNazwStronyArtykularnegoWoluminu}} ===
Funkcja kolejno ustalająca cztery nazwy odpowiadające linkowi, ustalane z ich nazwy artykułu i nazwy książki, ale przed tą funkcją w innej. Funkcją można sterować przy pomocy parametru: {{Code|czy_tak}} {{LinkPatrz|czy_tak}}. Te nazwy nie wszystkie muszą istnieć, a jeżeli któraś nie istnieje, to wtedy dla niej jest brany w funkcji jej odpowiednik z bieżącego artykułu, chodzi tu o jej nazwy.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UstalanieNazwStronyArtykularnegoWoluminu=function(czy_tak)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|czy_tak}} {{Patrz|czy_tak}} | _1 = Jeśli odpowiada prawdziwej wartości, to nazwy przestrzeni nazw: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są brane pod uwagę, a jeśli one poszczególne nie istnieją, to brane są nazwy bieżżaćego woluminu a: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest przypisywana, jeśli istnieje, lub brana jest nazwa artykułu bieżącego woluminu. A jeśli ta zmienna, jednak jest o innej wartości, to brane są w trzech nazwach początkowych nazwy woluminu bieżącego, a w przypadku nazwy artykułu się nie zmienia sytuacja.
}}
=== Inicjowanie wartości starych nazw na podstawie uzyskanych wcześniej ===
Parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwa artykulu}} {{LinkPatrz|nazwa artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, te z tym {{Code|_stare}} (na końcu), są inicjowane parametrami bez tego, czyli te wspomniane.
=== Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie ===
Na samym końcu jest uruchamiana: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrem o tym uchwycie, wyliczonym wcześniej. Ta funkcja mówi przy jakim obiekcie szablonów stronicowych ma być uruchomione generowanie kategorii błędów wyniku uruchomień na stronie poszczególnych szablonów stronicowych, w kategorii na: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|ZbieranieDanychPrzezGeneralneLinkowanie}}{{Code|ZbieranieDanychPrzezGeneralneLinkowanie}} ===
Główna funkcja do zbierania danych funkcji: {{LinkŚródtytuł|p.GeneralneLinkowanie}}, uruchamiana przed: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZbieranieDanychPrzezGeneralneLinkowanie()...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = Brak używanych parametrów funkcji. | komórka1 = tak
}}
==== Przypadek uchwytu pustego ====
Gdy uchwyt jest pusty lub nie istnieje, wtedy wywoływana jest funkcja: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|true}}.
* Następnie wtedy, przy uchwycie pustym uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}},
* A przy nieistniejącym, jeżeli problem: {{Code|brak uchwytu}}, sprawdzamy przy pomocy: {{LinkŚródtytuł|p.CzyJestTakiProblemowyElement|StronicowyParser/Problemy}}, nie istnieje, to wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, i ustawiany jest ten problem przy pomocy: {{LinkŚródtytuł|p.UstawTakiProblemowyElement|StronicowyParser/Problemy}}.
==== Istniejący niepusty uchwyt linku ====
Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} z niej samej, lub jesli ona nie istnieje, wtedy jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika. Wiemy to z instrukcji:
<syntaxhighlight lang="lua">
nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil));
</syntaxhighlight>
===== Nazwa artykułu nie istnieje =====
Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|true}}, następnie: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}.
===== Ale istnieje tylko nazwa artykułu =====
Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, przy pomocy: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|false}}, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}.
===== Dodatkowo istnieje tylko nazwa książki =====
Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest pusta, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} jest niepusta, wtedy nazwa artykułu ma nadal taką wartość, a jeśli pusta, to zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}.
====== Liczenie parametrów nazw wywołań szablonowych linków ======
Przeciwnie są liczone parametry nazw przy pomocy: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|false}}.
===== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów =====
Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są porównywane z nazwami, które były wcześniej generowane przez funkcję: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
8g5lwkp6gi10wd2eg5d1kwpdd2vvu5c
Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I
4
63913
560641
557599
2026-11-08T13:45:39Z
Persino
2851
560641
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|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.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Funkcja służy do zbierania informacji o danej analizowanej stronie, którego główną częścią jest strona korzystana, w której gromadzą się informacje też z pozostałych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}},
| 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _2 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 3 = {{Code|czy_artykul_korzystany}} | _3 = Jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 5 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} | _5 = Jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom III}}.
}}
=== {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} ===
Funkcja do tworzenia tabeli artykułów z innymi jej parametrami wielowymiarowymi, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub, a te nieistniejące są nowo tworzone, jako puste tablice, tworząc w ten sposób wielowymiarową tabelę, zależną od parametrów nazw artykułu, ale ksiązki lub niby-ksiażki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Parametry funkcji {{nobold|{{ZobaczTeż|parametry artykułu}}}}:
| 1 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _1 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}},
| 2 = {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} | _2 = Nazwa artykułu w książce, bez pełnej nazwy książki.
}}
==== Tworzenie tabel książkowych danego artykułu ====
Poniżej są tworzone podtabele puste, jeśli nie zostały utworzone.
Funkcja, która w tabeli: {{Code|self}} {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, w podtabeli o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}}, o dalszym kluczu: {{Code|dane_analizy_stron}} {{Patrz|dane_analizy_stron}}, która istnieje, tworzy tabele trójwymiarową kolejno po parametrach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, te tabele pośrednie są wtedy tworzone, jeśli nie istnieją, a gdy istnieją, to nie są tworzone, tylko funkcja przechodzi do dalszych.
Dalej tworzona jest podtabela, jeśli nie istnieje o nazwie {{Code|lista_podstron_woluminu}} {{Patrz|lista_podstron_woluminu}}.
Następnie generowana jest podtabela, jeśli nie istnieje, o kluczu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
==== Wartości zwracane ====
* Te tutaj ustawiane zmienne z kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i bez niej.
* Poniższe zmienne tabel nazw danej ksiązki można przyporządkować kolejnym nazwą danego artykułu, gdy podano nazwę artykułu ksiązki, lub nie, wtedy to samo, ale dla nazw książki, tzn.:
** {{Code|tablica_przestrzeni}} {{Patrz|tablica_przestrzeni}}, {{Code|tablica_przestrzeni_ksiazki}} {{Patrz|tablica_przestrzeni_ksiazki}}, {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} i {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}} - są kolejno przyporządkowane zmiennym: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
===== Przypadek istnienia nazwy artykułu =====
Funkcja zwraca kolejno elementy, jeśli parametr: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, został podany, wtedy:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
===== Przypadek nieistnienia =====
Przeciwnie zwracany jest zbiór zmiennych po kolei:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
</syntaxhighlight>
Co to są za zmienne, wiadomo z ich nazw, po prostu są to pewne pośrednie, i nie tylko, tabele.
=== {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} ===
Funkcja zwraca parametry strony aktualnej, analizowanej jeszcze raz, aby ją nie powtórnie rewidować, lub podobnie dla innego artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end;
</syntaxhighlight>
Parametry funkcji są takie same jak w punkcie {{LinkZobaczTeż|parametry artykułu}}.
==== Strona bieżąca, jako artykuł niekorzystany, czyli przy fałszywej wartości: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}}}, dla strony już analizowanej, ale jeszcze nie do końca ====
Dla jeszcze raz analizowanego artykułu i bieżącego, ale tym razem niekorzystanego, zwracane są parametry:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
Tabela: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tam są dane zebrane z aktualnego artykułu.
===== Zwracane parametry dla strony bieżącej analizowanej jako niebieżąca =====
Dla elementu: {{Code|dane_analizy_stron}} {{LinkPatrz|dane_analizy_stron}}, jeżeli dany powtórnie bieżący artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
</syntaxhighlight>
* Na końcu wartość: {{Code|false}}, wskazuje na aktyalny bieżący artykuł, powtórnie jeszcze raz analizowany.
* Zmienna o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron}}, tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, a to wewnątrz: {{Code|self}} {{Patrz|self}}, to nic innego jak tabela zmiennych danego artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
==== Strona niebieżąca, ale niekorzystana, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}}} ====
Przedstawiony jest tutaj przypadek pobierania zmiennych strony niebieżącej, ale niekorzystanej.
===== Ustawianie analizy spisu treści artykułu dla strony dołączonej, innej niż bieżąca =====
Dla innej takiej strony jest tworzony parametr, jeżeli jest włączona analiza, dla klucza: {{Code|analiza_spis_tresci}} {{Patrz|analiza_spis_tresci}}, według tego jest tworzony wartością prawdziwą parametr o innym znów kluczu: {{Code|analiza_spis_tresci_doloczone}} {{Patrz|analiza_spis_tresci_doloczone}}:
<syntaxhighlight lang="lua">
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
</syntaxhighlight>
===== Pobieranie elementów przeanalizowanej strony =====
Dla: {{Code|dane_zebrane_ze_stron}} {{Patrz|dane_zebrane_ze_stron}}, to podtabela: {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}}, z kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o nazwie takiej samej, jak ten parametr zwracany.
====== Analiza spisu treści artykułu już tego sprawdzonego ze zebranymi informacjami o niej, zbieranie dodatkowych elementów ======
Jeśli mamy stronę niekorzystaną, czyli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}},j est fałszywy, wtedy przy istnieniu funkcji, takim że jest elementem: {{Code|TOCSPIS_FUNCTION}} {{Patrz|TOCSPIS_FUNCTION}}, tabeli artykułu: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, ona jest uruchamiana, jeśli zwróci prawdziwa wartość, w takim wypadku jako element jest usuwany z niej stamtąd.
====== Zwracane parametry takiej strony ======
Funkcja zwraca wynik, dla innego artykułu niż bieżąca:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
* A na końcu wartość {{Code|true}}, wskazuje, że strona niebieżąca jeszcze raz powtórnie jest analizowana.
* Tutaj element: {{Code|dane_zebrane_ze_stron}}, oznacza tyle, co: {{LinkPatrz|dane_zebrane_ze_stron}}.
==== Zwracane parametry, gdy coś jest nie tak z nią, lub strona nie została przeanalizowana, tzn. informacje o niej nie zostały zebrane ====
Przeciwnie jest zwracane: {{Code|true}} - gdy strona jeszcze nie została przeanalizowana, lub {{Code|nil}} - gdy coś jest nie tak ze zmiennymi strony, jeśli tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} w {{Code|self}} {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, lub podtatela: {{Code|dane_analizy_stron}} {{LinkPatrz|dane_analizy_stron}}, gdy któreś z nich nie istnieje, lub oba z nich.
=== {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} ===
Funkcja sprawdza, czy jest prawda: {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, prawda: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}} i fałsz: {{Code|tabela_artykul.strona_zbiorcza}} {{Patrz|tabela_artykul.strona_zbiorcza}}, a jeśli tak, to inicjowane są funkcje definicjami:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
</syntaxhighlight>
Wtedy zmiennej: {{Code|tabela_artykul.strona_zbiorcza}} {{LinkPatrz|tabela_artykul.strona_zbiorcza}}, jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, na podstawie tego, czy aktualna strona jest stroną zbiorczą, a może nie.
=== {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} ===
Funkcja do zbierania informacji o spisie artykułów książkowych i ich licencjach oraz ewentualnie zebrane informacje ze stron: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, z szablonu, w któreś tej pozycji w: {{s|Układ autonawigacji}}, i ze spisów podanej w niej jako parametry.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function InneInformacjePrzebneDoAnalizowanejKsiazki()...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1= Brak. | komórka1 = tak
}}
==== {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} ====
Funkcja do inicjowania parametrów spisu danej ksiązki, do której należy dany artykuł, np. ten, uzyskanych z analizy wszystkich spisów danej książki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}} | _1 = Tablica dla analizowanej książki.
| 2 = {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} | _2 = Czy podać adres bazowego woluminu.
}}
Tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest inicjowany jej element: {{Code|spis}} {{Patrz|spis}}, tabelą: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}.
Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, ma wartość prawdziwą, to iniciowana jest podtablica, tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy, podtablice o kluczach: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}} i {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}}, tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, i inicjowane są tabelami o takich samych nazwach, jak te klucze dwa, a ostatni tabelą: {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}}.
Tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, jest równa wartości: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}}, jeśli istnieje: {{Code|czy_podac_adres}} {{LinkPatrz|czy_podac_adres}}, lub przeciwnie wartości {{Code|nil}}.
==== Dalszy opis funkcji - etap I ====
Jeżeli dla aktualnego artykułu dla książki nie ustawiono kodu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, wtedy są analizowane elementy opisane w nagłówku opisywanej funkcji, pod warunkiem, jeżeli istnieją parametry nazw książki: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
Gdy artykuł jest analizowany, wtedy jeśli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, ma wartość prawdziwą, jeśli przy nieistnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tablicy {{Code|self}} {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z podtablicą: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, wtedy to coś jest inicjowane wartością na {{Code|tak}}. Co będzie znaczyło, że artykuł bieżący ma spis, czy spisy.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}. Jeśli ten parametr jest prawdziwy, to ten artykuł ma spis już zanalizowany, a więc jeszcze raz on nie będzie już badany.
A jeśli jednak spisy książki nie zostały sprawdzone i sparsowane, wtedy uruchamia się następne rozgałęzienie pętli.
Uruchamia się dalej funkcja: {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}}, w nim są uruchamiane w pewien sposób dwie funkcje. Ta funkcja zwraca parametry: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, {{Code|nazwa_glownego_spisu}} {{Patrz|nazwa_glownego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_artykuly}} {{LinkPatrz|dodatkowe_artykuly}} i {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}.
===== {{Code|{{sr|#p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji|p=StronicowyParser/SpisTreści}}}} =====
Ta funkcja służy do parsowania spisów i innych omówionych elementów książki danego artykułu.
====== Pierwsza anonimowa funkcja ======
Dla analizowanej pierwszej funkcji, ona jest uruchamiana, wtedy kiedy zostały zebrane wszystkie informacje ze spisów, wtedy dla elementu: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}, jest sprawdzane, czy jego element: {{Code|spis}} {{LinkPatrz|spis}}, istnieje, jeśli istnieje, zatem wtedy elementy z: {{Code|_strona_temp}} {{Patrz|_strona_temp}}, inicjujemy tymi z: {{Code|_strona}} {{Patrz|_strona}}, z elementów zmiennych (parametrów) tej funkcji, oraz potem inicjujemy inne jego podelementy, tzn.: {{Code|spis}} {{LinkPatrz|spis}}, {{Code|licencja}} {{LinkPatrz|licencja}}, {{Code|nazwa_bazowego_spisu}} {{LinkPatrz|nazwa_bazowego_spisu}}, {{Code|tab_inne_spisy}} {{LinkPatrz|tab_inne_spisy}}, {{Code|dodatkowe_strony_woluminu}} {{LinkPatrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, tymi samymi elementami, ale dla innej strony, tzn. z: {{Code|tablica_ksiazki_strona}} {{LinkPatrz|tablica_ksiazki_strona}}.
Funkcja się uruchamia, kiedy dany spis danej książki jest przekierowaniem do całkiem innej strony, nie tylko w tym podręczniku, ale może być też w innym, ale nie jednocześnie.
{{OpisParametrów
| tytuł = Elementy tablicowe książkowe:
| 1 = {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}} | _1= Element książkowy tablicowy, który jest podtablicą właśnie że dla: {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}}, co jest właśnie tablica dla kluczy, którymi są właśnie artykuły, a każdy taki artykuł ma tablicę, a przodek tej tablicy, to nic innego jak: {{Code|dane_analizy_stron}} {{LinkPatrz|dane_analizy_stron}}, tablicy {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, a to {{Code|self}} {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 2 = {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}} | _2 = Znaczenie tej tablicy jest takie samo, jak dla: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, tylko ta tablica jest do tej strony, co wskazuje przekierowanie '''mechanizmu {{NS|k=mw|w=tak|l=tak}}''', a: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest własnie to przerowanie.
}}
Też jest inicjowany element tej pierwszej zmiennej książkowej o kluczu: {{Code|referencja_do_nowej_formy_spisu}} {{Patrz|referencja_do_nowej_formy_spisu}}, według:
<syntaxhighlight lang="lua">
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
</syntaxhighlight>
Funkcja wtedy zwróci wartość liczbową: {{Code|1}}, a w innych przeciwnych wypadkach ta funkcja nic nie zwraca.
====== Druga anonimowa funkcji ======
Ta funkcja działa, gdy parametry strony, tzn.: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są równe podobnym parametrom z: {{Code|_ref_spis}} {{Patrz|_ref_spis}}, z parametrów tej funkcji, tzn. czy spis jest analizowanym korzystanym artykułem. Ta funkcja służy do tego, aby nie analizować dwa razy tego samego spisu, raz jako spis, a za innym razem jako artykuł z uchwytami.
Ta funkcja kopiuje dokładnie elementy z: {{Code|_ref_spis}} {{LinkPatrz|_ref_spis}}, temu z: {{Code|_ref}} {{Patrz|_ref}}, te elementy, to nic innego jak: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, czyli tworzymy elementy takie: {{Code|tekst_rozwiniety_calego_artykulu_ref}} {{Patrz|tekst_rozwiniety_calego_artykulu_ref}}, {{Code|tablica_analizy_obiektow_strony_dany_modul_ref}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul_ref}} i {{Code|tablica_danych_parametrow_szablonu_strony_ref}} {{Patrz|tablica_danych_parametrow_szablonu_strony_ref}}.
==== Dalszy opis funkcji - etap II ====
===== Przypadek nieistnienia spisu głównego książki =====
Gdy: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, jest równa {{Code|0}}, dalej:
{{Tab}}Gdy to jest artykuł korzystany, tzn. zmienna: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przyjmuje wartość prawdziwą, wtedy przy pomocy funkcji: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod problemu: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie natomiast, tzn. strona nie jest bieżąca, to przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod problemu: {{Code|dołączone strony główne nie istnieją}} {{Patrz|dołączone strony główne nie istnieją}}.
===== Przypadek istnienia spisu głównego w przekierowaniu spisu głównym innej książki =====
Ten rozdział przedstawia analizę spisową spisu danego artykułu książki.
====== Wstęp analizy wyszukiwania przekierowań, na co one wskazują w przypadku bieżącego artykułu ======
A jeśli gdy, ta zmienna: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, jedynie istnieje wtedy, jeśli to jest tabelka, dalej jeśli: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, ma wartość, to:
* Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}}, na podstawie tego, aby zachować ten stary element, przed zmianą, inicjując to tablicą: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
* Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z pierwszym parametrem: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, i drugą wartością: {{Code|true}}.
* Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy, danego przekierowania, lub ten sam adres, gdy to nie jest właśnie nim, czyli: {{Code|artykul}} {{Patrz|artykul}}, i kod uzyskanego wyniku: {{Code|kod_wyniku}} {{Patrz|kod_wyniku}}.
Kolejne nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są liczone z: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, po kolejnych numerkach.
====== Analiza błędów zwróconych przez funkcję zwracającą, na co wskazuje przekierowanie, wraz z kodem przypadku ======
; Przypadek stron przekierowań, jak i nie{{dk}}
Gdy {{ZobaczTeż|sprawdzanie_i_pobieranie}}: {{LinkPatrz|kod_wyniku}}, jest równy: {{Code|1}} lub {{Code|2}}, wtedy uzyskujemy kolejne wartości z: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}, pobierająca elementy artykularne, z ostatnim parametrem: {{Code|artykul}} {{LinkPatrz|artykul}}, w takim razie uzyskujemy pewne wartości.
* Gdy pierwszy parametr nie ma wartości, to zwracamy tą wartość, z drugą wartością {{Code|true}}, co potem funkcja nadrzędna zostaje zakończona.
* Gdy pierwsza wartość istnieje, ale taki artykuł już został przeanalizowany, wtedy jest analizowany funkcją: {{LinkŚródtytuł|StronaSubstFunkcja}}, z poprzednimi wartościami zwracanymi, co poprzednio.
; Ogólny, nawet pod tym, co opisuje poprzedni opis, wykonywany zawsze{{dk}}
Dla {{ZobaczTeż|razem_sprawdzanie_i_pobieranie}} wartości {{LinkPatrz|kod_wyniku}}, od {{Code|1}} do {{Code|4}}, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, tworząca elementy artykularne, które są zapisywane w tabeli: {{Code|tablica_ksiazki_stara}} {{LinkPatrz|tablica_ksiazki_stara}}, pod kluczem: {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu}}, która jest inicjowana tabelą z elementów nazw z: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
* Następnie jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
* Na samym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej jest kolejna wartoścć zwracana: {{Code|artykul}} {{LinkPatrz|artykul}}, i {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku}}.
===== W przypadku braku płynności w określeniu spisów z ustawieniami podręcznika =====
Gdy wartość: {{Code|adres_ksiazki_glownego_spisu_tresci}} {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z pierwszym parametrem: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, i drugim: {{Code|false}}.
===== Przypadek istnienia przekierowania spisu w przestrzeni książkowej do przestrzeni nazw, nawet tych niby, do tego niepodręcznikowego =====
Jeśli wartość: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, nie jest tabelą, ale jest nie równa jeden, wtedy podobnie wywołujemy instrukcje jak w: {{LinkZobaczTeż|sprawdzanie_i_pobieranie}}.
===== Brak wyróżnionego spisu przy istnieniu głównego spisu książki =====
Jeśli: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, nie istnieje, wtedy dla: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, prawdziwego:
* Gdy nie istnieje problem z: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{Patrz|brak spisów treści do korzystanych książek na ich stronach głównych}},
** Sprawdzany według: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, dla strony głównej podręcznika, który też jest artykułem, wtedy ustawiamy problem: {{Code|brak spisów treści do korzystanych książek na ich stronach głównych}} {{LinkPatrz|brak spisów treści do korzystanych książek na ich stronach głównych}}, przy: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
A dla {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} fałszywego:
* Dodajemy jedynie problem: {{Code|brak spisów treści do dołączonych książek na ich stronach głównych}} {{Patrz|brak spisów treści do dołączonych książek na ich stronach głównych}}, dzięki: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
=== {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} ===
Gdy: {{Code|kod_wyniku_przekierowan}} {{Patrz|kod_wyniku_przekierowan}}, ma wartość nieprzydzieloną, wtedy:
* Jest liczone przekierowanie na jąką stronę przekierowuje, na podstawie: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}.
; Jeśli przekierowanie istnieje, a funkcja zwraca wartość nienilową{{dk}}
* Jeżeli równa jest nazwa ta {{Code|strona}} {{LinkPatrz|strona}} nazwie modułu {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}}, wtedy funkcja zwraca wartość {{Code|0}},
* Przeciwnie są liczone nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
Które są wykorzystane do liczenia do funkcji: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE}}.
* A jeżeli pierwsza wartość nie istnieje, wtedy jest zwracana ta wartość,
* Przeciwnie dla wartości: {{Code|wartosc_wyniku}} {{Patrz|wartosc_wyniku}}, zero, i gdy wartość: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}. Później zwracamy wartość: {{Code|wartosc_wyniku}} {{LinkPatrz|wartosc_wyniku}}.
Jeżeli te warunki nie są spełniony instrukcji warunkowej, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{Code|strona}} {{LinkPatrz|strona}}, zaczyna mieć wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
* Jest to funkcja do sprawdzania, czy to jest strona zbiorcza. Dzzięki temu uzyskujemy wartość, jako powiadomienia, niezależnie od rodzaju strony zbiorczej, czy jest nią.
Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} przybiera wartość prawdziwą, wtedy definiowane są funkcje według:
<syntaxhighlight lang="lua">
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
</syntaxhighlight>
Potem jest liczony wynik z: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}, jeśli ten wynik przybiera jakąś wartość niefałszywą, wtedy zmiennej: {{Code|artykul_analizowany.strona_zbiorcza}} {{Patrz|artykul_analizowany.strona_zbiorcza}}, jest przydzielana wartość {{Code|tak}} lub przeciwnie wartość pustą, i on jest zwracany przez tą funkcję.
=== {{Śródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}{{Code|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}} ===
Ta funkcja zbiera informacje o danym obiekcie, jeżeli da się go sklasyfikować, do pewnej grupy obiektów z uchwytem numerowanym lub nie, lub tylko linku z uchwytem, albo szablonu, który liczy numer artykułu dla strony lub na podstawie tego numeru stronę.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 2 = {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} | _2 = Nazwa danego szablonu.
| 3 = {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} | _3 = Tabela modyfikatorów szablonu.
| 4 = {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} | _4 = Kod danego szablonu.
| 5 = {{Code|obiekt}} | _5 = Jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom V}}.
| 6 = {{Code|kod}} | _6 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
| 7 = {{Code|tab_numer}} | _7 = Jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
}}
Funkcja liczy podzmienną: {{Code|strona_ze_szablonem_strona_start}} {{Patrz|strona_ze_szablonem_strona_start}} w tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, przydziela jej wartość {{Code|tak}}, jeżeli strona posiada w swoim w wikikodzie szablon {{s|StronaStart}}, równe jemu lub ich kolegom. Funkcja ustawia, czy na aktualnej stronie jest spis treści, dzięki wartości: {{Code|analiza_spis_tresci_korzystane}} {{Patrz|analiza_spis_tresci_korzystane}} w tej samej tablicy. Jeżeli ten szablon ma formatowanie, wtedy ustawiana jest wartość: {{Code|formatowanie}} {{Patrz|formatowanie}}, też w nim.
Jeżeli strona jest z szablonami strony zbiorczej, tzn. {{Code|{{sr|#p.strona_zbiorcza|p=StronicowyParser/obiekty}}}}, i nie ma ona zmiennych pudełkowych {{m|Pudełko}}, wtedy jest ona zakańczana. W tym rozgałęzeniu w dwóch punktach przydzielana jest wartość: {{Code|analiza_stron_korzystanych_zbiorczych}} {{Patrz|analiza_stron_korzystanych_zbiorczych}}, taka: {{Code|true}}, by drugi raz nie wejść do tego samego bloku w tych miejscach. Aby funkcja weszła w te miejsca, to musi być ona w stronie zbiorczej.
Ta funkcja wchodzi w ten blok opisany powyżej, gdy mamy artykuł korzystany według wartości prawdziwej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy istnieniu tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
Gdy nazwa szablonu zawiera na początku znak dwukropka, tzn. {{Code|:}}, wtedy ta funkcja nic nie liczy, przeciwnie wykorzystuje szablon typu: {{s|Wypowiedzenie}} i jego kolegów, do zamieniania uchwytów na ich numeracje, a także tworzy linki na stronie aktualnej z numeracją przyporzadkowym pewnym uchwytym w tych szablonach. Funkcja dla szablonów tytułów: {{s|Śródtytuł}}, który jest zastępowany pustą wartością, on jest potrzebny, by jego szablon linku wskazywał na link do nagłówka, albo dla {{s|Śródtekst}}, by jego szablon pobierania wyświetlał jego kod wskazanym zmienną kluczem {{s|Parametr|klucz}}. Też tam są analizowane {{lk|szablony stronicowe}}, czyli nawigacji, czy numeracji, czy zbierania informacji o spisach bieżącej książki.
Szablon liczy, czy jest spis treści, na aktualnej lub dołączonej stronie, by to wykorzystać do jej liczenia. Także są liczone inne elementy szablonów stronicowych, by zamieniać jedne elementy na inne, wszystko jest dla szablonów w podkategorii kategorii: {{lk2|Szablony stronicowe}}.
=== {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} ===
Funkcja uruchamiająca analizę szablonu na danej stronie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} | _1 = Jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}}.
| 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom V}}.
| 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
}}
Funkcja uruchamia: {{Code|{{sr|#p.AnalizaSzablonuStronicowegoParsera|p=StronicowyParser/Potrzebne}}}}, która uruchamia funkcję: {{LinkŚródtytuł|AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego}}, do analizy danego szablonu.
=== {{Śródtytuł|IterowaniePoElementachTekstu}}{{Code|IterowaniePoElementachTekstu}} ===
Szablon iteruje funkcją: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, po szablonach w tekście, o dla każdego szablonu uruchamia funkcję: {{LinkŚródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
| 2 = {{Code|tab_numer}} | _2 = Jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
}}
=== Funkcje problemów szablonu nagłówka spisu treści ===
W tym rozdziale są przedstawione zdefiniowane funkcje problemów, jako rozszerzenie modułu: {{Code|{{ld2|StronicowyParser/Problemy}}}}, które są potrzebne też do generowania kategorii na podstawie modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}. Też jest przedstawione generowane zmiennej, że kategorie są generowane w pierwszym lepszym {{Code|{{lk|Szablony stronicowe|szablonie stronicowym}}}}, które posiadają niepuste uchwyty.
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} ====
Funkcja do użycia w nagłówkach z obecnością: {{Code|{{s|Śródtytuł}}}}, do zgłaszania problemów, jeżeli taki nagłówek powtórzono.
; Gdy parametr{{dk}} {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}}}, jak jest prawdziwy{{dk}}
* Jeśli nie jest ustawiony problem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, taki: {{Code|powtórka nagłowek w stronie korzystanej}} {{Patrz|powtórka nagłowek w stronie korzystanej}}, to jest wstawiany on jest dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
* Przeciwnie jest to samo robione, tylko na początku z różnicą do poprzedniego jest ustawiany tą samą funkcją problem: {{Code|powtórka nagłówek w stronie dołączonej}} {{Patrz|powtórka nagłówek w stronie dołączonej}}.
; Inicjowanie zmiennej, który pierwszy szablon z kategorii{{dk}} {{nobold|{{lk2|Szablony stronicowe}}}}, ma zwracać kategorie, w wyniku błędu {{nobold|{{Code|{{ld|StronicowyParser|Stronicowego parssera}}}}}}{{dk}}
* A także jest inicjowana podzmienna, jeśli nie była taka: {{Code|{{sr|#self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie}}}} {{Patrz|ktory_szablon_stronicowy_ma_zwracac_kategorie}} w tabeli {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, który pierwszy szablon ma zwracać kategorie '''{{ld|StronicowyParser|Stronicowego Parsera}}''', czyli wśród szablonów stronicowych.
; Definicja skrótowa i parametry, funkcji{{dk}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji {{nobold|{{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}}}:
| 1 = {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} | _1 = Uchwyt szablonu nagłówka.
| 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _2 = Nazwa szablonu.
}}
==== {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} ====
Jest to samo, co w funkcji: {{LinkŚródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}, tylko z tą równicą, że to dotyczy tekstu rozdziału, wtedy mamy problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{Patrz|nagłówek w tekście rozdziału w stronie korzystanej}} lub {{Code|nagłowek w tekście rozdziału w stronie dołączonej}} {{Patrz|nagłowek w tekście rozdziału w stronie dołączonej}}, dla jakikolwiek nagłówka {{s|Śródtytuł}} umieszczonej w nie nagłówku, tylko w tekście rozdziału.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = Jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}. | komórka1 = tak
}}
=== {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} ===
Funkcja sprawdzająca, czy jest taki ustawiony problem: {{Code|nagłówek w tekście rozdziału w stronie korzystanej}} {{LinkPatrz|nagłówek w tekście rozdziału w stronie korzystanej}}, na podstawie: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, przy sprawdzaniu rozdziałów przed pierwszym nagłówkiem dodatnim równaniowym (przed nim tekst - rozdział zerowy), czy tam znajduje się jakikolwiek {{s|Śródtytuł}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = Brak. | komórka1 = tak
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
98z7ghsdetb2stjyyjws4dsyhjxpf2e
Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom V/Część II
4
64128
560629
556359
2026-11-08T12:43:59Z
Persino
2851
560629
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|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.IterTekst}}{{Code|p.IterTekst}} ==
Jest to dokończenie dokumentacji (opisu) funkcji bibliotecznej: {{LinkŚródtytuł|p.IterTekst|StronicowyParser/Rozdziały/Tom V/Część I}}, ze strony projektu: {{Code|{{lr2|Moduły/StronicowyParser/Rozdziały/Tom V/Część I}}}}, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== Kod dalszy, bez wybrania dalej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ===
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/Rozdziały/Tom V/Część I}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|StronicowyParser/Rozdziały/Tom V/Część I}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{Code|czy_inne_rozdzialy_analizowac}} {{LinkPatrz|czy_inne_rozdzialy_analizowac|StronicowyParser/Rozdziały/Tom V/Część I}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_inne_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcją inicjującą jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{LinkŚródtytuł|p.IterTekst|StronicowyParser/Rozdziały/Tom V/Część I}}, czyli jej funkcji zwracanej.
=== Kod wspólny ===
==== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} ====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|linia}} | _1 = Jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
| 2 = {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} | _2 = funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
}}
; Pierwszy gdy znaleziono artykuł bez swojego nagłówka (rozdział nilowy) lub z nim (rozdział nienilowy){{dk}}
* Funkcja: {{Code|funkcja1}} {{LinkPatrz|funkcja1}}, jest wtedy wykonywana, gdy znaleziono właściwy pierwszy artykuł w właściwym spisie treści, i wtedy mamy ustawiony nagłówek '''nilowy''', czyli, dla artykułów pierwszych w spisie, które nie mają swojego nagłówka. W innym wypadku gdy znaleziono taki pierwszy artykuł ze swoim nagłówkiem.
* A funkcja: {{Code|funkcja2}} {{LinkPatrz|funkcja2}} - gdy takiej linii nieznaleziono.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie. Później funkcja według: {{LinkŚródtytuł|RozwazajLinie}}, ustawia, czy w tej jest rzeczywiście ona.
===== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} =====
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy, typu {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, obiektów:
* {{Code|SZABLON}} - szablonów niebędących szablonami centrowania: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, lub je niemające zawartości, według tablicy: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|ZNACZNIK}} - znaczników niebędących znacznikami centrowania: {{Tag|center}} i znacznikami nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{tag|h6}}, według: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, w tym przypadku to stosujemy poprzez szablon: {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
* Dla innych typów niż te oba powyższe, czasami tymi innymi są to dotyczące również: {{Code|LINKW}} - linki wewnętrzne, i {{Code|LINKZ}} - linki zewnętrzne.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = Jak w: {{LinkZobaczTeż|szablon-obiekt-kod|StronicowyParser/Rozdziały/Tom V/Część I}}.| komórka1 = tak
}}
* Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}.
* W innym rozgałezieniu tej instrukcji, ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
===== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} =====
Funkcja rozważa ogólnie linie, czy w nim są obiety z: {{Code|SZABLON}}, {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, czy zwykłymi artykułami, a może nie ma tam żadnego linku, nawet inteligentnego, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna.
Funkcja słuzy przede wszystkim do analizy znaczników, {{Code|ZNACZNIK}}, innych niż: centrowania: {{Tag|center}}, i nagłówków: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} | _1 = Zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
}}
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy artykułów, czy okładek, zatrzymując się właśne na nich.
Iterator iteruje po zawartości zawartości elementu {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}}, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
====== {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} ======
Funkcja właściwa do rozważania szczególnego z obiektami. Funkcja jest używana przez funkcję: {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = Jak w: {{LinkZobaczTeż|szablon-obiekt-kod|StronicowyParser/Rozdziały/Tom V/Część I}}. | komórka1 = tak
}}
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} - artykuł okładka, lub {{Code|1}} - właściwy artykuł nieokładkowy, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
====== Dalszy opis funkcji ======
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
===== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} =====
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, też do rozważania nagłówków centrowanych szablonowo, czy znacznikowo: {{Tag|center}}, a nawet gdy zamiast tego mamy znacznik nagłówka: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{tag|h6}}, według: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} | _1 = Zawartość szablonu spisu treści z linkami wewnętrznymi, a nawet inteligentnymi, czyli obiekty {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, typu: {{Code|SZABLON}}, czy nawet {{Code|LINKW}}, a nawet opcjonalnie linki zewnętrzne, typu {{Code|LINKZ}},
| 2 = {{Code|hn_number}} {{Patrz|hn_number}} | _2 = To jest poziom rozdziału dodatniego, ze spisem, ale centrowania - którym jest {{Code|2}}, czy nawet znaczników nagłówka {{Tag|h<liczba>}}, ale w tym linku musi się znajdować artykuł, którego nazwą jego linku jest artykuł o nazwie, dedykowanej przez tabelę opisaną w funkcji: {{LinkŚródtytuł|Spis}}, w nagłówku. Tym numerek również może być poziom dla zwykłych rozdziałów, ale nie dodatnich równaniowo.
}}
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, według funkcji: {{LinkŚródtytuł|Spis}}, i tam są ustawiane pewne zmienne, tzn. {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}.
====== {{Śródtytuł|Spis}}{{Code|Spis}} ======
Jest to funkcja szczególna do rozwazania szablonów centrowania, z artykułami danej książki, spisów treści z nagłówkami określonymi przez tabelę: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci|p=StronicowyParser/obiekty}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów funkcji:
| 1 = Jak w: {{LinkZobaczTeż|szablon-obiekt-kod|StronicowyParser/Rozdziały/Tom V/Część I}}. | komórka1 = tak
}}
; Konstrukcja funkcji{{dk}}
* Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest artykuł, a tym bardziej link spisu treści.
* Ale dla istniejącego spisu dla pierwszego linku wartości sprawdzanej dla artykułu danej książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy spisu rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami (kolejno: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} i {{Code|hn_number}}), i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
====== Dalszy opis funkcji ======
; Jeśli znaleziono dopasowanie{{dk}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia, w pętli, funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
; Gdy jednak nie było takiego przypadku{{dk}}
W wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|StronicowyParser/Rozdziały/Tom V/Część I}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane dla niej są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{Code|hn_number}} {{LinkPatrz|hn_number}} i {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
; Inny wypadek{{dk}}
W innym wypadku nie jest zwracana żadna wartość.
===== Kod dalszy funkcji =====
====== Warunki wstępne ======
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
* Gdy mamy włączoną opcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane|StronicowyParser/Rozdziały/Tom V/Część I}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/Rozdziały/Tom V/Część I}}, wtedy możemy powiedzieć, ze również {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
* Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału albo '''dodatniego równaniowego''', bądź opcjonalnie do '''ujemnego''', na początku otrzymanego spisu treści dla jego początkowych linii.
====== Iterator po rozważanej zmiennej, czyli iteracja po tekście ======
; Iterator dla danej linii{{dk}}
* Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest wtedy uruchamiana procedura, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
* Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}:
** osiągnieto obiekty, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, typu: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
; Obiekt szablonowy, czyli typu{{dk}} {{nobold|{{Code|SZABLON}}}}{{dk}}
* W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}},
** jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}} z {{LzLua|mw.ustring.match}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku.
** A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki,
* A gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość zmiennej {{Code|wartosc}} równej odpwoadającej {{Code|true}}, czyli znalazł artykuł, ale nie okładkę, lub nie, przeciwnie na {{Code|false}}, a tu już nie.
; Obiekt znacznikowy, czyli typu{{dk}} {{nobold|{{Code|ZNACZNIK}}}}{{dk}}
* A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}} z {{LzLua|mw.ustring.match}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}},
* A gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, w przypadku badania jego nazwy, a potem z tym zwróconym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania, wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}.
* A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
; Obiekty linkowe, czyli typu{{dk}} {{nobold|{{Code|LINKW}}}} lub {{nobold|{{Code|LINKZ}}}}, a więc kolejno linki wewnętrzne i zewnętrzne{{dk}}
* Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia: {{Code|wartosc}} {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano artykuł nieokładkowy lub inne artykuły z niebieżącej książki, przeciwnie na {{Code|false}}, gdy nie są te obiekty, to podobnie liczymy dla obiektu {{Code|SZABLON}}.
===== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} =====
====== Zmienna {{nobold|{{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}}} ======
; Gdy zmienna {{nobold|{{Code|podrecznik}} {{LinkPatrz|podrecznik}}}} jest {{nobold|{{Code|true}}}}, i gdy zmienna {{nobold|{{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}}}, jest bez wartości{{dk}}
* Gdy {{Code|wartosc}} {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst rozpoczyna się od kodu z: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, jest na początku linii z dokładnością do znaków cudzysłowów i odstępów, oraz nie kończy się na {{Code|.}}, czy potem, po odstępach jest jest znak {{Code|<nowiki>></nowiki>}}, co robimy przy pomocy: {{LzLua|mw.ustring.match}}, dla określonej linii nieporządnej linii.
** W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}},
** Przeciwnie ustawiana jest wartość: {{Code|czy_rozdzial}} {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}.
* A gdy {{Code|wartosc}} {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu o pewnym {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, co następnie zwracana jest wartość pusta z drugim nienilowym argumentem, gdy liczymy z: {{LzLua|mw.ustring.gsub}}, która zrzuca dwa parametry {{Code|tekst}} i liczbę występowań {{Code|ile}},
** Gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadku już nie.
====== Zmienna: {{nobold|{{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}}}, w kodzie sterującym iterator, kiedy ma się zatrzymać, a kiedy nie, chyba, że skończą się zasoby danych w linii ======
; Gdy {{nobold|{{Code|podrecznik}} {{LinkPatrz|podrecznik}}}} ma wartość {{nobold|{{Code|false}}}}, wtedy dla żadnej wartości {{nobold|{{Code|wartosc}} {{LinkPatrz|wartosc}}}}{{dk}}
* Gdy zmienna: {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem w zmiennej {{Code|tekst}} jest ciąg znaków określone wzorem: {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}} z {{LzLua|mw.ustring.match}},
** Jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}},
** A jeśli jednak tak, to zmienna: {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej,
** W innym rozgłazieniu instrukcji '''jeśli''' dla: {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
====== Gdy zmienna {{nobold|{{Code|podrecznik}}}} nie przyjmuje żadnej wartości logicznej ======
* Gdy zmienna {{Code|podrecznik}} {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej,
** Wtedy dla {{Code|wartosc}} {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana,
** Przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, czylli znaleziono, taki artykuł nieokładkowy danej książki , wtedy też jest zakańczana,
* W przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
===== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału =====
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
===== Użytek wartości ze zmiennej {{nobold|{{Code|tak}}}} =====
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{Code|tak}} {{LinkPatrz|tak}} jest równa:
* wartości prawdziwej, to uruchamiana jest wtedy funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, gdy znaleziono taki pierwszy artykuł bez nagłówka lub z nagłówkiem, ale nie dodatnim równaniowym.
* Przeciwnie bezparametrowo: {{Code|funkcja2}} {{LinkPatrz|funkcja2}}, gdy takiego czegoś dla linii nie znaleziono.
=== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ===
Liczymy poszczególne linie z iteratora otrzymanego z {{Code|iter_main}} {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych do używania w projekcie dla każdego rodzaju rozdziału, czyli też w nim nagłówka{{dk}}
* Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
; Rozdział dodatni równaniowy{{dk}}
* Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|poziom_rozdzialu}} {{LinkPatrz|poziom_rozdzialu}}.
* Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{Code|czy_inne_rozdzialy_analizowac}} {{LinkPatrz|czy_inne_rozdzialy_analizowac|StronicowyParser/Rozdziały/Tom V/Część I}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami.
* W innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{Code|czy_w_spisie_tresci}} {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą (do wyszukiwania innych rozdziałów pierwszych spisu rzeczy, lub rozdziałów nilowych spisu treści - nieistniejących) i trzecią (funkcją, który z parametru: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, usuwa jej wartość).
; Pierwsza anonimowa funkcja{{dk}}
* Rozdziały w tym nagłówki spisu treści lub rzeczy
** Tą pierwszą funkcją, jest tak gdy: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{Code|poziom_rozdzialu}} {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}.
** Przeciwnie sprawdzamy wartość zmiennej: {{Code|szablon_spis_tresci}} {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}.
** A gdy nie ma takiego rozdziału, to {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na: {{Code|szablon_spis_tresci}} {{LinkPatrz|szablon_spis_tresci}}, a {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}.
** A jeżeli {{Code|szablon_spis_tresci}} {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
* Dalsze obliczenia spisowe
** Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{Code|poziom_rozdzialu}} {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{Code|czy_rozdzial_naglowka_hn}} {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
; Druga anonimowa funkcja{{dk}}
* Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe{{dk}}
* Gdy nie udało się znaleźć {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{Code|parser}} {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
=== Wartości zwracane przez iterator ===
Gdy:{{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{Code|czy_w_spisie_tresci}} {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Opis parametrów wartości zwracanych:
| 1 = {{Code|naglowek}} | _1 = Jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}.
| 2 = {{Code|linia}} | _2 = Jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}}.
| 3 = {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} | _3 = Jest to właśnie {{Code|str}} {{LinkPatrz|str|StronicowyParser/Rozdziały/Tom V/Część I}} w kodzie.
| 4 = {{Code|poczatek_rozdzialu}} | _4 = Jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}.
| 5 = {{Code|numeracja_rozdzialu}} | _5 = Jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}.
| 6 = {{Code|czy_rozdzial_centrowany}} | _6 = Jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
}}
Gdy {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2|StronicowyParser/Rozdziały/Tom V/Część I}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją: {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2|StronicowyParser/Rozdziały/Tom V/Część I}}, z parametrem identyfikującym, że to jest rozdział: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{Code|tekst_rozdzialu}} {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
fnoov1ftzuyx4r6l1nda2jigpnoqd81
Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Moduł główny/Część II
4
64134
560642
558159
2026-11-08T13:47:06Z
Persino
2851
560642
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|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.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} ==
Jest to dokończenie dokumentacji funkcji: {{Code|{{sr|#p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|p=StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}}}, ze strony: {{lr2|Moduły/StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}.
=== Opis działania funkcji z użytymi funkcjami lokalnymi zdefiniowanych w tej funkcji ===
Te funkcje, które są lokalne, są zdefiniowane w funkcji głównej, by je użyć w niej, i one jedynie służą na jej użytek.
==== Artykuły przeanalizowane lub brak pewnych elementów bazy ====
Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd.
Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami:
<syntaxhighlight lang="lua">
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
</syntaxhighlight>
A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, i zwracany jest wynik jak poprzednio.
==== Strony (artykuły) poza zakresem obsługiwanym książkowym ====
Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}.
==== Tworzenie bazy artykułu ====
Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu, dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, dlatego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jedna ze zmiennych jest tablica: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, charakeryzująca dane zebrane specjalnie dla artykułów danej książki.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}.
<syntaxhighlight lang="lua">
local wartosc_wyniku,wynik_bledu,artykul_bazowy,kod_wyniku_bazowy=InneInformacjePrzebneDoAnalizowanejKsiazki();
</syntaxhighlight>
* Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, i dana strona została już przeanalizowana, ale względem jego przekierowania, czyli według: {{Code|wartosc_wyniku}}, jeśli istnieje, to funkcja główna ta zakańcza się z tą wartością. Ta wartość mówi, dwie pierwsze wartości:
** Czy przeanalizowano już daną stronę, ale względem przekierowań strony,
** Druga wartosc, to {{Code|true}}, gdu stronę, taką przeanalizowano.
* Dwie ostatnie:
** Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}} (to jest nic innego jak: {{Code|artykul}} {{LinkPatrz|artykul|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}), mówiący, jaki jest artykuł bazowy danego przekierowania, czyli na co wskazuje przekierowanie.
** Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}} (to jest nic innego jak: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}), który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}.
==== Spis główny książki do spisu głównego bieżącego podręcznika ====
; Jeżeli{{dk}} {{nobold|{{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}}}, zmiennej{{dk}} {{nobold|{{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}}}, ale wartość{{dk}}{{nobold|{{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}}}, istnieje, wtedy zmienne{{dk}}
* {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}.
* A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}.
; Tabele przestrzenne poszczególnych nazw książki{{dk}}
* Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}.
Uzyskane tabele są to tabele dla nazw adresu spisu głównego książki, na które wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tablicy spisu książki ====
Gdy spis: {{Code|spis}} {{LinkPatrz|spis|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, istnieje aktualnej książki, co jest kluczem zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}:
* Wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}},
* Liczymy artykuł: {{Code|artykul}} {{LinkPatrz|artykul|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, i kod wyniku: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami,
* Drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, którego w dalszej instrukcji warunkowej mamy z niej: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, która przyjmuje wartość zmiennej: {{Code|artykul}} {{LinkPatrz|artykul|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}},
* Dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}.
A na samym końcu po tych instrukcjach warunkowych liczymy: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}.
==== Tworzenie nazwy modułu ====
Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, z parametrów: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy pomocy funkcji: {{Code|{{sr|#p["NazwaModułu"]|p=Nazwy/Tom III}}}}.
==== Przekierowania dla stron bez spisu ====
; Operacje na przekierowaniach, jeśli istnieją{{dk}}
* Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, która wywoływana jest bez parametrów.
* Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} jest zmienna o wartości prawdziwej, wtedy zmienna: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}.
; Przedwczesne zakończenie funkcji z wartościami zwracanymi{{dk}}
* Gdy zmienna: {{Code|wynik}} {{LinkPatrz|wynik}}, jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana.
==== Zmienne nazw danego bieżącego artykułu książki ====
; Gdy{{dk}} {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}}}, jest o wartości odpowiadającej prawdziwej{{dk}}
* Wtedy zmienne nazw odpowiadającej książki bieżącego artykułu dla książki rozważanej, jeśli nie istnieją, to są one tworzone, w tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, o kluczach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_woluminu}} {{Patrz|nazwa_przestrzeni_woluminu}}, {{Code|nazwa_woluminu}} {{Patrz|nazwa_woluminu}} i {{Code|nazwa_podstrony_woluminu}} {{Patrz|nazwa_podstrony_woluminu}}, elementy, którym kolejno przydzielamy wartości: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
==== Nazwa modułu aktualna lub bieżąca ====
Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
; Dla strony bieżącej, według zmiennej{{dk}} {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}}}{{dk}}
* Jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{LinkPatrz|artykul_analizowany|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, jej jest dawana wartość {{Code|true}}, tzn. czy dany artykuł jest bieżący.
* A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca.
==== Informacje o analizowanym artykule ====
Jest tworzona zmienna pusta: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jeśli nie istnieje, i jej podtablica ma być też pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje.
Dalej są generowane podzmienne z: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''{{ld|StronicowyParser|Stronicowy Parser}}''', a elementy wewnętrz jej:
* Dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} {{Patrz|CzyLink}}, i {{Code|CzyNum}} {{Patrz|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie.
==== Strona zbiorcza ====
Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} przyjmuje wartość prawdziwą.
==== Pełna nazwa książki ====
Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}, z parametrów: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, oraz dla nazwy artykułu, którym jest ciąg znakowy pusty, wtedy to charakteryzuje stronę główną podręcznika, której pełna nazwa strony jest jednocześnie szukaną pełną nazwą książki.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', czyli ten artykuł nie jest spisem, tzn. tam się nie mieści żaden spis, to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}:
* Przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}.
* Przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}} {{LinkPatrz|_ref|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}.
; Działania w przypadku braku treści strony{{dk}}
* Gdy artykuł nie jest korzystany, tzn. według: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}:
** Jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, co jest powiadomieniem, że strona jest niekorzystana, i ona nie ma zawartości.
* Przeciwnie, dla strony niemającej zawartości, tzn. gdy {{Code|strona_zbiorcza}} {{LinkPatrz|strona_zbiorcza}}, przyjmuje wartość prawdziwą, wtedy jest liczona zmienna: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
** Wtedy funkcja zwraca wartość {{Code|nil}}, co informuje, że strona jest korzystana, i nie ma jej treści.
==== Przypadek innej strony aktualnej niż bieżącej ====
Dla strony korzystanej według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}} {{Patrz|inna_strona_aktualna_niz_biezaca}}:
* Gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innej stronie niż normalnie.
** Dla tej strony są liczone, dla tablicy podanej, zmienne o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, dla stron ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry.
; Szablony spisów{{dk}}
* Jednym ze spisów może być użyty szablon: {{s|Spis treści}} (skrót: {{s|TOCright}}) - dla wersji rozwiniętej, {{s|Spis treści zwinięty}} - zwiniętej, i inne szablony, też spisowe: {{s|TOCRamka}} i {{s|TOC limit}}, także: {{s|TOC}} i {{s|TOCRamka}}.
==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ====
Iterujemy po całem tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, którego pierwszym parametrem jest ten zakodowany tekst, według bazy kodów: {{Code|{{m|Szablonowe}}}}.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}}, ze zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, z kluczem: {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, i dalszym kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą.
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}} - tablica informacji o artykule, tworzymy podtablicę o kluczu: {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}}, z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, zdefiniowaną w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} - tablica zmiennych artykułu.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jej wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony.
==== Nazwa bazowa strony ====
Gdy dana strona jest korzystana, tzn.: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przyjmuje wartość prawdziwą, wtedy możemy policzyć element tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, o kluczu: {{Code|nazwa_bazowa_strony}} {{Patrz|nazwa_bazowa_strony}}, któremu przydzielamy policzoną nazwę ze zmiennej: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, wykorzystując do tego funkcję: {{Code|{{sr|#p["PEŁNABAZOWANAZWASTRONY"]|p=Nazwy/Tom II}}}}.
==== Skrót do: '''pozawoluminowych stron''' lub '''niekorzystanych woluminów''', utworzone w celu łatwiejszego odwołania się do innych stron, czy artykułów książek ====
* Zmienna: {{Code|prefiks_numeru_woluminowego_strony}} {{Patrz|prefiks_numeru_woluminowego_strony}}, to jest zmienna skrótów, policzona dla niebieżącej strony dla: '''pozawoluminowych stron''' {{LinkPatrz|pozawoluminowych stron}}, lub '''niekorzystanych woluminów''' {{LinkPatrz|niekorzystanych woluminów}}.
Gdy artykuł jest niekorzystany, tzn. zmienna: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przybiera wartość fałszywą, wtedy dla:
; Gdy nie stworzono jeszcze prefiksu w zmiennej{{dk}} {{nobold|{{Code|prefiks_numeru_woluminowego_strony}} {{LinkPatrz|prefiks_numeru_woluminowego_strony}}}}, która jest kluczem dla tabeli{{dk}} {{nobold|{{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}}}{{dk}}
Ale przedtem, gdy: {{Code|pozawoluminowe_strony}} {{LinkPatrz|pozawoluminowe_strony}}, jest niepoliczone, dla tej pierwszej pozycji listy, a dla drugiej już nie.
* '''pozawoluminowych stron''' {{Patrz|pozawoluminowych stron}} (innej strony niż bieżąca - dla przestrzeni nieksiążkowych), określonych przez zmienną: {{Code|pozawoluminowe_strony}} {{Patrz|pozawoluminowe_strony}} - która wcześniej była policzona, z bazowej nazwy strony według: {{Code|nazwa_bazowa_strony}} {{LinkPatrz|nazwa_bazowa_strony}}, i zmiennej: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, wykorzystując do tego funkcję: {{Code|{{sr|#p["SkrótDoNumeruOdnośnika"]|p=StronicowyParser/Pomocne}}}}, liczymy pewien skrót, który umieszczamy w:
** zmiennej: {{Code|prefiks_numeru_woluminowego_strony}} {{LinkPatrz|prefiks_numeru_woluminowego_strony}}, przydzielając mu wartość w postaci tablicy:
<syntaxhighlight lang="lua">
tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony={zrostek,pozawoluminowe_strony,czy_artykul_korzystany,};
</syntaxhighlight>
* '''niekorzystanych woluminów''' {{Patrz|niekorzystanych woluminów}} (innej książki - woluminu, niż bieżąca - dla przestrzeni książkowych), określonych przez zaprzeczenie zmiennej: {{Code|korzystany_wolumin}} {{Patrz|korzystany_wolumin}} - która wcześniej była policzona, wtedy z nazwy: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, liczymy, korzystając z funkcji: {{Code|{{sr|#p["SkrótDoNumeruOdnośnikaDołączonejKsiążki"]|p=StronicowyParser/Pomocne}}}}, pewien skrót, którego wsadzamy do:
** zmiennej: {{Code|prefiks_numeru_woluminowego_strony}} {{LinkPatrz|prefiks_numeru_woluminowego_strony}}, przydzielając mu wartość w postaci tablicy:
<syntaxhighlight lang="lua">
tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony={zrostek,not korzystany_wolumin,czy_artykul_korzystany,};
</syntaxhighlight>
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, wtedy wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}.
==== Szablony tekstu ====
Dla artykułu korzystanego, według: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, uruchamiamy dwie tutaj funkcje, tzn.:
* Pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne, nie informacje, zbierania artykułów w zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
* Druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych informacji o stronie dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}, nie w zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, tylko w: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a także modyfikujące tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, w której zbieramy wiadomości o stronie.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
* Dla zmiennej dla strony korzystanej według: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, która w tym przypadku przyjmuje wartość prawdziwą, gdy chcemy liczyć jej spis, to musi być ustawiona zmienna z: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o kluczu: {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, przyjmującej ten parametr wartość prawdziwą.
* A dla niekorzystanej dla klucza z: {{Code|analiza_spis_tresci_doloczone}} {{LinkPatrz|analiza_spis_tresci_doloczone|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, wtedy przygotuwujemy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}.
===== Ustawianie wygenerowanego spisu treści analizowanego artykułu =====
Zmienna tablicowa: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu.
==== Sprawdzanie spisu rozważanego artykułu ====
Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, uruchamiana z pewnymi parametrami.
==== Niedokończone zbierania elementów spisowych o danej stronie niekorzystanej, gdy wcześniej było to niemożliwe ====
Zmienna: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, powinna przyjmować wartość fałszywą, przy innej wartości nie wchodzimy w ten krok instrukcji warunkowej.
* A funkcja: {{Code|SpisToc}} {{Patrz|SpisToc}}, powinna zwwrócić zawsze funkcję, którą nazwiemy: {{Code|czy_spis_function}} {{Patrz|czy_spis_function}}, to jej wywołanie raz jest prawdziwe, raz nilowe. Prawdziwe, gdy w tym wywołaniu funkcji głównej dla danego niekorzystanego artykułu udało się zebrać spis, a jeśli nie, to jej wynik jest fałszywy.
* Wtedy przy fałszywości tego wyniku ustawiane jest w tablicy o kluczu: {{Code|TOCSPIS_FUNCTION}} {{LinkPatrz|TOCSPIS_FUNCTION|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, dla: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, jej wartość, która jest równa: {{Code|czy_spis_function}} {{LinkPatrz|czy_spis_function}}.
** {{Code|czy_spis_function}} {{LinkPatrz|czy_spis_function}} - to jest funkcja, która jest zwrócona przez inną o nazwie: {{Code|SpisToc}} {{LinkPatrz|SpisToc}}.
==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ====
Dla strony korzystanej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, wtedy jej podzmienne o kluczach:
* {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element,
* {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu,
* {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw,
* {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw,
* {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki.
Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}.
* One zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy.
==== Dane zebrane o szablonach tekstu - zbieranie informacji ====
Dla artykułów niekorzystanych, czyli wtedy wartość: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przyjmuje wartość fałszywą, wtedy zmienną:
* {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, wtedy dajemy jej wartość: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}.
* Dalej dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn.:
** {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}} - dane dotyczace danego artykułu.
Te stworzone tutaj zmienne kasujemy dla: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, prawdziwego.
* Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości.
* Też kasujemy w tej zmiennej podtablicę: {{Code|TOCSPIS_FUNCTION}} {{LinkPatrz|TOCSPIS_FUNCTION|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego, po zakończeniu zbierania wszystkich danych o danej stronie, według:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
{{OpisParametrów
| tytuł = Parametry zwracane:
| 1 = {{Code|self.tabela_listy_danych_analizy_ksiazki}} | _1 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}},
| 2 = {{Code|tablica_zmiennych}} | _2 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}},
| 3 = {{Code|true}} | _3 = Wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
h868ued6adglmu9n5hzdiz02rjq4eh5
Szablon:OpisParametrów/styles.css
10
64147
560625
560538
2026-11-08T12:22:35Z
Persino
2851
560625
sanitized-css
text/css
div.gridtabela-moduł-op.tabela-brak.OpisParametrów-grid-op{
display:flex;
flex-direction:row;
width:auto;
font-size:1em;
line-height:1.4;
}
div.gridtabela-moduł-op.tabela-brak.OpisParametrów-grid-op > div.gridtabela-moduł.OpisParametrów-grid{
width:100%;
}
div.gridtabela-moduł.OpisParametrów-grid > div.tytuł{
text-align:left !important;
}
div.gridtabela-moduł.OpisParametrów-grid > div.tytuł > div.gridtabela-dziecko{
text-align:left !important;
color:blue;
font-size:1em;
line-height:1.8;
}
div.gridtabela-moduł.OpisParametrów-grid > div.kolumna-1{
text-align:center;
}
div.gridtabela-moduł.OpisParametrów-grid > div.kolumna-1{
min-width:2rem;
}
div.gridtabela-moduł.OpisParametrów-grid > div.kolumna-2:not(.OpisParametrów-nagłówek):not(.OpisParametrów-komórka){
max-width:30rem;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2,
div.gridtabela-moduł.OpisParametrów-grid > div.nagłówek.kolumna-2:not(.nagłówek-tytuł),
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-3{
text-align:left;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek,
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek a,
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek span.link > a{
text-align:center !important;
color:white;
background-color:black;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek a,
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek span.link > a{
text-decoration:underline;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek a:hover,
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek span.link > a:hover{
text-decoration:none;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek code{
color:unset;
background-color:unset;
}
div.gridtabela-moduł.OpisParametrów-grid{
grid-template-columns: minmax(0,2rem) minmax(0,auto) 1fr !important;
}
@media all and (max-width:745px), all and (max-device-height:745px){
div.gridtabela-moduł.gridtable.OpisParametrów-grid{
display:flex !important;
flex-direction:row;
flex-wrap:wrap;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).wiersz-1.kolumna-3{
margin-top:-1px;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-1,
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.nagłówek-tytuł.kolumna-1{
width:2rem;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.nagłówek-tytuł.kolumna-2{
width:calc( 5rem + 1px );
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.nagłówek-tytuł.kolumna-3{
width:calc( 100% - 2rem - 5rem + 1px );
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-2.OpisParametrów-nagłówek,
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-2.OpisParametrów-komórka,
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-2:not(.OpisParametrów-nagłówek):not(.OpisParametrów-komórka){
width: calc( 100% - 2rem + 1px);
max-width:none;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-3{
width:100%;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.komórka:not(.nagłówek-tytuł).kolumna-3{
margin-left:0;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.komórka:not(.nagłówek-tytuł).kolumna-3{
border-left: 1px #aaaaaa solid;
}
}
/*{{Kategoria|Szablony - arkusze stylów}}*/
ivum0ly6xhv8l425g67ax35q5pdg9qh
560627
560625
2026-11-08T12:28:30Z
Persino
2851
560627
sanitized-css
text/css
div.gridtabela-moduł-op.tabela-brak.OpisParametrów-grid-op{
display:flex;
flex-direction:row;
width:auto;
font-size:1em;
line-height:1.4;
}
div.gridtabela-moduł-op.tabela-brak.OpisParametrów-grid-op > div.gridtabela-moduł.OpisParametrów-grid{
width:100%;
}
div.gridtabela-moduł.OpisParametrów-grid > div.tytuł{
text-align:left !important;
}
div.gridtabela-moduł.OpisParametrów-grid > div.tytuł > div.gridtabela-dziecko{
text-align:left !important;
color:blue !important;
font-size:1em !important;
line-height:1.8 !important;
}
div.gridtabela-moduł.OpisParametrów-grid > div.kolumna-1{
text-align:center;
}
div.gridtabela-moduł.OpisParametrów-grid > div.kolumna-1{
min-width:2rem;
}
div.gridtabela-moduł.OpisParametrów-grid > div.kolumna-2:not(.OpisParametrów-nagłówek):not(.OpisParametrów-komórka){
max-width:30rem;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2,
div.gridtabela-moduł.OpisParametrów-grid > div.nagłówek.kolumna-2:not(.nagłówek-tytuł),
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-3{
text-align:left;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek,
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek a,
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek span.link > a{
text-align:center !important;
color:white;
background-color:black;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek a,
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek span.link > a{
text-decoration:underline;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek a:hover,
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek span.link > a:hover{
text-decoration:none;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek code{
color:unset;
background-color:unset;
}
div.gridtabela-moduł.OpisParametrów-grid{
grid-template-columns: minmax(0,2rem) minmax(0,auto) 1fr !important;
}
@media all and (max-width:745px), all and (max-device-height:745px){
div.gridtabela-moduł.gridtable.OpisParametrów-grid{
display:flex !important;
flex-direction:row;
flex-wrap:wrap;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).wiersz-1.kolumna-3{
margin-top:-1px;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-1,
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.nagłówek-tytuł.kolumna-1{
width:2rem;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.nagłówek-tytuł.kolumna-2{
width:calc( 5rem + 1px );
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.nagłówek-tytuł.kolumna-3{
width:calc( 100% - 2rem - 5rem + 1px );
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-2.OpisParametrów-nagłówek,
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-2.OpisParametrów-komórka,
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-2:not(.OpisParametrów-nagłówek):not(.OpisParametrów-komórka){
width: calc( 100% - 2rem + 1px);
max-width:none;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-3{
width:100%;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.komórka:not(.nagłówek-tytuł).kolumna-3{
margin-left:0;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.komórka:not(.nagłówek-tytuł).kolumna-3{
border-left: 1px #aaaaaa solid;
}
}
/*{{Kategoria|Szablony - arkusze stylów}}*/
7gzamtgpr5v7pjjiu6c227oihrm1whh
560640
560627
2026-11-08T13:38:42Z
Persino
2851
560640
sanitized-css
text/css
div.gridtabela-moduł-op.tabela-brak.OpisParametrów-grid-op{
display:flex;
flex-direction:row;
width:auto;
font-size:1em;
line-height:1.4;
}
div.gridtabela-moduł-op.tabela-brak.OpisParametrów-grid-op > div.gridtabela-moduł.OpisParametrów-grid{
width:100%;
}
div.gridtabela-moduł.OpisParametrów-grid > div.tytuł{
text-align:left !important;
}
div.gridtabela-moduł.OpisParametrów-grid > div.tytuł > div.gridtabela-dziecko{
text-align:left !important;
color:gray !important;
font-size:1em !important;
line-height:1.8 !important;
}
div.gridtabela-moduł.OpisParametrów-grid > div.kolumna-1{
text-align:center;
}
div.gridtabela-moduł.OpisParametrów-grid > div.kolumna-1{
min-width:2rem;
}
div.gridtabela-moduł.OpisParametrów-grid > div.kolumna-2:not(.OpisParametrów-nagłówek):not(.OpisParametrów-komórka){
max-width:30rem;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2,
div.gridtabela-moduł.OpisParametrów-grid > div.nagłówek.kolumna-2:not(.nagłówek-tytuł),
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-3{
text-align:left;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek,
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek a,
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek span.link > a{
text-align:center !important;
color:white;
background-color:black;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek a,
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek span.link > a{
text-decoration:underline;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek a:hover,
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek span.link > a:hover{
text-decoration:none;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek code{
color:unset;
background-color:unset;
}
div.gridtabela-moduł.OpisParametrów-grid{
grid-template-columns: minmax(0,2rem) minmax(0,auto) 1fr !important;
}
@media all and (max-width:745px), all and (max-device-height:745px){
div.gridtabela-moduł.gridtable.OpisParametrów-grid{
display:flex !important;
flex-direction:row;
flex-wrap:wrap;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).wiersz-1.kolumna-3{
margin-top:-1px;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-1,
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.nagłówek-tytuł.kolumna-1{
width:2rem;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.nagłówek-tytuł.kolumna-2{
width:calc( 5rem + 1px );
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.nagłówek-tytuł.kolumna-3{
width:calc( 100% - 2rem - 5rem + 1px );
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-2.OpisParametrów-nagłówek,
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-2.OpisParametrów-komórka,
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-2:not(.OpisParametrów-nagłówek):not(.OpisParametrów-komórka){
width: calc( 100% - 2rem + 1px);
max-width:none;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-3{
width:100%;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.komórka:not(.nagłówek-tytuł).kolumna-3{
margin-left:0;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.komórka:not(.nagłówek-tytuł).kolumna-3{
border-left: 1px #aaaaaa solid;
}
}
/*{{Kategoria|Szablony - arkusze stylów}}*/
k8ryexhsf8zil9gvou0alvtn89bjab9
560643
560640
2026-11-08T13:48:55Z
Persino
2851
560643
sanitized-css
text/css
div.gridtabela-moduł-op.tabela-brak.OpisParametrów-grid-op{
display:flex;
flex-direction:row;
width:auto;
font-size:1em;
line-height:1.4;
}
div.gridtabela-moduł-op.tabela-brak.OpisParametrów-grid-op > div.gridtabela-moduł.OpisParametrów-grid{
width:100%;
}
div.gridtabela-moduł.OpisParametrów-grid > div.tytuł{
text-align:left !important;
}
div.gridtabela-moduł.OpisParametrów-grid > div.tytuł > div.gridtabela-dziecko{
text-align:left !important;
color:darkslategrey !important;
font-size:1em !important;
line-height:1.8 !important;
}
div.gridtabela-moduł.OpisParametrów-grid > div.kolumna-1{
text-align:center;
}
div.gridtabela-moduł.OpisParametrów-grid > div.kolumna-1{
min-width:2rem;
}
div.gridtabela-moduł.OpisParametrów-grid > div.kolumna-2:not(.OpisParametrów-nagłówek):not(.OpisParametrów-komórka){
max-width:30rem;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2,
div.gridtabela-moduł.OpisParametrów-grid > div.nagłówek.kolumna-2:not(.nagłówek-tytuł),
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-3{
text-align:left;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek,
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek a,
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek span.link > a{
text-align:center !important;
color:white;
background-color:black;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek a,
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek span.link > a{
text-decoration:underline;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek a:hover,
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek span.link > a:hover{
text-decoration:none;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek code{
color:unset;
background-color:unset;
}
div.gridtabela-moduł.OpisParametrów-grid{
grid-template-columns: minmax(0,2rem) minmax(0,auto) 1fr !important;
}
@media all and (max-width:745px), all and (max-device-height:745px){
div.gridtabela-moduł.gridtable.OpisParametrów-grid{
display:flex !important;
flex-direction:row;
flex-wrap:wrap;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).wiersz-1.kolumna-3{
margin-top:-1px;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-1,
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.nagłówek-tytuł.kolumna-1{
width:2rem;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.nagłówek-tytuł.kolumna-2{
width:calc( 5rem + 1px );
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.nagłówek-tytuł.kolumna-3{
width:calc( 100% - 2rem - 5rem + 1px );
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-2.OpisParametrów-nagłówek,
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-2.OpisParametrów-komórka,
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-2:not(.OpisParametrów-nagłówek):not(.OpisParametrów-komórka){
width: calc( 100% - 2rem + 1px);
max-width:none;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-3{
width:100%;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.komórka:not(.nagłówek-tytuł).kolumna-3{
margin-left:0;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.komórka:not(.nagłówek-tytuł).kolumna-3{
border-left: 1px #aaaaaa solid;
}
}
/*{{Kategoria|Szablony - arkusze stylów}}*/
62woegy3fdiz5zpffcy8nmd7g5d6us3
560644
560643
2026-11-08T13:50:06Z
Persino
2851
560644
sanitized-css
text/css
div.gridtabela-moduł-op.tabela-brak.OpisParametrów-grid-op{
display:flex;
flex-direction:row;
width:auto;
font-size:1em;
line-height:1.4;
}
div.gridtabela-moduł-op.tabela-brak.OpisParametrów-grid-op > div.gridtabela-moduł.OpisParametrów-grid{
width:100%;
}
div.gridtabela-moduł.OpisParametrów-grid > div.tytuł{
text-align:left !important;
}
div.gridtabela-moduł.OpisParametrów-grid > div.tytuł > div.gridtabela-dziecko{
text-align:left !important;
color:slategrey !important;
font-size:1em !important;
line-height:1.8 !important;
}
div.gridtabela-moduł.OpisParametrów-grid > div.kolumna-1{
text-align:center;
}
div.gridtabela-moduł.OpisParametrów-grid > div.kolumna-1{
min-width:2rem;
}
div.gridtabela-moduł.OpisParametrów-grid > div.kolumna-2:not(.OpisParametrów-nagłówek):not(.OpisParametrów-komórka){
max-width:30rem;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2,
div.gridtabela-moduł.OpisParametrów-grid > div.nagłówek.kolumna-2:not(.nagłówek-tytuł),
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-3{
text-align:left;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek,
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek a,
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek span.link > a{
text-align:center !important;
color:white;
background-color:black;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek a,
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek span.link > a{
text-decoration:underline;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek a:hover,
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek span.link > a:hover{
text-decoration:none;
}
div.gridtabela-moduł.OpisParametrów-grid > div.komórka.kolumna-2.OpisParametrów-nagłówek code{
color:unset;
background-color:unset;
}
div.gridtabela-moduł.OpisParametrów-grid{
grid-template-columns: minmax(0,2rem) minmax(0,auto) 1fr !important;
}
@media all and (max-width:745px), all and (max-device-height:745px){
div.gridtabela-moduł.gridtable.OpisParametrów-grid{
display:flex !important;
flex-direction:row;
flex-wrap:wrap;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).wiersz-1.kolumna-3{
margin-top:-1px;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-1,
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.nagłówek-tytuł.kolumna-1{
width:2rem;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.nagłówek-tytuł.kolumna-2{
width:calc( 5rem + 1px );
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.nagłówek-tytuł.kolumna-3{
width:calc( 100% - 2rem - 5rem + 1px );
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-2.OpisParametrów-nagłówek,
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-2.OpisParametrów-komórka,
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-2:not(.OpisParametrów-nagłówek):not(.OpisParametrów-komórka){
width: calc( 100% - 2rem + 1px);
max-width:none;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div:not(.nagłówek-tytuł).kolumna-3{
width:100%;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.komórka:not(.nagłówek-tytuł).kolumna-3{
margin-left:0;
}
div.gridtabela-moduł.gridtable.OpisParametrów-grid > div.komórka:not(.nagłówek-tytuł).kolumna-3{
border-left: 1px #aaaaaa solid;
}
}
/*{{Kategoria|Szablony - arkusze stylów}}*/
nzd2user0sth2gfctcb9lbm6d87b3xd
Wikibooks:Szablony/Warunkowe
4
64507
560651
2026-11-08T23:23:28Z
Persino
2851
Utworzono nową stronę „<noinclude>{{Autonawigacja|Pomoc:Spis treści}}</noinclude> == Szablony do obliczeń matematycznych == === Szablony warunkowe === ==== Szablon {{s|Jeśli równe}} ==== {{EfektKodów|kod-rozmiar=50% | 1 = {{Tt|{{s|Jeśli równe|1|2|wtedy{{=}}<nowiki><MATH>1 = 2</MATH></nowiki>|przeciwnie{{=}}<nowiki><math>1 \neq 2</math></nowiki>}}}} | _1 = {{Jeśli równe|1|2|wtedy=<math>1 = 2</math>|przeciwnie=<math>1 \neq 2</math>}} | 2 = {{Tt|{{s|Jeśli równe|1cm|10mm…”
560651
wikitext
text/x-wiki
<noinclude>{{Autonawigacja|Pomoc:Spis treści}}</noinclude>
== Szablony do obliczeń matematycznych ==
=== Szablony warunkowe ===
==== Szablon {{s|Jeśli równe}} ====
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|Jeśli równe|1|2|wtedy{{=}}<nowiki><MATH>1 = 2</MATH></nowiki>|przeciwnie{{=}}<nowiki><math>1 \neq 2</math></nowiki>}}}}
| _1 = {{Jeśli równe|1|2|wtedy=<math>1 = 2</math>|przeciwnie=<math>1 \neq 2</math>}}
| 2 = {{Tt|{{s|Jeśli równe|1cm|10mm|wtedy{{=}}<nowiki><MATH>1cm = 10mm</MATH></nowiki>|przeciwnie{{=}}<nowiki><MATH>1cm \neq 10mm</MATH></nowiki>}}}}
| _2 = {{Jeśli równe|1cm|10mm|wtedy=<MATH>1cm = 10mm</MATH>|przeciwnie=<MATH>1cm \neq 10mm</MATH>}}
| 3 = {{Tt|{{s|Jeśli równe|15px|16Q|dokładność{{=}}0|wtedy{{=}}<nowiki><MATH>15px = 16Q</MATH></nowiki>|przeciwnie{{=}}<nowiki><MATH>15px \neq 16Q</MATH></nowiki>}}}}
| _3 = {{Jeśli równe|15px|16Q|dokładność=0|wtedy=<math>15px = 16Q</math>|przeciwnie=<math>15px \neq 16Q</math>}}
| 4 = {{Tt|{{s|Jeśli równe|Konik|Konik|wtedy{{=}}Konik to Konik|przeciwnie{{=}}co???}}}}
| _4 = {{Jeśli równe|Konik|Konik|wtedy=Konik to Konik|przeciwnie=co???}}
| 5 = {{Tt|{{s|Jeśli równe|Konik|Konik|inaczej{{=}}tak|łącznik{{=}}<nowiki><MATH>\neq</MATH></nowiki>}}}}
| _5 = {{Jeśli równe|Konik|Konik|inaczej=tak|łącznik=<MATH>\neq</MATH>}}
| 6 = {{Tt|{{s|Jeśli równe|Konik|Kucyk|inaczej{{=}}tak|łącznik{{=}}<nowiki><MATH>\neq</MATH></nowiki>}}}}
| _6 = {{Jeśli równe|Konik|Kucyk|inaczej=tak|łącznik=<MATH>\neq</MATH>}}
| 7 = {{Tt|{{s|Jeśli równe|Konik||inaczej{{=}}tak|łącznik{{=}}<nowiki><MATH>\neq</MATH></nowiki>}}}}
| _7 = {{Jeśli równe|Konik||inaczej=tak|łącznik=<MATH>\neq</MATH>}}
| 8 = {{Tt|{{s|Jeśli równe||Konik|inaczej{{=}}tak|łącznik{{=}}<nowiki><MATH>\neq</MATH></nowiki>}}}}
| _8 = {{Jeśli równe||Konik|inaczej=tak|łącznik=<MATH>\neq</MATH>}}
}}
==== Jeśli większe ====
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|#if:{{s|Jeśli większe|1cm|20px}}|Tak|Nie}}}}
| _1 = {{#if:{{Jeśli większe|1cm|20px}}|Tak|Nie}}
| 2 = {{Tt|{{s|#if:{{s|Jeśli większe|20px|1cm}}|Tak|Nie}}}}
| _2 = {{#if:{{Jeśli większe|20px|1cm}}|Tak|Nie}}
| 3 = {{Tt|{{s|#if:{{s|Jeśli większe|2|1}}|Tak|Nie}}}}
| _3 = {{#if:{{Jeśli większe|2|1}}|Tak|Nie}}
| 4 = {{Tt|{{s|#if:{{s|Jeśli większe|1|2}}|Tak|Nie}}}}
| _4 = {{#if:{{Jeśli większe|1|2}}|Tak|Nie}}
}}
==== Szablony typowo warunkowe ====
===== Szablony typu '''Jeśli''' =====
====== Szablon {{s|Jeśli niepuste}} ======
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|Jeśli niepuste|1|2}}}}
| _1 = {{Jeśli niepuste|1|2}}
| 2 = {{Tt|{{s|Jeśli niepuste|1|2|przed{{=}}a|po{{=}}b}}}}
| _2 = {{Jeśli niepuste|1|2|przed=a|po=b}}
| 3 = {{Tt|{{s|Jeśli niepuste|1|2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d}}}}
| _3 = {{Jeśli niepuste|1|2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d}}
| 4 = {{Tt|{{s|Jeśli niepuste||2}}}}
| _4 = {{Jeśli niepuste||2}}
| 5 = {{Tt|{{s|Jeśli niepuste|1|2|przed{{=}}a|po{{=}}b|znacznik lewy{{=}}span|styl lewy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _5 = {{Jeśli niepuste|1|2|przed=a|po=b|znacznik lewy=span|styl lewy=font-size:12px;line-height:1.2em;color:red;}}
| 6 = {{Tt|{{s|Jeśli niepuste|1|2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik lewy{{=}}span|styl lewy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _6 = {{Jeśli niepuste|1|2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik lewy=span|styl lewy=font-size:12px;line-height:1.2em;color:red;}}
| 7 = {{Tt|{{s|Jeśli niepuste||2|znacznik lewy{{=}}span|styl lewy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _7 = {{Jeśli niepuste||2|znacznik lewy=span|styl lewy=font-size:12px;line-height:1.2em;color:red;}}
| 8 = {{Tt|{{s|Jeśli niepuste||2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik lewy{{=}}span|styl lewy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _8 = {{Jeśli niepuste||2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik lewy=span|styl lewy=font-size:12px;line-height:1.2em;color:red;}}
| 9 = {{Tt|{{s|Jeśli niepuste|1|2|przed{{=}}a|po{{=}}b|znacznik prawy{{=}}span|styl prawy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _9 = {{Jeśli niepuste|1|2|przed=a|po=b|znacznik prawy=span|styl prawy=font-size:12px;line-height:1.2em;color:red;}}
| 10 = {{Tt|{{s|Jeśli niepuste|1|2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik prawy{{=}}span|styl prawy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _10 = {{Jeśli niepuste|1|2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik prawy=span|styl prawy=font-size:12px;line-height:1.2em;color:red;}}
| 11 = {{Tt|{{s|Jeśli niepuste||2|znacznik prawy{{=}}span|styl prawy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _11 = {{Jeśli niepuste||2|znacznik prawy=span|styl prawy=font-size:12px;line-height:1.2em;color:red;}}
| 12 = {{Tt|{{s|Jeśli niepuste||2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik prawy{{=}}span|styl prawy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _12 = {{Jeśli niepuste||2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik prawy=span|styl prawy=font-size:12px;line-height:1.2em;color:red;}}
| 13 = {{Tt|{{s|Jeśli niepuste|1|2|przed{{=}}a|po{{=}}b|znacznik{{=}}span|styl{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _13 = {{Jeśli niepuste|1|2|przed=a|po=b|znacznik=span|styl=font-size:12px;line-height:1.2em;color:red;}}
| 14 = {{Tt|{{s|Jeśli niepuste|1|2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik{{=}}span|styl{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _14 = {{Jeśli niepuste|1|2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik=span|styl=font-size:12px;line-height:1.2em;color:red;}}
| 15 = {{Tt|{{s|Jeśli niepuste||2|znacznik{{=}}span|styl{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _15 = {{Jeśli niepuste||2|znacznik=span|styl=font-size:12px;line-height:1.2em;color:red;}}
| 16 = {{Tt|{{s|Jeśli niepuste||2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik{{=}}span|styl{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _16 = {{Jeśli niepuste||2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik=span|styl=font-size:12px;line-height:1.2em;color:red;}}
}}
====== Szablon {{s|Jeśli niepuste komunikat}} ======
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|{{s|Ambox|typ{{=}}poważny|tekst{{=}}{{s|Jeśli niepuste komunikat|<nowiki><ul><li>Oto jest błąd.</li></ul></nowiki>|NPA|Tekst szablonu.}}}}}}
| _1 = {{Ambox|typ=poważny|tekst={{Jeśli niepuste komunikat|<ul><li>Oto jest błąd.</li></ul>|NPA|Tekst szablonu.}}}}
| 2 = {{Pre|{{s|Ambox|typ{{=}}zawartość|tekst{{=}}{{s|Jeśli niepuste komunikat||NPA|Tekst szablonu.}}}}}}
| _2 = {{Ambox|typ=zawartość|tekst={{Jeśli niepuste komunikat||NPA|Tekst szablonu.}}}}
| 3 = {{Pre|{{s|Ambox|typ{{=}}poważny|tekst{{=}}{{s|Jeśli niepuste komunikat|<nowiki><ul><li>Oto jest błąd.</li></ul></nowiki>|wtedy{{=}}<nowiki>'''</nowiki>Szablon zgłosił następujące błędy:<nowiki>'''</nowiki>|przeciwnie{{=}}Tekst szablonu.}}}}}}
| _3 = {{Ambox|typ=poważny|tekst={{Jeśli niepuste komunikat|<ul><li>Oto jest błąd.</li></ul>|wtedy='''Szablon zgłosił następujące błędy:'''|przeciwnie=Tekst szablonu.}}}}
| 4 = {{Pre|{{s|Ambox|typ{{=}}zawartość|tekst{{=}}{{s|Jeśli niepuste komunikat||wtedy{{=}}<nowiki>'''</nowiki>Szablon zgłosił następujące błędy:<nowiki>'''</nowiki>|przeciwnie{{=}}Tekst szablonu.}}}}}}
| _4 = {{Ambox|typ=zawartość|tekst={{Jeśli niepuste komunikat||wtedy='''Szablon zgłośił następujące błędy:'''|przeciwnie=Tekst szablonu.}}}}
}}
====== Szablon {{s|Jeśli istnieje}} ======
{{EfektKodów
| 1 = {{Tt|{{s|Jeśli istnieje|Spis treści|Strona główna|przedrostek{{=}}Pomoc:}}}}
| _1 = {{Jeśli istnieje|Spis treści|Strona główna|przedrostek=Pomoc:}}
| 2 = {{Tt|{{s|Jeśli istnieje|Strona główna|Spis treści|przedrostek{{=}}Pomoc:}}}}
| _2 = {{Jeśli istnieje|Strona główna|Spis treści|przedrostek=Pomoc:}}
}}
===== Inne szablony =====
====== Szablon {{s|Pierwszy niepusty}} ======
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|2{{=}}Tak tutaj}}}}
| _1 = {{Pierwszy niepusty|1=|2=Tak tutaj}}
| 2 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|test2{{=}}tak|2{{=}}Tak tutaj}}}}
| _2 = {{Pierwszy niepusty|1=|test2=tak|2=Tak tutaj}}
| 3 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|test2{{=}}|2{{=}}Tak tutaj|test3{{=}}tak|3{{=}}Tak, ale tutaj}}}}
| _3 = {{Pierwszy niepusty|1=|test2=|2=Tak tutaj|test3=tak|3=Tak, ale tutaj}}
| 4 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|test2{{=}}|2{{=}}Tak tutaj|3{{=}}Tak, ale tutaj}}}}
| _4 = {{Pierwszy niepusty|1=|test2=|2=Tak tutaj|3=Tak, ale tutaj}}
| 5 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|test2{{=}}|2{{=}}Tak tutaj|test3{{=}}tak}}}}
| _5 = {{Pierwszy niepusty|1=|test2=|2=Tak tutaj|test3=tak}}
}}
=== Szablony jednostek ===
{{EfektKodów
| 1 = {{Tt|{{s|Liczba z absolutną jednostką długości|2}}}}
| _1 = {{Liczba z absolutną jednostką długości|2}}
| 2 = {{Tt|{{s|Liczba z absolutną jednostką długości|2px}}}}
| _2 = {{Liczba z absolutną jednostką długości|2px}}
| 3 = {{Tt|{{s|Maksimum|1|2}}}}
| _3 = {{Maksimum|1|2}}
| 4 = {{Tt|{{s|Maksimum|2|1}}}}
| _4 = {{Maksimum|2|1}}
| 5 = {{Tt|{{s|Maksimum|40px|1cm}}}}
| _5 = {{Maksimum|40px|1cm}}
| 6 = {{Tt|{{s|Minimum|1|2}}}}
| _6 = {{Minimum|1|2}}
| 7 = {{Tt|{{s|Minimum|2|1}}}}
| _7 = {{Minimum|2|1}}
| 8 = {{Tt|{{s|Minimum|40px|1cm}}}}
| _8 = {{Minimum|40px|1cm}}
| 9 = {{Tt|{{s|W pikselach|15px}}}}
| _9 = {{W pikselach|15px}}
| 10 = {{Tt|{{s|W pikselach|15pc}}}}
| _10 = {{W pikselach|15pc}}
| 11 = {{Tt|{{s|W pikselach|15pt}}}}
| _11 = {{W pikselach|15pt}}
| 12 = {{Tt|{{s|W pikselach|15in}}}}
| _12 = {{W pikselach|15in}}
| 13 = {{Tt|{{s|W pikselach|15Q}}}}
| _13 = {{W pikselach|15Q}}
| 14 = {{Tt|{{s|W pikselach|15mm}}}}
| _14 = {{W pikselach|15mm}}
| 15 = {{Tt|{{s|W pikselach|15cm}}}}
| _15 = {{W pikselach|15cm}}
| 16 = {{Tt|{{s|W pikselach|15cm|7}}}}
| _16 = {{W pikselach|15cm|7}}
| 17 = {{Tt|{{s|W pikselach|15cm|-2}}}}
| _17 = {{W pikselach|15cm|-2}}
}}
=== Szablony funkcji matematycznych ===
{{EfektKodów
| 1 = {{Tt|{{s|Ogranicz|100}}}}
| _1 = {{Ogranicz|100}}
| 2 = {{Tt|{{s|Ogranicz|300}}}}
| _2 = {{Ogranicz|300}}
| 3 = {{Tt|{{s|Ogranicz|30}}}}
| _3 = {{Ogranicz|30}}
}}
=== Szablony do rozwiązań technicznych ===
{{EfektKodów
| 1 = {{Tt|{{s|Jeśli niepuste|{{s|Void}}|-}}}}
| _1 = {{Jeśli niepuste|{{Void}}|-}}
}}
{{BrClear}}
<noinclude>{{Kategoria|Wizualne opisy techniczne szablonów}}</noinclude>
t3wb71a6ww88j9brtb2igx8olmsvatu