Wikibooks plwikibooks https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna MediaWiki 1.47.0-wmf.20 first-letter Media Specjalna Dyskusja Wikipedysta Dyskusja wikipedysty Wikibooks Dyskusja Wikibooks Plik Dyskusja pliku MediaWiki Dyskusja MediaWiki Szablon Dyskusja szablonu Pomoc Dyskusja pomocy Kategoria Dyskusja kategorii Wikijunior Dyskusja Wikijuniora TimedText TimedText talk Moduł Dyskusja modułu Wydarzenie Dyskusja wydarzenia Wikibooks:Bar 4 413 556554 548098 2026-09-15T12:58:04Z MediaWiki message delivery 18085 /* Przełączenie serwerowni – Wasza wiki będzie niedługo w trybie tylko do odczytu */ nowa sekcja 556554 wikitext text/x-wiki {{Skrót|'''[[WB:BAR]]''', '''[[WB:Bot policy]]'''}}{{/Nagłówek}} <!-- =================== DYSKUSJE ========================= --> <!-- ============= Prosimy pisać poniżej ================== --> == Projekt nowej strony głównej == Zajmuję się projektem, który od dawna spędza nam sen z powiek. Jak wszystko będę miał gotowe, będzie można redagować, wstawiać, etc. W ramach [[Wikipedysta:Benjamin_E._Schneider/projektyy|tej strony]] podejmuję się działań: * przepisania kodu SG na nowoczesnego HTML-a bez rozwalania na szablony * unowocześniania interfejsu SG * zadbania o przyjazność dla użytkownika. Jeżeli będziecie mieli jakieś sugestie, napiszcie tutaj lub poprawcie na własną rękę. [[Wikipedysta:Benjamin E. Schneider|Benjamin E. Schneider]] ([[Dyskusja wikipedysty:Benjamin E. Schneider|dyskusja]]) 16:26, 6 sty 2026 (CET) == Thank You for Last Year – Join Wiki Loves Ramadan 2026 == Dear Wikimedia communities, We hope you are doing well, and we wish you a happy New Year. ''Last year, we captured light. This year, we’ll capture legacy.'' In 2025, communities around the world shared the glow of Ramadan nights and the warmth of collective iftars. In 2026, ''Wiki Loves Ramadan'' is expanding, bringing more stories, more cultures, and deeper global connections across Wikimedia projects. We invite you to explore the ''Wiki Loves Ramadan 2026'' [[m:Special:MyLanguage/Wiki Loves Ramadan 2026|Meta page]] to learn how you can participate and [[m:Special:MyLanguage/Wiki Loves Ramadan 2026/Participating communities|sign up]] your community. 📷 ''Photo campaign on '' [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan 2026|Wikimedia Commons]] If you have questions about the project, please refer to the FAQs: * [[m:Special:MyLanguage/Wiki Loves Ramadan/FAQ/|Meta-Wiki]] * [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan/FAQ|Wikimedia Commons]] ''Early registration for updates is now open via the '''[[m:Special:RegisterForEvent/2710|Event page]]''''' ''Stay connected and receive updates:'' * [https://t.me/WikiLovesRamadan Telegram channel] * [https://lists.wikimedia.org/postorius/lists/wikilovesramadan.lists.wikimedia.org/ Mailing list] We look forward to collaborating with you and your community. '''The Wiki Loves Ramadan 2026 Organizing Team''' 20:44, 16 sty 2026 (CET) <!-- Wiadomość wysłana przez User:ZI Jony@metawiki przy użyciu listy na https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29879549 --> == <span lang="en" dir="ltr">Annual review of the Universal Code of Conduct and Enforcement Guidelines</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> I am writing to you to let you know the annual review period for the Universal Code of Conduct and Enforcement Guidelines is open now. You can make suggestions for changes through 9 February 2026. This is the first step of several to be taken for the annual review. [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2026|Read more information and find a conversation to join on the UCoC page on Meta]]. The [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|you may review the U4C Charter]]. Please share this information with other members in your community wherever else might be appropriate. -- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]])<section end="announcement-content" /> </div> 22:01, 19 sty 2026 (CET) <!-- Wiadomość wysłana przez User:Keegan (WMF)@metawiki przy użyciu listy na https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 --> == Sensowny tytuł podręcznika (na podstawie "Moje pierwsze akwarium") == Hej, mam problem, który spędza mi sen z powiek: tytuł podręcznika "Moje pierwsze akwarium". Na pewno super pomysł na podręcznik w naszych Wikibooks, podoba mi się. Ale ... co znaczy ten tytuł? Dlaczego nie po prostu "Akwarium" albo "Akwarium domowe"? Czy "moje" oznacza, że będzie jeszcze "twoje, nasze, ich itd.? Czy pierwsze oznacza, że będą jeszcze kolejne? Czy ten tytuł robi miejsce na jeszcze inny podręcznik o tej samej treści? Mam wielka prośbę - czy można ten tytuł zmienić na "Akwarium"? Byłoby super. Jeżeli nie da się tego zrobić programatycznie, to całą pracę związaną z przeróbką tytułu mogę wziąć na siebie. Co o tym myślicie? [[Wikipedysta:EdytaT|EdytaT]] ([[Dyskusja wikipedysty:EdytaT|dyskusja]]) 22:01, 24 sty 2026 (CET) :@[[Wikipedysta:EdytaT|EdytaT]] tak cały podręcznik i jego strony da się przynieść do nowej nazwy, aczkolwiek będzie trzeba przepatrzeć tekst, ponieważ tam nie da się zmienić automatycznie. Popieram Twoją propozycję, aby zmienić tytuł na „Akwarium”. Jeszcze dobrze jakby się wypowiedział @[[Wikipedysta:Persino|Persino]] :) [[Wikipedysta:Igor123121|Igor123121]] ([[Dyskusja wikipedysty:Igor123121|dyskusja]]) 11:09, 25 sty 2026 (CET) : {{Ping|EdytaT|Igor123121}} Macie rację! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 11:15, 25 sty 2026 (CET) :Ja rozumiem, że "pierwsze" znaczy - "nie było wcześniej" oraz że "dla początkujących", a "moje" znaczy, że będzie wykonywał je czytelnik. Mimo to, nie widzę przeciwwskazań do zmiany nazwy. [[Wikipedysta:Wargo|Wargo]] ([[Dyskusja wikipedysty:Wargo|dyskusja]]) 12:15, 25 sty 2026 (CET) ::Hej, nie musisz mi tego tłumaczyć. Oczywiście, rozumiem "co autor miał na myśli" wybierając ten tytuł. Ale niestety brzmi on nieciekawie, żeby nie powiedzieć - infantylnie. Trochę tak, jak "Moja pierwsza czytanka", albo "Moja pierwsza malowanka". :):):) Dziękuje za twój głos i pozdrawiam serdecznie. [[Wikipedysta:EdytaT|EdytaT]] ([[Dyskusja wikipedysty:EdytaT|dyskusja]]) 13:59, 25 sty 2026 (CET) :::@[[Wikipedysta:EdytaT|EdytaT]] dokonałem przenosin :) Pozdrawiam! [[Wikipedysta:Igor123121|Igor123121]] ([[Dyskusja wikipedysty:Igor123121|dyskusja]]) 14:42, 25 sty 2026 (CET) ::::{{Ping|Igor123121|EdytaT}} Ukończyłem przenosiny użytkownika: {{Ping|Igor123121}}, książki: [[Moje pierwsze akwarium]], na: [[Akwarium]], jako dalsze potrzebne operacje, sprawdzając również linkujące... [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:31, 25 sty 2026 (CET) :::::Dziękuję! [[Wikipedysta:EdytaT|EdytaT]] ([[Dyskusja wikipedysty:EdytaT|dyskusja]]) 18:27, 25 sty 2026 (CET) *Samo przeniesienie popieram ale po co kasować przekierowania? A co jeśli ktoś linkował do nas? [[Wikipedysta:Marek Mazurkiewicz|Marek Mazurkiewicz]] ([[Dyskusja wikipedysty:Marek Mazurkiewicz|dyskusja]]) 06:57, 26 sty 2026 (CET) == Nazewnictwo artykułów (na podst. "Język pruski dla początkujących") == Hej, jest jeszcze jeden tytuł, który nie pasuje do innych z dziedziny języków: "Język pruski dla początkujących". Prawie wszystkie inne tytuły to po prostu "Hiszpański", "Japoński", "Szwedzki" itd. Czy można zmienić nazwę na "Pruski"? A informacja, że chodzi o początkujących wynika per se z tytułów rozdziałów. Tak też nakazują nasze Wikibookowe reguły, cyt. fragment z "Pomoc" - "Nazewnictwo"<br> ;''Przykłady poprawnych tytułów:<br>'' ''Angielski<br>'' ''Mikrobiologia<br>'' ;''Przykłady niepoprawnych tytułów:<br>'' ''Język Angielski od Podstaw<br>'' ''Historia Polski od Mieszka I do Lecha Wałęsy<br>'' ''Mikrobiologia:Wstęp do nauki o mikroorganizmach<br>'' ''Nie należy stosować w nazwach podręczników własnych określeń, specyficznych tytułów, np. "Mój przewodnik po Beskidzie Wyspowym" albo "Trudna sztuka chirurgii". Takie podtytuły mogą się ewentualnie znaleźć na stronie tytułowej lub w spisie treści.<br>'' Jeżeli nie da się tego zrobić programatycznie, to całą pracę związaną z przeróbką tytułu mogę wziąć na siebie. Co o tym myślicie? [[Wikipedysta:EdytaT|EdytaT]] ([[Dyskusja wikipedysty:EdytaT|dyskusja]]) 22:20, 26 sty 2026 (CET) :Już przeniosłem książkę: [[Język pruski dla początkujących]], pod adres: [[Pruski]], sprawdzając jednocześnie linkujące, ale na szczęście ich nie było. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 23:10, 26 sty 2026 (CET) ::Linkujace w wikimediach to nie wszystko. Mógłbyś zostawiać przekierowania? [[Wikipedysta:Marek Mazurkiewicz|Marek Mazurkiewicz]] ([[Dyskusja wikipedysty:Marek Mazurkiewicz|dyskusja]]) 07:49, 28 sty 2026 (CET) : Dziękuję! {{Brak podpisu|EdytaT}} == Tłumaczenie książek przez AI == Co o tym myślicie? Mam coś na kształt książki na temat języka Scheme: * https://lips.js.org/docs/category/introduction-to-scheme Myślałem, aby przetłumaczyć na język polski. Treść jest na licencji CC-BY-SA. Na stronie [[Lisp]] jest bardzo mało treści. Mój tekst jest nawet bardziej kompletny niż [[:en:Scheme Programming]]. Nie wiem, czy znajdę czas, aby przetłumaczyć ręcznie. [[Wikipedysta:Jcubic|Jcubic]] ([[Dyskusja wikipedysty:Jcubic|dyskusja]]) 22:15, 17 mar 2026 (CET) * Nawet dobry sposób, można w ten właśnie sposób przetłumaczyć tę pozycję... [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 22:18, 17 mar 2026 (CET) == <span lang="en" dir="ltr">Upcoming deployment of CampaignEvents extension to Wikibooks</span> == <div lang="en" dir="ltr"> <section begin="message"/> Hello everyone, We are writing to inform you that the [[mw:Help:Extension:CampaignEvents|CampaignEvents extension]] will be deployed to all Wikibooks projects during the week of '''23 March 2026'''. This follows last year’s broader rollout across Wikimedia projects. We realized that Wikibooks was not included at the time, and we’re now addressing that to ensure consistency across all communities. The CampaignEvents extension provides tools to support event and campaign organization on-wiki, including features like on-wiki event registration and collaboration lists(global event list). We welcome any questions, feedback, or concerns you may have. We are also happy to support anyone interested in trying out the tools. ''Apologies if this message is not in your preferred language. If you’re able to help translate it for your community, please feel free to do so.'' <section end="message"/> </div> <bdi lang="en" dir="ltr">[[User:Udehb-WMF|Udehb-WMF]] ([[User talk:Udehb-WMF|dyskusja]]) 19:22, 19 mar 2026 (CET)</bdi> <!-- Wiadomość wysłana przez User:Udehb-WMF@metawiki przy użyciu listy na https://meta.wikimedia.org/w/index.php?title=User:Udehb-WMF/sandbox/MM_target&oldid=30284073 --> == Action Required: Update templates/modules for electoral maps (Migrating from P1846 to P14226) == Hello everyone, This is a notice regarding an ongoing data migration on Wikidata that may affect your election-related templates and Lua modules (such as <code>Module:Itemgroup/list</code>). '''The Change:'''<br /> Currently, many templates pull electoral maps from Wikidata using the property [[:d:Property:P1846|P1846]], combined with the qualifier [[:d:Property:P180|P180]]: [[:d:Q19571328|Q19571328]]. We are migrating this data (across roughly 4,000 items) to a newly created, dedicated property: '''[[:d:Property:P14226|P14226]]'''. '''What You Need To Do:'''<br /> To ensure your templates and infoboxes do not break or lose their maps, please update your local code to fetch data from [[:d:Property:P14226|P14226]] instead of the old [[:d:Property:P1846|P1846]] + [[:d:Property:P180|P180]] structure. A [[m:Wikidata/Property Migration: P1846 to P14226/List|list of pages]] was generated using Wikimedia Global Search. '''Deadline:'''<br /> We are temporarily retaining the old data on [[:d:Property:P1846|P1846]] to allow for a smooth transition. However, to complete the data cleanup on Wikidata, the old [[:d:Property:P1846|P1846]] statements will be removed after '''May 1, 2026'''. Please update your modules and templates before this date to prevent any disruption to your wiki's election articles. Let us know if you have any questions or need assistance with the query logic. Thank you for your help! [[User:ZI Jony|ZI Jony]] using [[Wikipedysta:MediaWiki message delivery|MediaWiki message delivery]] ([[Dyskusja wikipedysty:MediaWiki message delivery|dyskusja]]) 19:11, 3 kwi 2026 (CEST) <!-- Wiadomość wysłana przez User:ZI Jony@metawiki przy użyciu listy na https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29941252 --> == Request for comment (global AI policy) == <bdi lang="en" dir="ltr" class="mw-content-ltr"> Apologies for writing in English. {{int:Please-translate}} A [[:m:Requests for comment/Artificial intelligence policy|request for comment]] is currently being held to decide on a global AI policy. {{int:Feedback-thanks-title}} [[Wikipedysta:MediaWiki message delivery|MediaWiki message delivery]] ([[Dyskusja wikipedysty:MediaWiki message delivery|dyskusja]]) 02:57, 26 kwi 2026 (CEST) </bdi> <!-- Wiadomość wysłana przez User:Codename Noreste@metawiki przy użyciu listy na https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30424282 --> == <span lang="en" dir="ltr">Vote now in the 2026 U4C election</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> Eligible voters are asked to participate in the 2026 [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] election. More information–including an eligibility check, voting process information, candidate information, and a link to the vote–are available on Meta at the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|2026 Election information page]]. The vote closes on 2 June 2026 at [https://zonestamp.toolforge.org/1780358400 00:00 UTC]. Please vote if your account is eligible. Results will be available by 14 June 2026. -- In cooperation with the U4C,<section end="announcement-content" /> </div> [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 19:14, 27 maj 2026 (CEST) <!-- Wiadomość wysłana przez User:Keegan (WMF)@metawiki przy użyciu listy na https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 --> == RFC about AI-generated content in Wikimedia Commons == <bdi lang="en" dir="ltr">Apologies for writing in English, please help translate this message to your language. You are invited to participate in a [[c:Commons:Requests for comment/Policy update for AI content|request for comment on Wikimedia Commons about a policy update for AI content]]. This may affect files that are uploaded to Wikimedia Commons for use on this project. Thank you. [[m:User:Codename Noreste|Codename Noreste]] ([[m:User talk:Codename Noreste|dyskusja]])</bdi> 19:11, 23 cze 2026 (CEST) <!-- Wiadomość wysłana przez User:Codename Noreste@metawiki przy użyciu listy na https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 --> == <span lang="en" dir="ltr">Deployment of Legal and Safety Contacts Link in the Footer of Your Wiki</span> == <div lang="en" dir="ltr"> <section begin="Message"/> '''Legal & Safety Contacts''' Hello community, the Wikimedia Foundation has provided a [[wmf:Special:MyLanguage/Legal:Wikimedia Foundation Legal and Safety Contact Information|single legal and safety contact page]], to be linked in the footer of your wiki, to ensure access to accurate legal information. This is a regulatory requirement. We have already rolled out links to English, German, Italian, Spanish and other wikis and we will deploy to your wiki soon. [[m:Special:MyLanguage/Wikimedia_Foundation_Legal_and_Safety_Contacts_FAQ|Please read more on the project page]] and leave any comments in this thread or on the [[m:Special:MyLanguage/Talk:Wikimedia Foundation Legal and Safety Contacts FAQ|talk page]]. <section end="Message"/> </div> -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 15:30, 25 cze 2026 (CEST) <!-- Wiadomość wysłana przez User:Sannita (WMF)@metawiki przy użyciu listy na https://meta.wikimedia.org/w/index.php?title=User:Sannita_(WMF)/Mass_sending_test&oldid=30731267 --> == Request for comment (the future of Abstract Wikipedia) == <bdi lang="en" dir="ltr" class="mw-content-ltr"> Apologies if this has not yet been translated into your wiki's language. {{int:Please-translate}} You are invited to voice your opinions in a [[:m:Requests for comment/The future of Abstract Wikipedia|request for comment about the future of Abstract Wikipedia]]. {{Int:Feedback-thanks-title}} [[:m:User:Kowal2701|Kowal2701]] ([[:m:User talk:Kowal2701|talk]]) 14:24, 24 lip 2026 (CEST) </bdi> <!-- Wiadomość wysłana przez User:DreamRimmer@metawiki przy użyciu listy na https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 --> == Przełączenie serwerowni – Wasza wiki będzie niedługo w trybie tylko do odczytu == <section begin="server-switch"/><div class="plainlinks"> [[:m:Special:MyLanguage/Tech/Server switch|Przeczytaj w innym języku]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Tech%2FServer+switch&language=&action=page&filter= {{int:please-translate}}] [[foundation:|Wikimedia Foundation]] przełączy ruch na inną swoją serwerownię. Upewni to nas, że Wikipedia i inne strony Wikimedia będą zawsze online, nawet w przypadku kataklizmu. Cały ruch zostanie przełączony '''{{#time:j xg|2026-09-23|pl}}'''. Przełączanie rozpocznie się o '''[https://zonestamp.toolforge.org/{{#time:U|2026-09-23T14:00|en}} {{#time:H:i e|2026-09-23T14:00}}]''' (17:00 CEST). Niestety, z powodu niektórych ograniczeń w [[mw:Special:MyLanguage/Manual:What is MediaWiki?|MediaWiki]], wszystkie operacje edycyjne muszą zostać przerwane podczas przełączenia. Przepraszamy za te utrudnienia. Będziemy pracować nad tym, aby je zminimalizować w przyszłości. Na wszystkich wiki na 30 minut przed zostanie wyświetlony banner, zanim ta operacja się zacznie. Będzie on widoczny aż do końca operacji przełączenia serwerowni. <span lang="en" dir="ltr" class="mw-content-ltr">You can contribute to the [https://meta.wikimedia.org/w/index.php?title=Special%3ATranslate&group=Centralnotice-tgroup-read_only_banner&task=view&language=&filter=&action=translate translation or proofreading] of this banner text.</span> '''Każdą wiki przez krótki czas będzie można tylko czytać, ale nie edytować.''' * Edytowanie nie będzie możliwe {{#time:j xg Y (l)|2026-09-23|pl}} przez maksymalnie godzinę. * Jeżeli spróbujesz edytować lub zapisywać zmiany w tym czasie, zobaczysz komunikat o błędzie. Mamy nadzieję, że żadne edycje nie zostaną utracone podczas tego czasu, ale nie możemy tego zagwarantować. Jeżeli zauważysz komunikat o błędzie, poczekaj aż wszystko wróci do normy. Będzie wtedy możliwe zapisanie zmian. Zalecamy jednak zrobienie kopii swoich zmian, na wszelki wypadek. ''Inne skutki'': * Zadania w tle będą wolniejsze, a niektóre mogą być przerywane. Czerwone linki mogą nie być aktualizowane tak szybko, jak zwykle. Jeżeli utworzysz artykuł, do którego prowadzi jakiś link, to ten link będzie dłużej czerwony niż zwykle. Część skryptów, uruchamiających się na dłużej, zostanie zatrzymanych. * Oczekujemy, że wdrożenia kodu będą miały miejsce jak w każdym innym tygodniu. Jednakże poszczególne fragmenty kodu mogą się zawiesić, jeżeli dana operacja będzie ich później potrzebować. * [[mw:Special:MyLanguage/GitLab|GitLab]] będzie niedostępny przez około 90 minut. W razie konieczności terminy testu mogą się przesunąć. Możesz [[wikitech:Switch_Datacenter|zapoznać się z harmonogramem na wikitech.wikimedia.org]]. Wszelkie zmiany będą ogłoszone w tymże harmonogramie. '''Prosimy, podziel się tą informacją ze swoją społecznością.'''</div><section end="server-switch"/> [[m:user:Trizek (WMF)|Trizek (WMF)]] 14:58, 15 wrz 2026 (CEST) <!-- Wiadomość wysłana przez User:Trizek (WMF)@metawiki przy użyciu listy na https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=30513874 --> 72mnlmy9hjs7knizhcd0uirjr8hdtcv Szablon:StronaStart/styles.css 10 33595 556632 542321 2026-09-15T20:33:04Z Persino 2851 556632 sanitized-css text/css .fonty_rodzina_sans{ font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif; font-stretch:normal; font-variant:normal; font-style:normal; font-weight:normal; font-size-adjust:none; letter-spacing:normal; word-spacing:normal; text-align:justify; text-justify:inter-word; word-wrap:break-word; word-break:break-word; hyphens:auto; } .fonty_rodzina_sans ul li, .fonty_rodzina_sans ol li{ text-align:left; } .fonty_główna_kolumna, .fonty_tekst_we_wzorach, .fonty_obiekt, .fonty_rysunek, .fonty_patrz,.fonty_zobaczteż, .fonty_twierdzenie, .fonty_hipoteza, .fonty_lemat, .fonty_kryterium, .fonty_dowód, .fonty_postulat, .fonty_postulaty, .fonty_określenie, .fonty_zadanie, .fonty_praktyka, .fonty_procedura, .fonty_schemat{ font-size:calc( 0.875rem * 1.042 ); line-height:1.4em; } .format .fonty_główna_kolumna{ font-size:calc( 0.875em * 1.042 ); line-height:1.4em; } .format .fonty_tekst_we_wzorach, .format .fonty_obiekt, .format .fonty_rysunek, .format .fonty_patrz,.fonty_zobaczteż, .format .fonty_twierdzenie, .format .fonty_hipoteza, .format .fonty_lemat, .format .fonty_kryterium, .format .fonty_dowód, .format .fonty_postulat, .format .fonty_postulaty, .format .fonty_określenie, .format .fonty_zadanie, .format .fonty_praktyka, .format .fonty_procedura, .format .fonty_schemat{ font-size:1em; line-height:1.3em; } .fonty_poboczna_kolumna{ font-size:calc( 0.75rem * 1.040 ); line-height:1.2em; } .format .fonty_poboczna_kolumna{ font-size:calc( 0.75em * 1.040 ); line-height:1.2em; } .fonty_toc{ font-size:calc( 0.8125rem * 1.092 ); line-height: 1.0em; } .format .fonty_toc{ font-size:calc( 0.8125em * 1.092 ); line-height: 1.0em; } :not(span):not(.fonty_formuły) > span.mwe-math-element, :not(span):not(.fonty_wzory) > span.mwe-math-element, .fonty_rodzina_serif{ font-family: "Times New Roman", Times, "Free Times", FreeSerif, serif; font-stretch:normal; font-variant:normal; font-style:normal; font-weight:normal; font-size-adjust:0.45; letter-spacing:normal; word-spacing:normal; word-wrap:break-word; word-break:break-word; } :not(span):not(.fonty_formuły) > span.mwe-math-element, :not(span):not(.fonty_wzory) > span.mwe-math-element, .fonty_formuły, .fonty_wzory{ font-size:calc( 0.875rem * 0.86 ); line-height:inherit; } .format .fonty_formuły, .format .fonty_wzory{ font-size:calc( 0.875em * 0.86 / 0.875 / 1.042 ); line-height:inherit; } .format .fonty_formuły > span.fonty_tekst_we_wzorach, .format .fonty_wzory > span.fonty_tekst_we_wzorach{ font-size:calc( 1em / 0.875 / 0.86 * 0.875 * 1.042 ); line-height:inherit; } .fonty_opis_i_numeracja, .fonty_linkobiekt, .fonty_linkwzór, .fonty_linkrysunek, .fonty_linkpatrz,.fonty_linkzobaczteż, .fonty_linktwierdzenie, .fonty_linkhipoteza, .fonty_linklemat, .fonty_linkkryterium, .fonty_linkdowód, .fonty_linkpostulat, .fonty_linkpostulaty, .fonty_linkokreślenie, .fonty_linkzadanie, .fonty_linkpraktyka, .fonty_linkprocedura, .fonty_linkschemat,.fonty_linknagłówek{ font-size:calc(0.8125rem * 1.034); line-height:inherit; } .format .fonty_opis_i_numeracja, .format .fonty_linkobiekt, .format .fonty_linkwzór, .format .fonty_linkrysunek, .format .fonty_linkpatrz,.format .fonty_linkzobaczteż, .format .fonty_linktwierdzenie, .format .fonty_linkhipoteza, .format .fonty_linklemat, .format .fonty_linkkryterium, .format .fonty_linkdowód, .format .fonty_linkpostulat, .format .fonty_linkpostulaty, .format .fonty_linkokreślenie, .format .fonty_linkzadanie, .format .fonty_linkpraktyka, .format .fonty_linkprocedura, .format .fonty_linkschemat,.format .fonty_linknagłówek{ font-size:calc( 1em * 0.8125 * 1.034 / 0.875 / 1.042 ); line-height:inherit; } /*{{Kategoria|Szablony - arkusze stylów/StronaStart|sortuj spacją=tak}}*/ rth5mgdm8xgq89pns2lits29yj41etp Wikibooks:Moduły/Ramka 4 63231 556549 556228 2026-09-15T12:03:42Z Persino 2851 /* {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} */ 556549 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = Funkcja ramki funkcji tablica transportu modułu. | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = Ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = Jest to pełna nazwa szablonu, modułu, czy parsera. | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = Tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są. | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = Jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka, a nawet któreś z jego przodków. Jeśli, nie podano parametru: {{Code|zmienna z parametrami rodzica}} {{LinkPatrz|zmienna z parametrami rodzica}}, to ona jest tworzona na życzenie: {{Code|zmienna z nazwą szablonu rodzica}} {{LinkPatrz|zmienna z nazwą szablonu rodzica}}, przeciwnie, jest tworzona właśnie wtedy. | 5 = {{Code|nazwa szablonu przodka}} {{Patrz|nazwa szablonu przodka}} | _5 = Nie jest tworzona na życzenie żadnego parametru jak to było z: {{Code|nazwa szablonu rodzica}} {{LinkPatrz|nazwa szablonu rodzica}}, tylko jest tworzona u pierwszego najwyższego przodka, którego parametry są dziedziczone, do jej potomków, wtedy jest to nazwa szablonu, w najwyższego przodka, względem jego dzieci wywoływanych przez funkcję: {{Code|{{m|Ramka|Szablon}}}}, czy przez jego kolegów, | 6 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _6 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki. | 7= {{Code|potomek}} {{Patrz|potomek}} | _7 = Zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję. | 8 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _8 = Zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 9 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _9 = Zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 10 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _10 = Nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka. | 11 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _11 = Zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję. | 12 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _12 = Jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}. | 13 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _13 = Zmienna mówiąca, czy ma być tworzony parametr ramki, który jest nieprawidłowy lub nie powinien być podany, a jeśli jednak jest, to sprawdzanie jest przez walidację błędów w: {{m|Sprawdź|Parametry}}, powinno to zgłosić problem, bo wtedy te parametry rodzica są odejmowane z podanej tablicy argmentów, jeśli była taka, lub tworzona jest nowa taka tablicy, którą jest: {{Code|bez argumentów szablonu}}, określający parametry, które szablon, czy ramka, a nawet parser, nie powinien przyjmować. Format tej tablicy jest podany w punkcie {{LinkPatrz|bez argumentów szablonu}}. | 14 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _14 = Parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, gdy nie jest niepusty parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, lub nie jest niepusty {{Code|potomek}} {{LinkPatrz|potomek}}, albo gdy nie jest niepusty {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, wtedy jest tworzona, na życzenie, zmienna: {{Code|nazwa szablonu rodzica}}, którą jest nazwa szablonu rodzica nie przodka. W przeciwnym wypadku jest tworzona na życzenie parametru: {{Code|zmienna z parametrami rodzica}} {{LinkPatrz|zmienna z parametrami rodzica}}. | 15 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _15 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem. | 16 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _16 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami. | 17 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _17 = Parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 18 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji: | nagłówek18 = tak | 19 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _19 = Nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = Pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = Liczba mówiąca o minimum. | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = Liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = Jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity. | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = Jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja. | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = W przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}. | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = Wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}. | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = Mówi, że na początku musi znajdować się przecinek. | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = Mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}. | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku: | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = Instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}. | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = Używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = Minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}. | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = A tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = Podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek. | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = Używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej. | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = Czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_argumentami}} | _1 = Parametr ze zmiennymi do rozpakowwania. }} Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = Tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = Tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = Liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}. | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = Liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Początek iteracji dokonywany przez ta funkcję. | 2 = {{Code|koniec}} | _2 = Koniec iteracji dokonywany przez ta funkcję. | 3 = {{Code|krok}} | _3 = Krok iteracji, co który numer ma iterować. | 4 = {{Code|łącznik}} |_4 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 5 = {{Code|nowa linia}} |_5 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 6 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku:|nagłówek6=tak | 7 = {{Code|przeskok}} | _7 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 8 = Inne:| nagłówek8=tak | 9 = {{Code|nie rozwiń}} | _9 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 10 = {{Code|1}} | _10 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. }} ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} {{OpisParametrów | 1 = {{Code|ciąg}} | _1 = Lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami. | 2 = {{Code|łącznik}} | _2 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 3 = {{Code|nowa linia}} | _3 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 4 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku:|nagłówek4=tak | 5 = {{Code|przeskok}} | _5 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 6 = Inne: |nagłówek6=tak | 7 = {{Code|nie rozwiń}} | _7 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 8 = {{Code|1}} | _8 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = Symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. | 2 = {{Code|<nowiki>{{ciąg}}</nowiki>}} | _2 = Jest to wartość pojedynczego elementu w {{Code|ciąg}}. }} Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero:|nagłówek2=tak | 3 = {{Code|wzór}} | _3 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. }} === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. Parametry funkcji: {{OpisParametrów | 1 = Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}:|nagłówek1=tak | 2 = {{Code|1}} | _2 = Wielopoziomowy adres z ewentualnie prawymi ukośnikami. }} === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. Parametry funkcji: {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = {{Code|wzór}} | _2 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. }} Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa parametru numerowanego liczbami lub ciągiem pustym. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tego numeru. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== 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/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa nazwowa parametru numerowanego. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== 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/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametry}} | _1 = Lista parametrów oddzielonych średnikiem. | 2 = {{Code|pozycja}} | _2 = Szukany parametr w tablicy argumentów. | 3 = {{Code|od dużej}} | _3 = Czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> og35x1eet5c9hj964ire5fmngcqg1zr 556550 556549 2026-09-15T12:31:10Z Persino 2851 /* {{Śródtytuł|p.N}}{{Code|p.N}} */ 556550 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = Funkcja ramki funkcji tablica transportu modułu. | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = Ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = Jest to pełna nazwa szablonu, modułu, czy parsera. | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = Tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są. | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = Jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka, a nawet któreś z jego przodków. Jeśli, nie podano parametru: {{Code|zmienna z parametrami rodzica}} {{LinkPatrz|zmienna z parametrami rodzica}}, to ona jest tworzona na życzenie: {{Code|zmienna z nazwą szablonu rodzica}} {{LinkPatrz|zmienna z nazwą szablonu rodzica}}, przeciwnie, jest tworzona właśnie wtedy. | 5 = {{Code|nazwa szablonu przodka}} {{Patrz|nazwa szablonu przodka}} | _5 = Nie jest tworzona na życzenie żadnego parametru jak to było z: {{Code|nazwa szablonu rodzica}} {{LinkPatrz|nazwa szablonu rodzica}}, tylko jest tworzona u pierwszego najwyższego przodka, którego parametry są dziedziczone, do jej potomków, wtedy jest to nazwa szablonu, w najwyższego przodka, względem jego dzieci wywoływanych przez funkcję: {{Code|{{m|Ramka|Szablon}}}}, czy przez jego kolegów, | 6 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _6 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki. | 7= {{Code|potomek}} {{Patrz|potomek}} | _7 = Zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję. | 8 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _8 = Zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 9 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _9 = Zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 10 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _10 = Nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka. | 11 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _11 = Zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję. | 12 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _12 = Jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}. | 13 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _13 = Zmienna mówiąca, czy ma być tworzony parametr ramki, który jest nieprawidłowy lub nie powinien być podany, a jeśli jednak jest, to sprawdzanie jest przez walidację błędów w: {{m|Sprawdź|Parametry}}, powinno to zgłosić problem, bo wtedy te parametry rodzica są odejmowane z podanej tablicy argmentów, jeśli była taka, lub tworzona jest nowa taka tablicy, którą jest: {{Code|bez argumentów szablonu}}, określający parametry, które szablon, czy ramka, a nawet parser, nie powinien przyjmować. Format tej tablicy jest podany w punkcie {{LinkPatrz|bez argumentów szablonu}}. | 14 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _14 = Parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, gdy nie jest niepusty parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, lub nie jest niepusty {{Code|potomek}} {{LinkPatrz|potomek}}, albo gdy nie jest niepusty {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, wtedy jest tworzona, na życzenie, zmienna: {{Code|nazwa szablonu rodzica}}, którą jest nazwa szablonu rodzica nie przodka. W przeciwnym wypadku jest tworzona na życzenie parametru: {{Code|zmienna z parametrami rodzica}} {{LinkPatrz|zmienna z parametrami rodzica}}. | 15 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _15 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem. | 16 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _16 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami. | 17 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _17 = Parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 18 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji: | nagłówek18 = tak | 19 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _19 = Nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = Pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = Liczba mówiąca o minimum. | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = Liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = Jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity. | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = Jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja. | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = W przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}. | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = Wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}. | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = Mówi, że na początku musi znajdować się przecinek. | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = Mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}. | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku: | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = Instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}. | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = Używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = Minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}. | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = A tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = Podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek. | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = Używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej. | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = Czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_argumentami}} | _1 = Parametr ze zmiennymi do rozpakowwania. }} Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = Tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = Tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, czy kategorii, zostawia wpis w postaci przedrostka: {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = Liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}. | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = Liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Początek iteracji dokonywany przez ta funkcję. | 2 = {{Code|koniec}} | _2 = Koniec iteracji dokonywany przez ta funkcję. | 3 = {{Code|krok}} | _3 = Krok iteracji, co który numer ma iterować. | 4 = {{Code|łącznik}} |_4 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 5 = {{Code|nowa linia}} |_5 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 6 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku:|nagłówek6=tak | 7 = {{Code|przeskok}} | _7 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 8 = Inne:| nagłówek8=tak | 9 = {{Code|nie rozwiń}} | _9 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 10 = {{Code|1}} | _10 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. }} ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} {{OpisParametrów | 1 = {{Code|ciąg}} | _1 = Lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami. | 2 = {{Code|łącznik}} | _2 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 3 = {{Code|nowa linia}} | _3 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 4 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku:|nagłówek4=tak | 5 = {{Code|przeskok}} | _5 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 6 = Inne: |nagłówek6=tak | 7 = {{Code|nie rozwiń}} | _7 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 8 = {{Code|1}} | _8 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = Symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. | 2 = {{Code|<nowiki>{{ciąg}}</nowiki>}} | _2 = Jest to wartość pojedynczego elementu w {{Code|ciąg}}. }} Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero:|nagłówek2=tak | 3 = {{Code|wzór}} | _3 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. }} === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. Parametry funkcji: {{OpisParametrów | 1 = Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}:|nagłówek1=tak | 2 = {{Code|1}} | _2 = Wielopoziomowy adres z ewentualnie prawymi ukośnikami. }} === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. Parametry funkcji: {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = {{Code|wzór}} | _2 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. }} Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa parametru numerowanego liczbami lub ciągiem pustym. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tego numeru. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== 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/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa nazwowa parametru numerowanego. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== 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/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametry}} | _1 = Lista parametrów oddzielonych średnikiem. | 2 = {{Code|pozycja}} | _2 = Szukany parametr w tablicy argumentów. | 3 = {{Code|od dużej}} | _3 = Czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> nm3te97z0r85ekjc8eukx2urzi1psin 556551 556550 2026-09-15T12:36:24Z Persino 2851 /* {{Śródtytuł|p.Q}}{{Code|p.Q}} */ 556551 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = Funkcja ramki funkcji tablica transportu modułu. | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = Ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = Jest to pełna nazwa szablonu, modułu, czy parsera. | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = Tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są. | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = Jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka, a nawet któreś z jego przodków. Jeśli, nie podano parametru: {{Code|zmienna z parametrami rodzica}} {{LinkPatrz|zmienna z parametrami rodzica}}, to ona jest tworzona na życzenie: {{Code|zmienna z nazwą szablonu rodzica}} {{LinkPatrz|zmienna z nazwą szablonu rodzica}}, przeciwnie, jest tworzona właśnie wtedy. | 5 = {{Code|nazwa szablonu przodka}} {{Patrz|nazwa szablonu przodka}} | _5 = Nie jest tworzona na życzenie żadnego parametru jak to było z: {{Code|nazwa szablonu rodzica}} {{LinkPatrz|nazwa szablonu rodzica}}, tylko jest tworzona u pierwszego najwyższego przodka, którego parametry są dziedziczone, do jej potomków, wtedy jest to nazwa szablonu, w najwyższego przodka, względem jego dzieci wywoływanych przez funkcję: {{Code|{{m|Ramka|Szablon}}}}, czy przez jego kolegów, | 6 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _6 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki. | 7= {{Code|potomek}} {{Patrz|potomek}} | _7 = Zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję. | 8 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _8 = Zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 9 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _9 = Zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 10 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _10 = Nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka. | 11 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _11 = Zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję. | 12 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _12 = Jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}. | 13 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _13 = Zmienna mówiąca, czy ma być tworzony parametr ramki, który jest nieprawidłowy lub nie powinien być podany, a jeśli jednak jest, to sprawdzanie jest przez walidację błędów w: {{m|Sprawdź|Parametry}}, powinno to zgłosić problem, bo wtedy te parametry rodzica są odejmowane z podanej tablicy argmentów, jeśli była taka, lub tworzona jest nowa taka tablicy, którą jest: {{Code|bez argumentów szablonu}}, określający parametry, które szablon, czy ramka, a nawet parser, nie powinien przyjmować. Format tej tablicy jest podany w punkcie {{LinkPatrz|bez argumentów szablonu}}. | 14 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _14 = Parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, gdy nie jest niepusty parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, lub nie jest niepusty {{Code|potomek}} {{LinkPatrz|potomek}}, albo gdy nie jest niepusty {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, wtedy jest tworzona, na życzenie, zmienna: {{Code|nazwa szablonu rodzica}}, którą jest nazwa szablonu rodzica nie przodka. W przeciwnym wypadku jest tworzona na życzenie parametru: {{Code|zmienna z parametrami rodzica}} {{LinkPatrz|zmienna z parametrami rodzica}}. | 15 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _15 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem. | 16 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _16 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami. | 17 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _17 = Parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 18 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji: | nagłówek18 = tak | 19 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _19 = Nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = Pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = Liczba mówiąca o minimum. | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = Liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = Jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity. | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = Jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja. | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = W przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}. | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = Wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}. | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = Mówi, że na początku musi znajdować się przecinek. | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = Mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}. | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku: | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = Instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}. | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = Używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = Minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}. | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = A tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = Podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek. | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = Używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej. | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = Czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_argumentami}} | _1 = Parametr ze zmiennymi do rozpakowwania. }} Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = Tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = Tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje nie tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon ten, czy też: {{s|T}}, podobnie jak poprzedni szablon, dopuszcza parametry szablonu, które uruchamiają się z nimi owy szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, czy kategorii, zostawia wpis w postaci przedrostka: {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = Liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}. | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = Liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Początek iteracji dokonywany przez ta funkcję. | 2 = {{Code|koniec}} | _2 = Koniec iteracji dokonywany przez ta funkcję. | 3 = {{Code|krok}} | _3 = Krok iteracji, co który numer ma iterować. | 4 = {{Code|łącznik}} |_4 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 5 = {{Code|nowa linia}} |_5 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 6 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku:|nagłówek6=tak | 7 = {{Code|przeskok}} | _7 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 8 = Inne:| nagłówek8=tak | 9 = {{Code|nie rozwiń}} | _9 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 10 = {{Code|1}} | _10 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. }} ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} {{OpisParametrów | 1 = {{Code|ciąg}} | _1 = Lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami. | 2 = {{Code|łącznik}} | _2 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 3 = {{Code|nowa linia}} | _3 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 4 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku:|nagłówek4=tak | 5 = {{Code|przeskok}} | _5 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 6 = Inne: |nagłówek6=tak | 7 = {{Code|nie rozwiń}} | _7 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 8 = {{Code|1}} | _8 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = Symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. | 2 = {{Code|<nowiki>{{ciąg}}</nowiki>}} | _2 = Jest to wartość pojedynczego elementu w {{Code|ciąg}}. }} Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero:|nagłówek2=tak | 3 = {{Code|wzór}} | _3 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. }} === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. Parametry funkcji: {{OpisParametrów | 1 = Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}:|nagłówek1=tak | 2 = {{Code|1}} | _2 = Wielopoziomowy adres z ewentualnie prawymi ukośnikami. }} === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. Parametry funkcji: {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = {{Code|wzór}} | _2 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. }} Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa parametru numerowanego liczbami lub ciągiem pustym. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tego numeru. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== 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/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa nazwowa parametru numerowanego. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== 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/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametry}} | _1 = Lista parametrów oddzielonych średnikiem. | 2 = {{Code|pozycja}} | _2 = Szukany parametr w tablicy argumentów. | 3 = {{Code|od dużej}} | _3 = Czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> esnmd5wzxel0p1ub6zdsb1ptkfn1apv 556552 556551 2026-09-15T12:40:16Z Persino 2851 /* {{Śródtytuł|p.A}}{{Code|p.A}} */ 556552 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = Funkcja ramki funkcji tablica transportu modułu. | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = Ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = Jest to pełna nazwa szablonu, modułu, czy parsera. | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = Tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są. | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = Jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka, a nawet któreś z jego przodków. Jeśli, nie podano parametru: {{Code|zmienna z parametrami rodzica}} {{LinkPatrz|zmienna z parametrami rodzica}}, to ona jest tworzona na życzenie: {{Code|zmienna z nazwą szablonu rodzica}} {{LinkPatrz|zmienna z nazwą szablonu rodzica}}, przeciwnie, jest tworzona właśnie wtedy. | 5 = {{Code|nazwa szablonu przodka}} {{Patrz|nazwa szablonu przodka}} | _5 = Nie jest tworzona na życzenie żadnego parametru jak to było z: {{Code|nazwa szablonu rodzica}} {{LinkPatrz|nazwa szablonu rodzica}}, tylko jest tworzona u pierwszego najwyższego przodka, którego parametry są dziedziczone, do jej potomków, wtedy jest to nazwa szablonu, w najwyższego przodka, względem jego dzieci wywoływanych przez funkcję: {{Code|{{m|Ramka|Szablon}}}}, czy przez jego kolegów, | 6 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _6 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki. | 7= {{Code|potomek}} {{Patrz|potomek}} | _7 = Zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję. | 8 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _8 = Zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 9 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _9 = Zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 10 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _10 = Nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka. | 11 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _11 = Zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję. | 12 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _12 = Jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}. | 13 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _13 = Zmienna mówiąca, czy ma być tworzony parametr ramki, który jest nieprawidłowy lub nie powinien być podany, a jeśli jednak jest, to sprawdzanie jest przez walidację błędów w: {{m|Sprawdź|Parametry}}, powinno to zgłosić problem, bo wtedy te parametry rodzica są odejmowane z podanej tablicy argmentów, jeśli była taka, lub tworzona jest nowa taka tablicy, którą jest: {{Code|bez argumentów szablonu}}, określający parametry, które szablon, czy ramka, a nawet parser, nie powinien przyjmować. Format tej tablicy jest podany w punkcie {{LinkPatrz|bez argumentów szablonu}}. | 14 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _14 = Parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, gdy nie jest niepusty parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, lub nie jest niepusty {{Code|potomek}} {{LinkPatrz|potomek}}, albo gdy nie jest niepusty {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, wtedy jest tworzona, na życzenie, zmienna: {{Code|nazwa szablonu rodzica}}, którą jest nazwa szablonu rodzica nie przodka. W przeciwnym wypadku jest tworzona na życzenie parametru: {{Code|zmienna z parametrami rodzica}} {{LinkPatrz|zmienna z parametrami rodzica}}. | 15 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _15 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem. | 16 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _16 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami. | 17 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _17 = Parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 18 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji: | nagłówek18 = tak | 19 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _19 = Nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = Pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = Liczba mówiąca o minimum. | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = Liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = Jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity. | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = Jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja. | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = W przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}. | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = Wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}. | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = Mówi, że na początku musi znajdować się przecinek. | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = Mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}. | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku: | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = Instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}. | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = Używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = Minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}. | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = A tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = Podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek. | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = Używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej. | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = Czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_argumentami}} | _1 = Parametr ze zmiennymi do rozpakowwania. }} Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = Tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = Tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje nie tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon ten, czy też: {{s|T}}, podobnie jak poprzedni szablon, dopuszcza parametry szablonu, które uruchamiają się z nimi owy szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, czy kategorii, zostawia wpis w postaci przedrostka: {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy niepusta podana, to oznacza pełną nazwę strony, a gdy jest pusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = Liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}. | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = Liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Początek iteracji dokonywany przez ta funkcję. | 2 = {{Code|koniec}} | _2 = Koniec iteracji dokonywany przez ta funkcję. | 3 = {{Code|krok}} | _3 = Krok iteracji, co który numer ma iterować. | 4 = {{Code|łącznik}} |_4 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 5 = {{Code|nowa linia}} |_5 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 6 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku:|nagłówek6=tak | 7 = {{Code|przeskok}} | _7 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 8 = Inne:| nagłówek8=tak | 9 = {{Code|nie rozwiń}} | _9 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 10 = {{Code|1}} | _10 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. }} ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} {{OpisParametrów | 1 = {{Code|ciąg}} | _1 = Lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami. | 2 = {{Code|łącznik}} | _2 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 3 = {{Code|nowa linia}} | _3 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 4 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku:|nagłówek4=tak | 5 = {{Code|przeskok}} | _5 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 6 = Inne: |nagłówek6=tak | 7 = {{Code|nie rozwiń}} | _7 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 8 = {{Code|1}} | _8 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = Symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. | 2 = {{Code|<nowiki>{{ciąg}}</nowiki>}} | _2 = Jest to wartość pojedynczego elementu w {{Code|ciąg}}. }} Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero:|nagłówek2=tak | 3 = {{Code|wzór}} | _3 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. }} === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. Parametry funkcji: {{OpisParametrów | 1 = Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}:|nagłówek1=tak | 2 = {{Code|1}} | _2 = Wielopoziomowy adres z ewentualnie prawymi ukośnikami. }} === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. Parametry funkcji: {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = {{Code|wzór}} | _2 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. }} Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa parametru numerowanego liczbami lub ciągiem pustym. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tego numeru. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== 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/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa nazwowa parametru numerowanego. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== 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/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametry}} | _1 = Lista parametrów oddzielonych średnikiem. | 2 = {{Code|pozycja}} | _2 = Szukany parametr w tablicy argumentów. | 3 = {{Code|od dużej}} | _3 = Czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> q6rhqg1gu1n28e8ivpoxwnros0x8rg9 556553 556552 2026-09-15T12:45:31Z Persino 2851 /* {{Śródtytuł|p.A}}{{Code|p.A}} */ 556553 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = Funkcja ramki funkcji tablica transportu modułu. | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = Ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = Jest to pełna nazwa szablonu, modułu, czy parsera. | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = Tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są. | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = Jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka, a nawet któreś z jego przodków. Jeśli, nie podano parametru: {{Code|zmienna z parametrami rodzica}} {{LinkPatrz|zmienna z parametrami rodzica}}, to ona jest tworzona na życzenie: {{Code|zmienna z nazwą szablonu rodzica}} {{LinkPatrz|zmienna z nazwą szablonu rodzica}}, przeciwnie, jest tworzona właśnie wtedy. | 5 = {{Code|nazwa szablonu przodka}} {{Patrz|nazwa szablonu przodka}} | _5 = Nie jest tworzona na życzenie żadnego parametru jak to było z: {{Code|nazwa szablonu rodzica}} {{LinkPatrz|nazwa szablonu rodzica}}, tylko jest tworzona u pierwszego najwyższego przodka, którego parametry są dziedziczone, do jej potomków, wtedy jest to nazwa szablonu, w najwyższego przodka, względem jego dzieci wywoływanych przez funkcję: {{Code|{{m|Ramka|Szablon}}}}, czy przez jego kolegów, | 6 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _6 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki. | 7= {{Code|potomek}} {{Patrz|potomek}} | _7 = Zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję. | 8 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _8 = Zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 9 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _9 = Zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 10 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _10 = Nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka. | 11 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _11 = Zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję. | 12 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _12 = Jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}. | 13 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _13 = Zmienna mówiąca, czy ma być tworzony parametr ramki, który jest nieprawidłowy lub nie powinien być podany, a jeśli jednak jest, to sprawdzanie jest przez walidację błędów w: {{m|Sprawdź|Parametry}}, powinno to zgłosić problem, bo wtedy te parametry rodzica są odejmowane z podanej tablicy argmentów, jeśli była taka, lub tworzona jest nowa taka tablicy, którą jest: {{Code|bez argumentów szablonu}}, określający parametry, które szablon, czy ramka, a nawet parser, nie powinien przyjmować. Format tej tablicy jest podany w punkcie {{LinkPatrz|bez argumentów szablonu}}. | 14 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _14 = Parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, gdy nie jest niepusty parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, lub nie jest niepusty {{Code|potomek}} {{LinkPatrz|potomek}}, albo gdy nie jest niepusty {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, wtedy jest tworzona, na życzenie, zmienna: {{Code|nazwa szablonu rodzica}}, którą jest nazwa szablonu rodzica nie przodka. W przeciwnym wypadku jest tworzona na życzenie parametru: {{Code|zmienna z parametrami rodzica}} {{LinkPatrz|zmienna z parametrami rodzica}}. | 15 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _15 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem. | 16 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _16 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami. | 17 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _17 = Parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 18 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji: | nagłówek18 = tak | 19 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _19 = Nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = Pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = Liczba mówiąca o minimum. | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = Liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = Jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity. | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = Jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja. | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = W przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}. | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = Wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}. | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = Mówi, że na początku musi znajdować się przecinek. | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = Mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}. | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku: | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = Instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}. | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = Używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = Minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}. | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = A tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = Podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek. | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = Używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej. | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = Czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_argumentami}} | _1 = Parametr ze zmiennymi do rozpakowwania. }} Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = Tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = Tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje nie tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon ten, czy też: {{s|T}}, podobnie jak poprzedni szablon, dopuszcza parametry szablonu, które uruchamiają się z nimi owy szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, czy kategorii, zostawia wpis w postaci przedrostka: {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}} - oznacza, którą przestrzeń ma rozwazać, dostępne są trzy wariany, jak w funkcji: {{Code|p.N}} {{LinkŚródtytuł|p.N}}, * {{Code|n}} - gdy pusta lub niepodana, to oznacza pełną nazwę strony, a gdy jest pusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}0}}}} → {{Code|{{A|{{N|Unicode-c}}|p=0}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = Liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}. | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = Liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Początek iteracji dokonywany przez ta funkcję. | 2 = {{Code|koniec}} | _2 = Koniec iteracji dokonywany przez ta funkcję. | 3 = {{Code|krok}} | _3 = Krok iteracji, co który numer ma iterować. | 4 = {{Code|łącznik}} |_4 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 5 = {{Code|nowa linia}} |_5 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 6 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku:|nagłówek6=tak | 7 = {{Code|przeskok}} | _7 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 8 = Inne:| nagłówek8=tak | 9 = {{Code|nie rozwiń}} | _9 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 10 = {{Code|1}} | _10 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. }} ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} {{OpisParametrów | 1 = {{Code|ciąg}} | _1 = Lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami. | 2 = {{Code|łącznik}} | _2 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 3 = {{Code|nowa linia}} | _3 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 4 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku:|nagłówek4=tak | 5 = {{Code|przeskok}} | _5 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 6 = Inne: |nagłówek6=tak | 7 = {{Code|nie rozwiń}} | _7 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 8 = {{Code|1}} | _8 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = Symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. | 2 = {{Code|<nowiki>{{ciąg}}</nowiki>}} | _2 = Jest to wartość pojedynczego elementu w {{Code|ciąg}}. }} Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero:|nagłówek2=tak | 3 = {{Code|wzór}} | _3 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. }} === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. Parametry funkcji: {{OpisParametrów | 1 = Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}:|nagłówek1=tak | 2 = {{Code|1}} | _2 = Wielopoziomowy adres z ewentualnie prawymi ukośnikami. }} === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. Parametry funkcji: {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = {{Code|wzór}} | _2 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. }} Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa parametru numerowanego liczbami lub ciągiem pustym. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tego numeru. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== 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/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa nazwowa parametru numerowanego. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== 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/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametry}} | _1 = Lista parametrów oddzielonych średnikiem. | 2 = {{Code|pozycja}} | _2 = Szukany parametr w tablicy argumentów. | 3 = {{Code|od dużej}} | _3 = Czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 6s53m5dvsi8ovse5a0u7yizu9mc91xw 556555 556553 2026-09-15T13:04:55Z Persino 2851 /* {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} */ 556555 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = Funkcja ramki funkcji tablica transportu modułu. | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = Ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = Jest to pełna nazwa szablonu, modułu, czy parsera. | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = Tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są. | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = Jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka, a nawet któreś z jego przodków. Jeśli, nie podano parametru: {{Code|zmienna z parametrami rodzica}} {{LinkPatrz|zmienna z parametrami rodzica}}, to ona jest tworzona na życzenie: {{Code|zmienna z nazwą szablonu rodzica}} {{LinkPatrz|zmienna z nazwą szablonu rodzica}}, przeciwnie, jest tworzona właśnie wtedy. | 5 = {{Code|nazwa szablonu przodka}} {{Patrz|nazwa szablonu przodka}} | _5 = Nie jest tworzona na życzenie żadnego parametru jak to było z: {{Code|nazwa szablonu rodzica}} {{LinkPatrz|nazwa szablonu rodzica}}, tylko jest tworzona u pierwszego najwyższego przodka, którego parametry są dziedziczone, do jej potomków, wtedy jest to nazwa szablonu, w najwyższego przodka, względem jego dzieci wywoływanych przez funkcję: {{Code|{{m|Ramka|Szablon}}}}, czy przez jego kolegów, | 6 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _6 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki. | 7= {{Code|potomek}} {{Patrz|potomek}} | _7 = Zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję. | 8 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _8 = Zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 9 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _9 = Zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 10 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _10 = Nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka. | 11 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _11 = Zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję. | 12 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _12 = Jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}. | 13 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _13 = Zmienna mówiąca, czy ma być tworzony parametr ramki, który jest nieprawidłowy lub nie powinien być podany, a jeśli jednak jest, to sprawdzanie jest przez walidację błędów w: {{m|Sprawdź|Parametry}}, powinno to zgłosić problem, bo wtedy te parametry rodzica są odejmowane z podanej tablicy argmentów, jeśli była taka, lub tworzona jest nowa taka tablicy, którą jest: {{Code|bez argumentów szablonu}}, określający parametry, które szablon, czy ramka, a nawet parser, nie powinien przyjmować. Format tej tablicy jest podany w punkcie {{LinkPatrz|bez argumentów szablonu}}. | 14 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _14 = Parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, gdy nie jest niepusty parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, lub nie jest niepusty {{Code|potomek}} {{LinkPatrz|potomek}}, albo gdy nie jest niepusty {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, wtedy jest tworzona, na życzenie, zmienna: {{Code|nazwa szablonu rodzica}}, którą jest nazwa szablonu rodzica nie przodka. W przeciwnym wypadku jest tworzona na życzenie parametru: {{Code|zmienna z parametrami rodzica}} {{LinkPatrz|zmienna z parametrami rodzica}}. | 15 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _15 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem. | 16 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _16 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami. | 17 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _17 = Parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 18 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji: | nagłówek18 = tak | 19 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _19 = Nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = Pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = Liczba mówiąca o minimum. | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = Liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = Jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity. | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = Jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja. | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = W przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}. | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = Wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}. | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = Mówi, że na początku musi znajdować się przecinek. | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = Mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}. | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku: | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = Instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}. | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = Używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = Minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}. | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = A tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = Podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek. | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = Używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej. | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = Czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_argumentami}} | _1 = Parametr ze zmiennymi do rozpakowwania. }} Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = Tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = Tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje nie tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon ten, czy też: {{s|T}}, podobnie jak poprzedni szablon, dopuszcza parametry szablonu, które uruchamiają się z nimi owy szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, czy kategorii, zostawia wpis w postaci przedrostka: {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}} - oznacza, którą przestrzeń ma rozwazać, dostępne są trzy wariany, jak w funkcji: {{Code|p.N}} {{LinkŚródtytuł|p.N}}, * {{Code|n}} - gdy pusta lub niepodana, to oznacza pełną nazwę strony, a gdy jest pusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}0}}}} → {{Code|{{A|{{N|Unicode-c}}|p=0}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = Liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}. | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = Liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{Code|parametry}} {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{Code|tabela}} {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|dodatkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych przecinkami, dla takiego samego parametru, już natomiast średnikami dla różnych. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku, gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}}, którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} silnik szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Początek iteracji dokonywany przez ta funkcję. | 2 = {{Code|koniec}} | _2 = Koniec iteracji dokonywany przez ta funkcję. | 3 = {{Code|krok}} | _3 = Krok iteracji, co który numer ma iterować. | 4 = {{Code|łącznik}} |_4 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 5 = {{Code|nowa linia}} |_5 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 6 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku:|nagłówek6=tak | 7 = {{Code|przeskok}} | _7 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 8 = Inne:| nagłówek8=tak | 9 = {{Code|nie rozwiń}} | _9 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 10 = {{Code|1}} | _10 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. }} ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} {{OpisParametrów | 1 = {{Code|ciąg}} | _1 = Lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami. | 2 = {{Code|łącznik}} | _2 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 3 = {{Code|nowa linia}} | _3 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 4 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku:|nagłówek4=tak | 5 = {{Code|przeskok}} | _5 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 6 = Inne: |nagłówek6=tak | 7 = {{Code|nie rozwiń}} | _7 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 8 = {{Code|1}} | _8 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = Symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. | 2 = {{Code|<nowiki>{{ciąg}}</nowiki>}} | _2 = Jest to wartość pojedynczego elementu w {{Code|ciąg}}. }} Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero:|nagłówek2=tak | 3 = {{Code|wzór}} | _3 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. }} === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. Parametry funkcji: {{OpisParametrów | 1 = Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}:|nagłówek1=tak | 2 = {{Code|1}} | _2 = Wielopoziomowy adres z ewentualnie prawymi ukośnikami. }} === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. Parametry funkcji: {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = {{Code|wzór}} | _2 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. }} Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa parametru numerowanego liczbami lub ciągiem pustym. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tego numeru. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== 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/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa nazwowa parametru numerowanego. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== 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/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametry}} | _1 = Lista parametrów oddzielonych średnikiem. | 2 = {{Code|pozycja}} | _2 = Szukany parametr w tablicy argumentów. | 3 = {{Code|od dużej}} | _3 = Czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 8txmcsri8r68i0lqo3vprsv6ff6yq4t 556556 556555 2026-09-15T13:07:28Z Persino 2851 /* {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} */ 556556 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = Funkcja ramki funkcji tablica transportu modułu. | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = Ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = Jest to pełna nazwa szablonu, modułu, czy parsera. | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = Tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są. | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = Jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka, a nawet któreś z jego przodków. Jeśli, nie podano parametru: {{Code|zmienna z parametrami rodzica}} {{LinkPatrz|zmienna z parametrami rodzica}}, to ona jest tworzona na życzenie: {{Code|zmienna z nazwą szablonu rodzica}} {{LinkPatrz|zmienna z nazwą szablonu rodzica}}, przeciwnie, jest tworzona właśnie wtedy. | 5 = {{Code|nazwa szablonu przodka}} {{Patrz|nazwa szablonu przodka}} | _5 = Nie jest tworzona na życzenie żadnego parametru jak to było z: {{Code|nazwa szablonu rodzica}} {{LinkPatrz|nazwa szablonu rodzica}}, tylko jest tworzona u pierwszego najwyższego przodka, którego parametry są dziedziczone, do jej potomków, wtedy jest to nazwa szablonu, w najwyższego przodka, względem jego dzieci wywoływanych przez funkcję: {{Code|{{m|Ramka|Szablon}}}}, czy przez jego kolegów, | 6 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _6 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki. | 7= {{Code|potomek}} {{Patrz|potomek}} | _7 = Zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję. | 8 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _8 = Zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 9 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _9 = Zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 10 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _10 = Nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka. | 11 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _11 = Zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję. | 12 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _12 = Jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}. | 13 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _13 = Zmienna mówiąca, czy ma być tworzony parametr ramki, który jest nieprawidłowy lub nie powinien być podany, a jeśli jednak jest, to sprawdzanie jest przez walidację błędów w: {{m|Sprawdź|Parametry}}, powinno to zgłosić problem, bo wtedy te parametry rodzica są odejmowane z podanej tablicy argmentów, jeśli była taka, lub tworzona jest nowa taka tablicy, którą jest: {{Code|bez argumentów szablonu}}, określający parametry, które szablon, czy ramka, a nawet parser, nie powinien przyjmować. Format tej tablicy jest podany w punkcie {{LinkPatrz|bez argumentów szablonu}}. | 14 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _14 = Parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, gdy nie jest niepusty parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, lub nie jest niepusty {{Code|potomek}} {{LinkPatrz|potomek}}, albo gdy nie jest niepusty {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, wtedy jest tworzona, na życzenie, zmienna: {{Code|nazwa szablonu rodzica}}, którą jest nazwa szablonu rodzica nie przodka. W przeciwnym wypadku jest tworzona na życzenie parametru: {{Code|zmienna z parametrami rodzica}} {{LinkPatrz|zmienna z parametrami rodzica}}. | 15 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _15 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem. | 16 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _16 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami. | 17 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _17 = Parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 18 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji: | nagłówek18 = tak | 19 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _19 = Nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = Pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = Liczba mówiąca o minimum. | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = Liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = Jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity. | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = Jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja. | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = W przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}. | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = Wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}. | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = Mówi, że na początku musi znajdować się przecinek. | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = Mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}. | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku: | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = Instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}. | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = Używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = Minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}. | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = A tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = Podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek. | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = Używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej. | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = Czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_argumentami}} | _1 = Parametr ze zmiennymi do rozpakowwania. }} Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = Tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = Tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje nie tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon ten, czy też: {{s|T}}, podobnie jak poprzedni szablon, dopuszcza parametry szablonu, które uruchamiają się z nimi owy szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, czy kategorii, zostawia wpis w postaci przedrostka: {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}} - oznacza, którą przestrzeń ma rozwazać, dostępne są trzy wariany, jak w funkcji: {{Code|p.N}} {{LinkŚródtytuł|p.N}}, * {{Code|n}} - gdy pusta lub niepodana, to oznacza pełną nazwę strony, a gdy jest pusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}0}}}} → {{Code|{{A|{{N|Unicode-c}}|p=0}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = Liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}. | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = Liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{Code|parametry}} {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{Code|tabela}} {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|dodatkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych przecinkami, dla takiego samego parametru, już natomiast średnikami dla różnych. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku, gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}}, którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} silnik szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Początek iteracji dokonywany przez ta funkcję. | 2 = {{Code|koniec}} | _2 = Koniec iteracji dokonywany przez ta funkcję. | 3 = {{Code|krok}} | _3 = Krok iteracji, co który numer ma iterować. | 4 = {{Code|łącznik}} |_4 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 5 = {{Code|nowa linia}} |_5 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 6 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku:|nagłówek6=tak | 7 = {{Code|przeskok}} | _7 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 8 = Inne:| nagłówek8=tak | 9 = {{Code|nie rozwiń}} | _9 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 10 = {{Code|1}} | _10 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. }} ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} {{OpisParametrów | 1 = {{Code|ciąg}} | _1 = Lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami. | 2 = {{Code|łącznik}} | _2 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 3 = {{Code|nowa linia}} | _3 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 4 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku:|nagłówek4=tak | 5 = {{Code|przeskok}} | _5 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 6 = Inne: |nagłówek6=tak | 7 = {{Code|nie rozwiń}} | _7 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 8 = {{Code|1}} | _8 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = Symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. | 2 = {{Code|<nowiki>{{ciąg}}</nowiki>}} | _2 = Jest to wartość pojedynczego elementu w {{Code|ciąg}}. }} Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, który musi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero:|nagłówek2=tak | 3 = {{Code|wzór}} | _3 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. }} === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. Parametry funkcji: {{OpisParametrów | 1 = Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}:|nagłówek1=tak | 2 = {{Code|1}} | _2 = Wielopoziomowy adres z ewentualnie prawymi ukośnikami. }} === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. Parametry funkcji: {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = {{Code|wzór}} | _2 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. }} Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa parametru numerowanego liczbami lub ciągiem pustym. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tego numeru. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== 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/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa nazwowa parametru numerowanego. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== 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/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametry}} | _1 = Lista parametrów oddzielonych średnikiem. | 2 = {{Code|pozycja}} | _2 = Szukany parametr w tablicy argumentów. | 3 = {{Code|od dużej}} | _3 = Czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> aj36wxc25jsx9pcu81mrrx9ed99c1at 556557 556556 2026-09-15T13:12:08Z Persino 2851 /* {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} */ 556557 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = Funkcja ramki funkcji tablica transportu modułu. | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = Ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = Jest to pełna nazwa szablonu, modułu, czy parsera. | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = Tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są. | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = Jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka, a nawet któreś z jego przodków. Jeśli, nie podano parametru: {{Code|zmienna z parametrami rodzica}} {{LinkPatrz|zmienna z parametrami rodzica}}, to ona jest tworzona na życzenie: {{Code|zmienna z nazwą szablonu rodzica}} {{LinkPatrz|zmienna z nazwą szablonu rodzica}}, przeciwnie, jest tworzona właśnie wtedy. | 5 = {{Code|nazwa szablonu przodka}} {{Patrz|nazwa szablonu przodka}} | _5 = Nie jest tworzona na życzenie żadnego parametru jak to było z: {{Code|nazwa szablonu rodzica}} {{LinkPatrz|nazwa szablonu rodzica}}, tylko jest tworzona u pierwszego najwyższego przodka, którego parametry są dziedziczone, do jej potomków, wtedy jest to nazwa szablonu, w najwyższego przodka, względem jego dzieci wywoływanych przez funkcję: {{Code|{{m|Ramka|Szablon}}}}, czy przez jego kolegów, | 6 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _6 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki. | 7= {{Code|potomek}} {{Patrz|potomek}} | _7 = Zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję. | 8 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _8 = Zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 9 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _9 = Zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 10 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _10 = Nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka. | 11 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _11 = Zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję. | 12 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _12 = Jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}. | 13 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _13 = Zmienna mówiąca, czy ma być tworzony parametr ramki, który jest nieprawidłowy lub nie powinien być podany, a jeśli jednak jest, to sprawdzanie jest przez walidację błędów w: {{m|Sprawdź|Parametry}}, powinno to zgłosić problem, bo wtedy te parametry rodzica są odejmowane z podanej tablicy argmentów, jeśli była taka, lub tworzona jest nowa taka tablicy, którą jest: {{Code|bez argumentów szablonu}}, określający parametry, które szablon, czy ramka, a nawet parser, nie powinien przyjmować. Format tej tablicy jest podany w punkcie {{LinkPatrz|bez argumentów szablonu}}. | 14 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _14 = Parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, gdy nie jest niepusty parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, lub nie jest niepusty {{Code|potomek}} {{LinkPatrz|potomek}}, albo gdy nie jest niepusty {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, wtedy jest tworzona, na życzenie, zmienna: {{Code|nazwa szablonu rodzica}}, którą jest nazwa szablonu rodzica nie przodka. W przeciwnym wypadku jest tworzona na życzenie parametru: {{Code|zmienna z parametrami rodzica}} {{LinkPatrz|zmienna z parametrami rodzica}}. | 15 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _15 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem. | 16 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _16 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami. | 17 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _17 = Parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 18 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji: | nagłówek18 = tak | 19 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _19 = Nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = Pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = Liczba mówiąca o minimum. | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = Liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = Jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity. | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = Jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja. | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = W przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}. | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = Wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}. | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = Mówi, że na początku musi znajdować się przecinek. | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = Mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}. | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku: | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = Instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}. | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = Używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = Minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}. | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = A tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = Podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek. | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = Używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej. | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = Czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_argumentami}} | _1 = Parametr ze zmiennymi do rozpakowwania. }} Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = Tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = Tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje nie tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon ten, czy też: {{s|T}}, podobnie jak poprzedni szablon, dopuszcza parametry szablonu, które uruchamiają się z nimi owy szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, czy kategorii, zostawia wpis w postaci przedrostka: {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}} - oznacza, którą przestrzeń ma rozwazać, dostępne są trzy wariany, jak w funkcji: {{Code|p.N}} {{LinkŚródtytuł|p.N}}, * {{Code|n}} - gdy pusta lub niepodana, to oznacza pełną nazwę strony, a gdy jest pusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}0}}}} → {{Code|{{A|{{N|Unicode-c}}|p=0}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = Liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}. | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = Liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{Code|parametry}} {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{Code|tabela}} {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|dodatkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych przecinkami, dla takiego samego parametru, już natomiast średnikami dla różnych. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku, gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}}, którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} silnik szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Początek iteracji dokonywany przez ta funkcję. | 2 = {{Code|koniec}} | _2 = Koniec iteracji dokonywany przez ta funkcję. | 3 = {{Code|krok}} | _3 = Krok iteracji, co który numer ma iterować. | 4 = {{Code|łącznik}} |_4 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 5 = {{Code|nowa linia}} |_5 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 6 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku:|nagłówek6=tak | 7 = {{Code|przeskok}} | _7 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 8 = Inne:| nagłówek8=tak | 9 = {{Code|nie rozwiń}} | _9 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 10 = {{Code|1}} | _10 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. }} ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} {{OpisParametrów | 1 = {{Code|ciąg}} | _1 = Lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami. | 2 = {{Code|łącznik}} | _2 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 3 = {{Code|nowa linia}} | _3 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 4 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku:|nagłówek4=tak | 5 = {{Code|przeskok}} | _5 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 6 = Inne: |nagłówek6=tak | 7 = {{Code|nie rozwiń}} | _7 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 8 = {{Code|1}} | _8 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = Symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. | 2 = {{Code|<nowiki>{{ciąg}}</nowiki>}} | _2 = Jest to wartość pojedynczego elementu w {{Code|ciąg}}. }} Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, który musi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero:|nagłówek2=tak | 3 = {{Code|wzór}} | _3 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. }} === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. Parametry funkcji: {{OpisParametrów | 1 = Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}:|nagłówek1=tak | 2 = {{Code|1}} | _2 = Wielopoziomowy adres z ewentualnie prawymi ukośnikami. }} === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. Parametry funkcji: {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = {{Code|wzór}} | _2 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. }} Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa parametru numerowanego liczbami lub ciągiem pustym. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tego numeru. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== 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/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa nazwowa parametru numerowanego. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== 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/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametry}} | _1 = Lista parametrów oddzielonych średnikiem. | 2 = {{Code|pozycja}} | _2 = Szukany parametr w tablicy argumentów. | 3 = {{Code|od dużej}} | _3 = Czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablicy parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> g6ogoi87vp1mgthq87g9k5dxahqyq5e 556561 556557 2026-09-15T13:41:58Z Persino 2851 /* {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} */ 556561 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = Funkcja ramki funkcji tablica transportu modułu. | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = Ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = Jest to pełna nazwa szablonu, modułu, czy parsera. | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = Tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są. | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = Jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka, a nawet któreś z jego przodków. Jeśli, nie podano parametru: {{Code|zmienna z parametrami rodzica}} {{LinkPatrz|zmienna z parametrami rodzica}}, to ona jest tworzona na życzenie: {{Code|zmienna z nazwą szablonu rodzica}} {{LinkPatrz|zmienna z nazwą szablonu rodzica}}, przeciwnie, jest tworzona właśnie wtedy. | 5 = {{Code|nazwa szablonu przodka}} {{Patrz|nazwa szablonu przodka}} | _5 = Nie jest tworzona na życzenie żadnego parametru jak to było z: {{Code|nazwa szablonu rodzica}} {{LinkPatrz|nazwa szablonu rodzica}}, tylko jest tworzona u pierwszego najwyższego przodka, którego parametry są dziedziczone, do jej potomków, wtedy jest to nazwa szablonu, w najwyższego przodka, względem jego dzieci wywoływanych przez funkcję: {{Code|{{m|Ramka|Szablon}}}}, czy przez jego kolegów, | 6 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _6 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki. | 7= {{Code|potomek}} {{Patrz|potomek}} | _7 = Zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję. | 8 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _8 = Zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 9 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _9 = Zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 10 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _10 = Nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka. | 11 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _11 = Zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję. | 12 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _12 = Jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}. | 13 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _13 = Zmienna mówiąca, czy ma być tworzony parametr ramki, który jest nieprawidłowy lub nie powinien być podany, a jeśli jednak jest, to sprawdzanie jest przez walidację błędów w: {{m|Sprawdź|Parametry}}, powinno to zgłosić problem, bo wtedy te parametry rodzica są odejmowane z podanej tablicy argmentów, jeśli była taka, lub tworzona jest nowa taka tablicy, którą jest: {{Code|bez argumentów szablonu}}, określający parametry, które szablon, czy ramka, a nawet parser, nie powinien przyjmować. Format tej tablicy jest podany w punkcie {{LinkPatrz|bez argumentów szablonu}}. | 14 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _14 = Parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, gdy nie jest niepusty parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, lub nie jest niepusty {{Code|potomek}} {{LinkPatrz|potomek}}, albo gdy nie jest niepusty {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, wtedy jest tworzona, na życzenie, zmienna: {{Code|nazwa szablonu rodzica}}, którą jest nazwa szablonu rodzica nie przodka. W przeciwnym wypadku jest tworzona na życzenie parametru: {{Code|zmienna z parametrami rodzica}} {{LinkPatrz|zmienna z parametrami rodzica}}. | 15 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _15 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem. | 16 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _16 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami. | 17 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _17 = Parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 18 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji: | nagłówek18 = tak | 19 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _19 = Nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = Pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = Liczba mówiąca o minimum. | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = Liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = Jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity. | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = Jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja. | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = W przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}. | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = Wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}. | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = Mówi, że na początku musi znajdować się przecinek. | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = Mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}. | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku: | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = Instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}. | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = Używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = Minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}. | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = A tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = Podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek. | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = Używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej. | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = Czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_argumentami}} | _1 = Parametr ze zmiennymi do rozpakowwania. }} Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = Tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = Tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje nie tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon ten, czy też: {{s|T}}, podobnie jak poprzedni szablon, dopuszcza parametry szablonu, które uruchamiają się z nimi owy szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, czy kategorii, zostawia wpis w postaci przedrostka: {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}} - oznacza, którą przestrzeń ma rozwazać, dostępne są trzy wariany, jak w funkcji: {{Code|p.N}} {{LinkŚródtytuł|p.N}}, * {{Code|n}} - gdy pusta lub niepodana, to oznacza pełną nazwę strony, a gdy jest pusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}0}}}} → {{Code|{{A|{{N|Unicode-c}}|p=0}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = Liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}. | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = Liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{Code|parametry}} {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{Code|tabela}} {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * {{P|Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|dodatkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''.}} {{P|W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję.}} ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych przecinkami, dla takiego samego parametru, już natomiast średnikami dla różnych. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku, gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}}, którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} silnik szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Początek iteracji dokonywany przez ta funkcję. | 2 = {{Code|koniec}} | _2 = Koniec iteracji dokonywany przez ta funkcję. | 3 = {{Code|krok}} | _3 = Krok iteracji, co który numer ma iterować. | 4 = {{Code|łącznik}} |_4 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 5 = {{Code|nowa linia}} |_5 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 6 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku:|nagłówek6=tak | 7 = {{Code|przeskok}} | _7 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 8 = Inne:| nagłówek8=tak | 9 = {{Code|nie rozwiń}} | _9 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 10 = {{Code|1}} | _10 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. }} ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} {{OpisParametrów | 1 = {{Code|ciąg}} | _1 = Lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami. | 2 = {{Code|łącznik}} | _2 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 3 = {{Code|nowa linia}} | _3 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 4 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku:|nagłówek4=tak | 5 = {{Code|przeskok}} | _5 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 6 = Inne: |nagłówek6=tak | 7 = {{Code|nie rozwiń}} | _7 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 8 = {{Code|1}} | _8 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = Symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. | 2 = {{Code|<nowiki>{{ciąg}}</nowiki>}} | _2 = Jest to wartość pojedynczego elementu w {{Code|ciąg}}. }} Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, który musi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero:|nagłówek2=tak | 3 = {{Code|wzór}} | _3 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. }} === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. Parametry funkcji: {{OpisParametrów | 1 = Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}:|nagłówek1=tak | 2 = {{Code|1}} | _2 = Wielopoziomowy adres z ewentualnie prawymi ukośnikami. }} === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. Parametry funkcji: {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = {{Code|wzór}} | _2 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. }} Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa parametru numerowanego liczbami lub ciągiem pustym. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tego numeru. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== 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/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa nazwowa parametru numerowanego. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== 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/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametry}} | _1 = Lista parametrów oddzielonych średnikiem. | 2 = {{Code|pozycja}} | _2 = Szukany parametr w tablicy argumentów. | 3 = {{Code|od dużej}} | _3 = Czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablicy parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> f4r44ljfmaninhe9s3uopuhcdil6jaw Wikibooks:Moduły/StronicowyParser/NumerLubNazwaArtykułówKsiążek 4 63515 556653 552412 2026-09-15T23:04:27Z Persino 2851 556653 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{LinkŚródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}, są zdefiniowane kolejno w modułach. Są to funkcje lokalne dla funkcji liczenia, numerków lub nazw, na podstawie tego przeciwnego, oraz do wyznaczania bazy, numerków i nazw, z innymi parametrami rozdziałów i artykułów. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} (potrzebne) === Są to funkcje potrzebne, czyli konieczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} ==== Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = Tablica ramki tablicy transportu funkcji. | 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} | _2 = Tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy. | 3 = {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} | _3 = Funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji. | 4 = {{Code|typ}} {{Patrz|typ}} | _4 = Prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie. | 5 = {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} | _5 = Prawdziwe, gdy funkcja służy do zbierania informacji. }} Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: {{OpisParametrów | 1 = {{Code|nagłówek}} {{Patrz|nagłówek}} | _1 = Prawdziwe, gdy artykuły mogą się powtarzać. | 2 = {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} | _2 = Prawdziwe, wtedy nie są brane wszystkie rozdziały. | 3 = {{Code|dane}} {{Patrz|dane}} | _3 = Typ zbieranych lub uzyskiwanych danych. | 4 = {{Code|spis}} {{Patrz|spis}} | _4 = Nazwa artykułu spisu, a więc który spis ma rozważać. | 5 = {{Code|poziomowo}} {{Patrz|poziomowo}} | _5 = Czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami. | 6 = {{Code|nazwa}} {{Patrz|nazwa-p.PobierzNumerLubNazweArtykulu}} | _6 = Brana jest nazwa linku artykułu zamiast nazwy. | 7 = {{Code|który}} {{Patrz|który}} | _7 = którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. }} Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Przykłady funkcji: {{LinkPatrz|__FUNKCJA}}, są kolejno w punktach: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, i {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}} dla funkcji: {{LinkŚródtytuł|p["PobierzDaneKsiążki"]}}. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. ; Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają{{dk}} {{OpisParametrów | 1 = {{Code|1}} | _1 = Rozważa tylko artykuły. | 2 = {{Code|2}} | _2 = Rozważa tylko rozdziały. | 3 = {{Code|3}} | _3 = Rozważa nie tylko artykuły, również rozdziały. }} Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funcja bierze pod uwagę rozdziały dodatnie równaniowo, centrowane szablonowo lub znacznikowo, a nawet nagłówki, które też są nimi, ale również średnikowe, czy zerowe, a nawet ujemne. ; Kolejność ważności rozdziałów{{dk}} * Rozdziały centrowane szablonowo ({{s|Ce}}, {{s|Centruj}} i {{s|Center}}) bądź znaczniowo ({{Tag|center}}), * Rozdziały dodatnie równaniowo (jak: {{Code|<nowiki>== Nagłówek ==</nowiki>}}) i nagłówki ({{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}), a także nagłówki generowane przez szablon {{s|HNumer}} (ten szablon przy tym zachowuje zgodność z rozdziałami dodatnimi równaniowo, ale nie do końca), * Rozdziały średnikowe (zaczynające się od znaku {{Code|<nowiki>;</nowiki>}}), * Rozdziały zerowe (niezaczynające się od żadnego specjalnego znaku), * Rozdziały ujemne - to są pozycje list zaczynających się od {{Code|<nowiki>[%*:#]</nowiki>}}, ** Ważność rozdziałów ujemnych jest w kolejności od znaku zaczynającego listę: {{Code|<nowiki>*</nowiki>}}, {{Code|<nowiki>#</nowiki>}} i {{Code|<nowiki>:</nowiki>}} (bo czasami dwukropek nie jest numerowany, jeżeli jest pochyły, lub zawiera za dużo znaków). Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spisach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. ; Typy rozdziałów spisowych i sposób numerowania{{dk}} * Rozdziały, według funkcji, w rozdziałe głównym danego spisu i o nazwie: '''Spis treści''' i '''SPIS RZECZY''', są liczone względem tych poszczególnych kolejno rozdziałach, ale od początku, a po wyściu z tego drugiego odtwarzane jego numer spisu treści, i na podstawie tak uzyskanego numeru tego liczy on dalej. * Dla innych rozdziałów w wielu spisach (jeżeli podręcznik jest wielospisowy, tzn. ma wiele spisów treści), a nie tylko jedynym, do numeru rozdziału i artykułów (tymi rozdziałami są: dodatnie, czy ujemne, a nawet średnikowe badź zerowe), są wykorzystywane numery innych poprzedzających, czy nawet następujących czasami, tych elementów spisowych. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} (pomocne) === Są to funkcje potrzebne, czyli dostateczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.ZamienNumerArtykuluNaTabele}}{{Code|p.ZamienNumerArtykuluNaTabele}} ==== Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamienNumerArtykuluNaTabele=function(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} | _1 = Numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. }} Funkcja zwraca tę tablicę numerków rozpakujący: {{LinkPatrz|numer_artykulu}}, z niego numerki, który każdy element numerowany tej tablicy, to są te elementy oddzielone kropkami w tym numerze artykułu. ==== {{Śródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} ==== Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. | 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} | _2 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. | 3 = {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} | _3 = Tablica spisów książki, jego rozdziałów i artykułów. | 4 = {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} | _4 = Tabela numerków nagłówków lub artykułów. }} Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny jego rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. ==== {{Śródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ==== Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|numer_artykulu}} | _1 = Jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu. | 2 = {{Code|numer_spisu}} {{Patrz|numer_spisu}} | _2 = Numerki oddzielone kropkami spisu. }} Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. ==== {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} ==== Funkcja do sprawdzania w funkcjach tablicy transportu: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}} i {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, czy numer całkowity artykuły, czy rozdziału, powstałym po połączeniu ze sobą numeru rozdziału i numeru artykułu, którą trzebaa bezpośrednio zrzucić, bez przetwarzania, przez te funkcje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|nazwa_spisu}} | _1 = Jak w: {{LinkPatrz|nazwa_spisu}}. | 2 = {{Code|numer_spisu}} | _2 = Jak w: {{LinkPatrz|numer_spisu}}. | 3 = {{Code|tab_numer}} | _3 = Jak w: {{LinkPatrz|tab_numer}}. | 4 = {{Code|tab_poziomowo}} | _4 = Jak w: {{LinkPatrz|tab_poziomowo}}. }} == {{Śródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}{{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}}} == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. | 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} | _2 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. }} ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: {{OpisParametrów | 1 = {{Code|poziomowo}} | _1 = Jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną.. | 2 = {{Code|i}} {{Patrz|i}} | _2 = Gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna. | 3 = {{Code|ktory}} | _3 = Jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić. | 4 = {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} | _4 = jJest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}. | 5 = {{Code|rozdzial}} {{Patrz|rozdzial}} | _5 = Rozdział w spisie. | 6 = {{Code|artykul}} {{Patrz|artykul}} | _6 = Nazwa artykułu, w spisie, w książce lub innej strony. | 7 = {{Code|tab_numer}} {{Patrz|tab_numer}} | _7 = Tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału. | 8 = {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} | _8 = Tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale. | 9 = {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} | _9 = Czy rozważany rozdział jest nienilowy. | 10 = {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} | _10 = Czy artykuł jest stroną podręcznika. | 11 = {{Code|przekierowanie}} {{Patrz|przekierowanie}} | _11 = Nazwa artykułu przekierowania. | 12 = {{Code|nazwa}} {{Patrz|nazwa}} | _12 = Nazwa linku artykułu. | 13 = {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} | _13 = Nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję. | 14 = {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} | _14 = Nazwa artykułu spisu wśród wszystkich spisach. | 15 = {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} | _15 = Jest to numer spisu, jest to liczba naturalna. | 16 = {{Code|tab_lista_artykulow_w_ksiazce}} | _16 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}. | 17 = {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} | _17 = Czy artykuł znajduje się w głównym spisie treści. }} Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy {{ZobaczTeż|Parametry bez przetwarzania}} jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i jeśli fukcja: {{LinkŚródtytuł|p.WarunekSpisuWoluminu}}, zwróciła prawdę, lub: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (poprzednie {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}), są prawdę, i numer spisu {{LinkPatrz|numer_spisu}} istnieje, i jest większy od zera, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{LzLua|table.concat}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. | 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} | _2 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. }} ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{LzLua|table.concat}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest spełniony warunek z: {{LinkZobaczTeż|Parametry bez przetwarzania}}, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}. Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{LzLua|table.concat}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NS|l=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. | 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} | _2 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. }} ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. | komórka1 = tak | 2 = {{Code|czy_dodane}} {{Patrz|czy_dodane}} | _2 = Czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji. | 3 = {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} | _3 = Czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, | 4 = {{Code|czy_url}} {{Patrz|czy_url}} | _4 = Czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. }} Jeżeli parametr artykułu podanego spisu {{Code|artykul_spisu}} {{LinkPatrz|artykul_spisu}} i nazwy spisu {{Code|nazwa_spisu}} {{LinkPatrz|nazwa_spisu}} istnieją, wtedy funkcja sygnalizuje zatrzymanie się algorytmu: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, po przeanalizowaniu się jego od początku pierwszego spisu. Jest tworzona pusta nowa zmienna tablicowa {{Code|tab_dane_ksiazki}} {{Patrz|tab_dane_ksiazki}}, a następnie jest tworzona jego pusta podtablica o kluczu {{Code|rozdzial}} {{LinkPatrz|rozdzial}}, co z tego jest tworzone {{Code|tab_rozdzial}} {{Patrz|tab_rozdzial}}. Dalej jest tworzona zmienna {{Code|numer_rozdzialu}} {{Patrz|numer_rozdzialu}} ze zmiennej tablicowej {{Code|tab_numer}} {{LinkPatrz|tab_numer}} z łącznikiem kropka przy pomocy funkcji: {{LzLua|table.concat}}. {{Tab}}Gdy {{LinkPatrz|nazwa_spisu}} i numer spisu {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieją, a: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, już nie, lub gdy {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (jest to poprzednie: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}) i aktualne {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i jednocześnie {{LinkPatrz|numer_rozdzialu}} jest łańcuchem znaków niepustym, wtedy liczymy: Jeśli {{LinkPatrz|numer_spisu}} jest równy {{Code|1}}, czyli jest pierwszym spisem treści, i w podinstukcji {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co dalej to jest zamieniane na numerację rozdziału {{LinkPatrz|numer_rozdzialu}} z tym samym łącznikiem tą samą funkcją, co na samym początku tego rozważania przy tej zmiennej. Przeciwnie niż w poprzednim akapicie jest liczony numer spisu treści z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, co jest łączone z {{LinkPatrz|numer_rozdzialu}} w większy numer rozdziału dzięki: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}, a jeśli spis znajduje się w spisie jako artykuł, nie jako w głównym rozdziale, wtedy są usuwane początkowe jedynki według: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co następie jest tworzone ostateczna wersja numeru rozdziału z tak otrzymanej tabeli w łańcuch znaków {{LinkPatrz|numer_rozdzialu}}. {{Tab}}Jeśli nie jest ustawione, że rozdział dany w spisie, że nie jest pierwszy, czyli: {{Code|pierwszy_spis_tresci}} {{Patrz|pierwszy_spis_tresci}}, a nazwa spisu {{LinkPatrz|nazwa_spisu}} i numer spisu {{LinkPatrz|numer_spisu}}, istniją, a także: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}}, nie istnieje, a za to: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieje, i {{LinkPatrz|numer_rozdzialu}} nie jest rozdziałem o ciągu pustym, a jeśli rozdział jest spisem treści, czy spisem rzeczy, wtedy jest ustawiana prawdziwość zmiennej {{LinkPatrz|pierwszy_spis_tresci}}, następnie dla {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę, dzięki: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co to później jest zamienane na łańcuch znaków w: {{LinkPatrz|numer_rozdzialu}}. ---- Z tego {{LinkPatrz|tab_rozdzial}} tworzymy podtablicę o kluczu {{LinkPatrz|numer_rozdzialu}}, jeśli nie istnieje, co z tego mamy {{Code|tab_numer_rozdzialu}} {{Patrz|tab_numer_rozdzialu}}, co dalej na podstawie tego dalej tworzymy podtablicę o kluczu {{Code|artykul}} {{LinkPatrz|artykul}}, jeżeli nie istnieje, co dzięki temu mamy: {{Code|tab_artykul}} {{Patrz|tab_artykul}}. Tworzymy numer artykułu {{Code|numer_artykulu}} {{LinkPatrz|numer_artykulu}} z {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}} z łącznikiem kropką, przy pomocy: {{LzLua|table.concat}}. Następnie tworzymy podtablicę z {{LinkPatrz|tab_artykul}} z klucza {{LinkPatrz|numer_artykulu}}, jeśli nie istnieje, tworząc: {{Code|tab_numer_artykulu}} {{LinkPatrz|tab_numer_artykulu}}. ---- Z tablicy {{LinkPatrz|tab_numer_artykulu}}, modyfikujemy tą podtablicę dodając do jego końca elementy na podstawie: <syntaxhighlight lang="lua"> table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); </syntaxhighlight> Na samym końcu, po dojściu do tego momentu funkcja zawsze zwraca wartość {{Code|false}}, czyli procedura: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, na tej funkcji, czyli:{{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, nie zatrzymuje się. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{LzLua|mw.text.jsonEncode}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> ---- Tą zmienną, tzn.: tab_dane_ksiazki, inicjuje funkcja lokalna: __FUNKCJA, by potem ją zwrócić jako tabelę Lua w Scribunto, albo jaką tabelę JSON, którą można użyć do przetwarzania w języku JavaScript; local tab_dane_ksiazki=nil; ... local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); ---- Jeśli zapisujemy jako tabelę: JSON, to zapisujemy ją z zachowaniem dla parametrów numerowanych ich numerów, czyli takie tablice z nimi zapisjemy jako tabelę z kliczami, którymi są łańcuchu znakowe, a więc tworzymu ją jako tablice asocjacyjne; return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> iuqoczgurmpisv5i1zeyu80tbie3s3v 556654 556653 2026-09-15T23:05:05Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 556654 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{LinkŚródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}, są zdefiniowane kolejno w modułach. Są to funkcje lokalne dla funkcji liczenia, numerków lub nazw, na podstawie tego przeciwnego, oraz do wyznaczania bazy, numerków i nazw, z innymi parametrami rozdziałów i artykułów. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} (potrzebne) === Są to funkcje potrzebne, czyli konieczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} ==== Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = Tablica ramki tablicy transportu funkcji. | 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} | _2 = Tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy. | 3 = {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} | _3 = Funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji. | 4 = {{Code|typ}} {{Patrz|typ}} | _4 = Prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie. | 5 = {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} | _5 = Prawdziwe, gdy funkcja służy do zbierania informacji. }} Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: {{OpisParametrów | 1 = {{Code|nagłówek}} {{Patrz|nagłówek}} | _1 = Prawdziwe, gdy artykuły mogą się powtarzać. | 2 = {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} | _2 = Prawdziwe, wtedy nie są brane wszystkie rozdziały. | 3 = {{Code|dane}} {{Patrz|dane}} | _3 = Typ zbieranych lub uzyskiwanych danych. | 4 = {{Code|spis}} {{Patrz|spis}} | _4 = Nazwa artykułu spisu, a więc który spis ma rozważać. | 5 = {{Code|poziomowo}} {{Patrz|poziomowo}} | _5 = Czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami. | 6 = {{Code|nazwa}} {{Patrz|nazwa-p.PobierzNumerLubNazweArtykulu}} | _6 = Brana jest nazwa linku artykułu zamiast nazwy. | 7 = {{Code|który}} {{Patrz|który}} | _7 = którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. }} Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Przykłady funkcji: {{LinkPatrz|__FUNKCJA}}, są kolejno w punktach: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, i {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}} dla funkcji: {{LinkŚródtytuł|p["PobierzDaneKsiążki"]}}. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. ; Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają{{dk}} {{OpisParametrów | 1 = {{Code|1}} | _1 = Rozważa tylko artykuły. | 2 = {{Code|2}} | _2 = Rozważa tylko rozdziały. | 3 = {{Code|3}} | _3 = Rozważa nie tylko artykuły, również rozdziały. }} Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funcja bierze pod uwagę rozdziały dodatnie równaniowo, centrowane szablonowo lub znacznikowo, a nawet nagłówki, które też są nimi, ale również średnikowe, czy zerowe, a nawet ujemne. ; Kolejność ważności rozdziałów{{dk}} * Rozdziały centrowane szablonowo ({{s|Ce}}, {{s|Centruj}} i {{s|Center}}) bądź znaczniowo ({{Tag|center}}), * Rozdziały dodatnie równaniowo (jak: {{Code|<nowiki>== Nagłówek ==</nowiki>}}) i nagłówki ({{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}), a także nagłówki generowane przez szablon {{s|HNumer}} (ten szablon przy tym zachowuje zgodność z rozdziałami dodatnimi równaniowo, ale nie do końca), * Rozdziały średnikowe (zaczynające się od znaku {{Code|<nowiki>;</nowiki>}}), * Rozdziały zerowe (niezaczynające się od żadnego specjalnego znaku), * Rozdziały ujemne - to są pozycje list zaczynających się od {{Code|<nowiki>[%*:#]</nowiki>}}, ** Ważność rozdziałów ujemnych jest w kolejności od znaku zaczynającego listę: {{Code|<nowiki>*</nowiki>}}, {{Code|<nowiki>#</nowiki>}} i {{Code|<nowiki>:</nowiki>}} (bo czasami dwukropek nie jest numerowany, jeżeli jest pochyły, lub zawiera za dużo znaków). Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spisach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. ; Typy rozdziałów spisowych i sposób numerowania{{dk}} * Rozdziały, według funkcji, w rozdziałe głównym danego spisu i o nazwie: '''Spis treści''' i '''SPIS RZECZY''', są liczone względem tych poszczególnych kolejno rozdziałach, ale od początku, a po wyściu z tego drugiego odtwarzane jego numer spisu treści, i na podstawie tak uzyskanego numeru tego liczy on dalej. * Dla innych rozdziałów w wielu spisach (jeżeli podręcznik jest wielospisowy, tzn. ma wiele spisów treści), a nie tylko jedynym, do numeru rozdziału i artykułów (tymi rozdziałami są: dodatnie, czy ujemne, a nawet średnikowe badź zerowe), są wykorzystywane numery innych poprzedzających, czy nawet następujących czasami, tych elementów spisowych. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} (pomocne) === Są to funkcje potrzebne, czyli dostateczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.ZamienNumerArtykuluNaTabele}}{{Code|p.ZamienNumerArtykuluNaTabele}} ==== Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamienNumerArtykuluNaTabele=function(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} | _1 = Numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. }} Funkcja zwraca tę tablicę numerków rozpakujący: {{LinkPatrz|numer_artykulu}}, z niego numerki, który każdy element numerowany tej tablicy, to są te elementy oddzielone kropkami w tym numerze artykułu. ==== {{Śródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} ==== Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. | 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} | _2 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. | 3 = {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} | _3 = Tablica spisów książki, jego rozdziałów i artykułów. | 4 = {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} | _4 = Tabela numerków nagłówków lub artykułów. }} Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny jego rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. ==== {{Śródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ==== Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|numer_artykulu}} | _1 = Jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu. | 2 = {{Code|numer_spisu}} {{Patrz|numer_spisu}} | _2 = Numerki oddzielone kropkami spisu. }} Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. ==== {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} ==== Funkcja do sprawdzania w funkcjach tablicy transportu: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}} i {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, czy numer całkowity artykuły, czy rozdziału, powstałym po połączeniu ze sobą numeru rozdziału i numeru artykułu, którą trzebaa bezpośrednio zrzucić, bez przetwarzania, przez te funkcje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|nazwa_spisu}} | _1 = Jak w: {{LinkPatrz|nazwa_spisu}}. | 2 = {{Code|numer_spisu}} | _2 = Jak w: {{LinkPatrz|numer_spisu}}. | 3 = {{Code|tab_numer}} | _3 = Jak w: {{LinkPatrz|tab_numer}}. | 4 = {{Code|tab_poziomowo}} | _4 = Jak w: {{LinkPatrz|tab_poziomowo}}. }} == {{Śródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}{{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}}} == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. | 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} | _2 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. }} ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: {{OpisParametrów | 1 = {{Code|poziomowo}} | _1 = Jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną.. | 2 = {{Code|i}} {{Patrz|i}} | _2 = Gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna. | 3 = {{Code|ktory}} | _3 = Jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić. | 4 = {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} | _4 = Jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}. | 5 = {{Code|rozdzial}} {{Patrz|rozdzial}} | _5 = Rozdział w spisie. | 6 = {{Code|artykul}} {{Patrz|artykul}} | _6 = Nazwa artykułu, w spisie, w książce lub innej strony. | 7 = {{Code|tab_numer}} {{Patrz|tab_numer}} | _7 = Tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału. | 8 = {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} | _8 = Tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale. | 9 = {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} | _9 = Czy rozważany rozdział jest nienilowy. | 10 = {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} | _10 = Czy artykuł jest stroną podręcznika. | 11 = {{Code|przekierowanie}} {{Patrz|przekierowanie}} | _11 = Nazwa artykułu przekierowania. | 12 = {{Code|nazwa}} {{Patrz|nazwa}} | _12 = Nazwa linku artykułu. | 13 = {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} | _13 = Nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję. | 14 = {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} | _14 = Nazwa artykułu spisu wśród wszystkich spisach. | 15 = {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} | _15 = Jest to numer spisu, jest to liczba naturalna. | 16 = {{Code|tab_lista_artykulow_w_ksiazce}} | _16 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}. | 17 = {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} | _17 = Czy artykuł znajduje się w głównym spisie treści. }} Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy {{ZobaczTeż|Parametry bez przetwarzania}} jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i jeśli fukcja: {{LinkŚródtytuł|p.WarunekSpisuWoluminu}}, zwróciła prawdę, lub: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (poprzednie {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}), są prawdę, i numer spisu {{LinkPatrz|numer_spisu}} istnieje, i jest większy od zera, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{LzLua|table.concat}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. | 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} | _2 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. }} ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{LzLua|table.concat}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest spełniony warunek z: {{LinkZobaczTeż|Parametry bez przetwarzania}}, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}. Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{LzLua|table.concat}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NS|l=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. | 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} | _2 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. }} ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. | komórka1 = tak | 2 = {{Code|czy_dodane}} {{Patrz|czy_dodane}} | _2 = Czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji. | 3 = {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} | _3 = Czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, | 4 = {{Code|czy_url}} {{Patrz|czy_url}} | _4 = Czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. }} Jeżeli parametr artykułu podanego spisu {{Code|artykul_spisu}} {{LinkPatrz|artykul_spisu}} i nazwy spisu {{Code|nazwa_spisu}} {{LinkPatrz|nazwa_spisu}} istnieją, wtedy funkcja sygnalizuje zatrzymanie się algorytmu: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, po przeanalizowaniu się jego od początku pierwszego spisu. Jest tworzona pusta nowa zmienna tablicowa {{Code|tab_dane_ksiazki}} {{Patrz|tab_dane_ksiazki}}, a następnie jest tworzona jego pusta podtablica o kluczu {{Code|rozdzial}} {{LinkPatrz|rozdzial}}, co z tego jest tworzone {{Code|tab_rozdzial}} {{Patrz|tab_rozdzial}}. Dalej jest tworzona zmienna {{Code|numer_rozdzialu}} {{Patrz|numer_rozdzialu}} ze zmiennej tablicowej {{Code|tab_numer}} {{LinkPatrz|tab_numer}} z łącznikiem kropka przy pomocy funkcji: {{LzLua|table.concat}}. {{Tab}}Gdy {{LinkPatrz|nazwa_spisu}} i numer spisu {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieją, a: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, już nie, lub gdy {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (jest to poprzednie: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}) i aktualne {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i jednocześnie {{LinkPatrz|numer_rozdzialu}} jest łańcuchem znaków niepustym, wtedy liczymy: Jeśli {{LinkPatrz|numer_spisu}} jest równy {{Code|1}}, czyli jest pierwszym spisem treści, i w podinstukcji {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co dalej to jest zamieniane na numerację rozdziału {{LinkPatrz|numer_rozdzialu}} z tym samym łącznikiem tą samą funkcją, co na samym początku tego rozważania przy tej zmiennej. Przeciwnie niż w poprzednim akapicie jest liczony numer spisu treści z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, co jest łączone z {{LinkPatrz|numer_rozdzialu}} w większy numer rozdziału dzięki: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}, a jeśli spis znajduje się w spisie jako artykuł, nie jako w głównym rozdziale, wtedy są usuwane początkowe jedynki według: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co następie jest tworzone ostateczna wersja numeru rozdziału z tak otrzymanej tabeli w łańcuch znaków {{LinkPatrz|numer_rozdzialu}}. {{Tab}}Jeśli nie jest ustawione, że rozdział dany w spisie, że nie jest pierwszy, czyli: {{Code|pierwszy_spis_tresci}} {{Patrz|pierwszy_spis_tresci}}, a nazwa spisu {{LinkPatrz|nazwa_spisu}} i numer spisu {{LinkPatrz|numer_spisu}}, istniją, a także: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}}, nie istnieje, a za to: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieje, i {{LinkPatrz|numer_rozdzialu}} nie jest rozdziałem o ciągu pustym, a jeśli rozdział jest spisem treści, czy spisem rzeczy, wtedy jest ustawiana prawdziwość zmiennej {{LinkPatrz|pierwszy_spis_tresci}}, następnie dla {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę, dzięki: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co to później jest zamienane na łańcuch znaków w: {{LinkPatrz|numer_rozdzialu}}. ---- Z tego {{LinkPatrz|tab_rozdzial}} tworzymy podtablicę o kluczu {{LinkPatrz|numer_rozdzialu}}, jeśli nie istnieje, co z tego mamy {{Code|tab_numer_rozdzialu}} {{Patrz|tab_numer_rozdzialu}}, co dalej na podstawie tego dalej tworzymy podtablicę o kluczu {{Code|artykul}} {{LinkPatrz|artykul}}, jeżeli nie istnieje, co dzięki temu mamy: {{Code|tab_artykul}} {{Patrz|tab_artykul}}. Tworzymy numer artykułu {{Code|numer_artykulu}} {{LinkPatrz|numer_artykulu}} z {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}} z łącznikiem kropką, przy pomocy: {{LzLua|table.concat}}. Następnie tworzymy podtablicę z {{LinkPatrz|tab_artykul}} z klucza {{LinkPatrz|numer_artykulu}}, jeśli nie istnieje, tworząc: {{Code|tab_numer_artykulu}} {{LinkPatrz|tab_numer_artykulu}}. ---- Z tablicy {{LinkPatrz|tab_numer_artykulu}}, modyfikujemy tą podtablicę dodając do jego końca elementy na podstawie: <syntaxhighlight lang="lua"> table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); </syntaxhighlight> Na samym końcu, po dojściu do tego momentu funkcja zawsze zwraca wartość {{Code|false}}, czyli procedura: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, na tej funkcji, czyli:{{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, nie zatrzymuje się. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{LzLua|mw.text.jsonEncode}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> ---- Tą zmienną, tzn.: tab_dane_ksiazki, inicjuje funkcja lokalna: __FUNKCJA, by potem ją zwrócić jako tabelę Lua w Scribunto, albo jaką tabelę JSON, którą można użyć do przetwarzania w języku JavaScript; local tab_dane_ksiazki=nil; ... local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); ---- Jeśli zapisujemy jako tabelę: JSON, to zapisujemy ją z zachowaniem dla parametrów numerowanych ich numerów, czyli takie tablice z nimi zapisjemy jako tabelę z kliczami, którymi są łańcuchu znakowe, a więc tworzymu ją jako tablice asocjacyjne; return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 8ctnzvtj3d9eujba7xvmrlxvs6e33xn Wikibooks:Moduły/StronicowyParser/NumerLubNazwaNagłówkówKsiążek 4 63516 556650 547677 2026-09-15T22:39:51Z Persino 2851 556650 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaNagłówkówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje zamieniania numeru nagłówka na podstawie nazwy nagłówka przy pomocy: {{s|PobierzNumerNagłówka}}, i odwrotnie dzięki: {{s|PobierzNazwęNagłówka}}. == {{Śródtytuł|PobierzNumerLubNazweNaglowka}}{{Code|PobierzNumerLubNazweNaglowka}} == Funkcje pobierania numeru lub nazwy na podstawie tego przeciwnego. Czyli funkcje realizuje dwie funkcje zbierania danych na podstawie użytej funkcji: {{LinkPatrz|__FUNKCJA}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweNaglowka(frame,__FUNKCJA,typ)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = Tablica transportu funkcji tablicy transportu. | 2 = {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} | _2 = Funkcja wynajdowania nazwy na podstawienumeru nagłówka lub odwrotnie. | 3 = {{Code|typ}} {{Patrz|typ}} | _3 = Yyp rozumienia pierwszego parametru poberania numeru lub nazwy nagłówka na podstawie tego przeciwnego. }} Parametry tabeli transportu funkcji {{ZobaczTeż|PobierzNumerLubNazweNaglowka}}: {{OpisParametrów | 1 = {{Code|poziomowo}} {{Patrz|poziomowo}} | _1 = Określa, czy numerkimają być wielopoziomowe. | 2 = {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} | _2 = Określa, że nie wszystkie nazwy nagłówków mają być rozważane. | 3 = {{Code|który}} {{Patrz|który}} | _3 = Który ten sam nagłówek o takim samym numerze lub nazwie ma być rozważany. }} Funkcja rozróżnia rozdziały o nazwie: '''Spis treści''' lub '''SPIS RZECZY''', napisany dowolnymi literami, w ramach tego rozdziału rozdziały sąnumerowane od nowa. Funkcja może numerować rozdziały dodatnie numerkami od {{Code|1}} w wzwyż, lub wielopoziomowo, przy poocy numerków oddzielonych numerkami. == {{Śródtytuł|p["PobierzNumerNagłówka"]}}{{Code|p["PobierzNumerNagłówka"]}} == Funkcja pobiera numer nagłówka na podstawie nazwy nagłówka o pewnym numerze jego. Funkcja przyjmuje te same parametry tablicy transportu, co w punkcie {{LinkZobaczTeż|PobierzNumerLubNazweNaglowka}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerNagłówka"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} == {{Śródtytuł|p["PobierzNazwęNagłówka"]}}{{Code|p["PobierzNazwęNagłówka"]}} == Funkcja pobiera nazwę nagłówka na podstawie numeru nagłówka o pewnym numerze jego. Funkcja przyjmuje te same parametry tablicy transportu, co w punkcie {{LinkZobaczTeż|PobierzNumerLubNazweNaglowka}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęNagłówka"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> jki9lxhu9y8wmpvoqhiodc8dvqkgbl9 556651 556650 2026-09-15T22:40:51Z Persino 2851 /* {{Śródtytuł|PobierzNumerLubNazweNaglowka}}{{Code|PobierzNumerLubNazweNaglowka}} */ 556651 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaNagłówkówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje zamieniania numeru nagłówka na podstawie nazwy nagłówka przy pomocy: {{s|PobierzNumerNagłówka}}, i odwrotnie dzięki: {{s|PobierzNazwęNagłówka}}. == {{Śródtytuł|PobierzNumerLubNazweNaglowka}}{{Code|PobierzNumerLubNazweNaglowka}} == Funkcje pobierania numeru lub nazwy na podstawie tego przeciwnego. Czyli funkcje realizuje dwie funkcje zbierania danych na podstawie użytej funkcji: {{LinkPatrz|__FUNKCJA}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweNaglowka(frame,__FUNKCJA,typ)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = Tablica transportu funkcji tablicy transportu. | 2 = {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} | _2 = Funkcja wynajdowania nazwy na podstawienumeru nagłówka lub odwrotnie. | 3 = {{Code|typ}} {{Patrz|typ}} | _3 = Typ rozumienia pierwszego parametru poberania numeru lub nazwy nagłówka na podstawie tego przeciwnego. }} Parametry tabeli transportu funkcji {{ZobaczTeż|PobierzNumerLubNazweNaglowka}}: {{OpisParametrów | 1 = {{Code|poziomowo}} {{Patrz|poziomowo}} | _1 = Określa, czy numerki mają być wielopoziomowe. | 2 = {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} | _2 = Określa, że nie wszystkie nazwy nagłówków mają być rozważane. | 3 = {{Code|który}} {{Patrz|który}} | _3 = Który ten sam nagłówek o takim samym numerze lub nazwie ma być rozważany. }} Funkcja rozróżnia rozdziały o nazwie: '''Spis treści''' lub '''SPIS RZECZY''', napisany dowolnymi literami, w ramach tego rozdziału rozdziały sąnumerowane od nowa. Funkcja może numerować rozdziały dodatnie numerkami od {{Code|1}} w wzwyż, lub wielopoziomowo, przy poocy numerków oddzielonych numerkami. == {{Śródtytuł|p["PobierzNumerNagłówka"]}}{{Code|p["PobierzNumerNagłówka"]}} == Funkcja pobiera numer nagłówka na podstawie nazwy nagłówka o pewnym numerze jego. Funkcja przyjmuje te same parametry tablicy transportu, co w punkcie {{LinkZobaczTeż|PobierzNumerLubNazweNaglowka}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerNagłówka"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} == {{Śródtytuł|p["PobierzNazwęNagłówka"]}}{{Code|p["PobierzNazwęNagłówka"]}} == Funkcja pobiera nazwę nagłówka na podstawie numeru nagłówka o pewnym numerze jego. Funkcja przyjmuje te same parametry tablicy transportu, co w punkcie {{LinkZobaczTeż|PobierzNumerLubNazweNaglowka}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęNagłówka"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> q1a22xfk2otr9hixtbi2i2jce522h1b 556652 556651 2026-09-15T22:42:42Z Persino 2851 /* {{Śródtytuł|PobierzNumerLubNazweNaglowka}}{{Code|PobierzNumerLubNazweNaglowka}} */ 556652 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaNagłówkówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje zamieniania numeru nagłówka na podstawie nazwy nagłówka przy pomocy: {{s|PobierzNumerNagłówka}}, i odwrotnie dzięki: {{s|PobierzNazwęNagłówka}}. == {{Śródtytuł|PobierzNumerLubNazweNaglowka}}{{Code|PobierzNumerLubNazweNaglowka}} == Funkcje pobierania numeru lub nazwy na podstawie tego przeciwnego. Czyli funkcje realizuje dwie funkcje zbierania danych na podstawie użytej funkcji: {{LinkPatrz|__FUNKCJA}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweNaglowka(frame,__FUNKCJA,typ)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = Tablica transportu funkcji tablicy transportu. | 2 = {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} | _2 = Funkcja wynajdowania nazwy na podstawienumeru nagłówka lub odwrotnie. | 3 = {{Code|typ}} {{Patrz|typ}} | _3 = Typ rozumienia pierwszego parametru pobierania numeru lub nazwy nagłówka na podstawie tego przeciwnego. }} Parametry tabeli transportu funkcji {{ZobaczTeż|PobierzNumerLubNazweNaglowka}}: {{OpisParametrów | 1 = {{Code|poziomowo}} {{Patrz|poziomowo}} | _1 = Określa, czy numerki mają być wielopoziomowe. | 2 = {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} | _2 = Określa, że nie wszystkie nazwy nagłówków mają być rozważane. | 3 = {{Code|który}} {{Patrz|który}} | _3 = Który ten sam nagłówek o takim samym numerze lub nazwie ma być rozważany. }} Funkcja rozróżnia rozdziały o nazwie: '''Spis treści''' lub '''SPIS RZECZY''', napisany dowolnymi literami, w ramach tego rozdziału rozdziały sąnumerowane od nowa. Funkcja może numerować rozdziały dodatnie numerkami od {{Code|1}} w wzwyż, lub wielopoziomowo, przy poocy numerków oddzielonych numerkami. == {{Śródtytuł|p["PobierzNumerNagłówka"]}}{{Code|p["PobierzNumerNagłówka"]}} == Funkcja pobiera numer nagłówka na podstawie nazwy nagłówka o pewnym numerze jego. Funkcja przyjmuje te same parametry tablicy transportu, co w punkcie {{LinkZobaczTeż|PobierzNumerLubNazweNaglowka}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerNagłówka"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} == {{Śródtytuł|p["PobierzNazwęNagłówka"]}}{{Code|p["PobierzNazwęNagłówka"]}} == Funkcja pobiera nazwę nagłówka na podstawie numeru nagłówka o pewnym numerze jego. Funkcja przyjmuje te same parametry tablicy transportu, co w punkcie {{LinkZobaczTeż|PobierzNumerLubNazweNaglowka}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęNagłówka"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> mampxvixe6kw1q1l5pjqdtohp91b488 Wikibooks:Moduły/StronicowyParser/StronaSubst 4 63523 556608 554406 2026-09-15T17:53:48Z Persino 2851 556608 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 {{Tt|wersji do czytania}}: {{Patrz|Wersja do czytania}}, o nazwie równej subnazwie danej ksiązki: {{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: {{Code|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 nie ró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ą. 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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 istnieje, a jeżeli tak, to ustaw jego wartość na: {{Code|tak}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: * Brak parametrów. 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: {{LinkPatrz|StronaSubst-Szablon}} i {{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 funkcje: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-WoluminSubst}} i {{Code|KsiążkaSubst}} {{LinkPatrz|KsiazkaSubst-WoluminSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. | 2 = {{Code|nazwa_modulu_strony}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_strony}}. | 3 = {{Code|tablica_obiektow_strony_dany_modul_strony}} | _3 = Jak w: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = funkcja wywoływana, gdy napotkano szablon {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = funkcja wywoływana, gdy napotkano szablon {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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: {{Tag|div|parametry=class="strona_subst"}}, jest zawartość rozdziału w postaci naszego adresu, lub w postaci wartości pustej, gdy rozdział jest linkiem według ustawień funkcji: {{LinkŚródtytuł|StronaSubst}}, a więc i w przypadku szablonu: {{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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|strona}} {{Patrz|strona-StronaSubstParametr}} | _1 = Jak w: {{LinkPatrz|1-StronaSubst}}. | 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. | 4 = {{Code|p}} {{Patrz|p-StronaSubstParametr}} | _4 = Postęp tworzonego nagłówka, jeżeli {{Code|p {{=}} nil}}, wtedy domyślny poziom jest 1, ten poziom jest liczba calkowitą dodatnią. | 5 = {{Code|postep}} {{Patrz|postep-StronaSubstParametr}} | _5 = Jak w: {{LinkPatrz|postep-StronaSubst}}, z wartością logiczną jest jak 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}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, którymi są poszczególne rozdziały na stronie. | 4 = {{Code|postep}} | _4 = Jak w: {{LinkPatrz|postep-StronaSubstParametr}}, wykorzystywany przez {{LinkŚródtytuł|StronaSubstParametr}}. | 5 = {{Code|tablica_stron}} {{Patrz|tablica_stron}} | _5 = Tablica zebranych stron przez tą funkcję przekazazywana i zwracana przez nią iteracyjnie. | 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 pocycje 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. | 8 = {{Code|HNumer}} {{Patrz|HNumer}} | _8 = Funkcja zwracana przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}. | 9 = {{Code|m_roznica}} {{Patrz|m_roznica}} | _9 = Jest to poziom liczony przez funkcję: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}. | 10 = {{Code|m_uzyskane}} | _10 = Jest to poziom tego: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, liczony przez: {{Code|HNumer}} {{LinkPatrz|HNumer}}. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> 719iatl5i0zqm15ojpmlhlzuq0deszv 556609 556608 2026-09-15T17:54:50Z Persino 2851 /* {{Śródtytuł|CzyStronaSubst}}{{Code|CzyStronaSubst}} */ 556609 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 {{Tt|wersji do czytania}}: {{Patrz|Wersja do czytania}}, o nazwie równej subnazwie danej ksiązki: {{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: {{Code|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 nie ró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ą. 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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 istnieje, a jeżeli tak, to ustaw jego wartość na: {{Code|tak}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}} i {{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 funkcje: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-WoluminSubst}} i {{Code|KsiążkaSubst}} {{LinkPatrz|KsiazkaSubst-WoluminSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. | 2 = {{Code|nazwa_modulu_strony}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_strony}}. | 3 = {{Code|tablica_obiektow_strony_dany_modul_strony}} | _3 = Jak w: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = funkcja wywoływana, gdy napotkano szablon {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = funkcja wywoływana, gdy napotkano szablon {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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: {{Tag|div|parametry=class="strona_subst"}}, jest zawartość rozdziału w postaci naszego adresu, lub w postaci wartości pustej, gdy rozdział jest linkiem według ustawień funkcji: {{LinkŚródtytuł|StronaSubst}}, a więc i w przypadku szablonu: {{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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|strona}} {{Patrz|strona-StronaSubstParametr}} | _1 = Jak w: {{LinkPatrz|1-StronaSubst}}. | 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. | 4 = {{Code|p}} {{Patrz|p-StronaSubstParametr}} | _4 = Postęp tworzonego nagłówka, jeżeli {{Code|p {{=}} nil}}, wtedy domyślny poziom jest 1, ten poziom jest liczba calkowitą dodatnią. | 5 = {{Code|postep}} {{Patrz|postep-StronaSubstParametr}} | _5 = Jak w: {{LinkPatrz|postep-StronaSubst}}, z wartością logiczną jest jak 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}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, którymi są poszczególne rozdziały na stronie. | 4 = {{Code|postep}} | _4 = Jak w: {{LinkPatrz|postep-StronaSubstParametr}}, wykorzystywany przez {{LinkŚródtytuł|StronaSubstParametr}}. | 5 = {{Code|tablica_stron}} {{Patrz|tablica_stron}} | _5 = Tablica zebranych stron przez tą funkcję przekazazywana i zwracana przez nią iteracyjnie. | 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 pocycje 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. | 8 = {{Code|HNumer}} {{Patrz|HNumer}} | _8 = Funkcja zwracana przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}. | 9 = {{Code|m_roznica}} {{Patrz|m_roznica}} | _9 = Jest to poziom liczony przez funkcję: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}. | 10 = {{Code|m_uzyskane}} | _10 = Jest to poziom tego: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, liczony przez: {{Code|HNumer}} {{LinkPatrz|HNumer}}. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> gyvp8wn3xc6zz8zcj2nx9d77cs6uh7u 556612 556609 2026-09-15T18:40:46Z Persino 2851 /* {{Śródtytuł|CzyStronaSubst}}{{Code|CzyStronaSubst}} */ 556612 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 {{Tt|wersji do czytania}}: {{Patrz|Wersja do czytania}}, o nazwie równej subnazwie danej ksiązki: {{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: {{Code|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 nie ró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ą. 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}} i {{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 funkcje: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-WoluminSubst}} i {{Code|KsiążkaSubst}} {{LinkPatrz|KsiazkaSubst-WoluminSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. | 2 = {{Code|nazwa_modulu_strony}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_strony}}. | 3 = {{Code|tablica_obiektow_strony_dany_modul_strony}} | _3 = Jak w: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = funkcja wywoływana, gdy napotkano szablon {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = funkcja wywoływana, gdy napotkano szablon {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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: {{Tag|div|parametry=class="strona_subst"}}, jest zawartość rozdziału w postaci naszego adresu, lub w postaci wartości pustej, gdy rozdział jest linkiem według ustawień funkcji: {{LinkŚródtytuł|StronaSubst}}, a więc i w przypadku szablonu: {{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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|strona}} {{Patrz|strona-StronaSubstParametr}} | _1 = Jak w: {{LinkPatrz|1-StronaSubst}}. | 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. | 4 = {{Code|p}} {{Patrz|p-StronaSubstParametr}} | _4 = Postęp tworzonego nagłówka, jeżeli {{Code|p {{=}} nil}}, wtedy domyślny poziom jest 1, ten poziom jest liczba calkowitą dodatnią. | 5 = {{Code|postep}} {{Patrz|postep-StronaSubstParametr}} | _5 = Jak w: {{LinkPatrz|postep-StronaSubst}}, z wartością logiczną jest jak 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}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, którymi są poszczególne rozdziały na stronie. | 4 = {{Code|postep}} | _4 = Jak w: {{LinkPatrz|postep-StronaSubstParametr}}, wykorzystywany przez {{LinkŚródtytuł|StronaSubstParametr}}. | 5 = {{Code|tablica_stron}} {{Patrz|tablica_stron}} | _5 = Tablica zebranych stron przez tą funkcję przekazazywana i zwracana przez nią iteracyjnie. | 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 pocycje 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. | 8 = {{Code|HNumer}} {{Patrz|HNumer}} | _8 = Funkcja zwracana przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}. | 9 = {{Code|m_roznica}} {{Patrz|m_roznica}} | _9 = Jest to poziom liczony przez funkcję: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}. | 10 = {{Code|m_uzyskane}} | _10 = Jest to poziom tego: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, liczony przez: {{Code|HNumer}} {{LinkPatrz|HNumer}}. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> om0k5lq99uamegm03nm8sz7wxnfva0e 556613 556612 2026-09-15T18:42:13Z Persino 2851 /* {{Śródtytuł|WoluminSubst}}{{Code|WoluminSubst}} */ 556613 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 {{Tt|wersji do czytania}}: {{Patrz|Wersja do czytania}}, o nazwie równej subnazwie danej ksiązki: {{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: {{Code|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 nie ró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ą. 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 funkcje: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-WoluminSubst}} i {{Code|KsiążkaSubst}} {{LinkPatrz|KsiazkaSubst-WoluminSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. | 2 = {{Code|nazwa_modulu_strony}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_strony}}. | 3 = {{Code|tablica_obiektow_strony_dany_modul_strony}} | _3 = Jak w: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = funkcja wywoływana, gdy napotkano szablon {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = funkcja wywoływana, gdy napotkano szablon {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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: {{Tag|div|parametry=class="strona_subst"}}, jest zawartość rozdziału w postaci naszego adresu, lub w postaci wartości pustej, gdy rozdział jest linkiem według ustawień funkcji: {{LinkŚródtytuł|StronaSubst}}, a więc i w przypadku szablonu: {{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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|strona}} {{Patrz|strona-StronaSubstParametr}} | _1 = Jak w: {{LinkPatrz|1-StronaSubst}}. | 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. | 4 = {{Code|p}} {{Patrz|p-StronaSubstParametr}} | _4 = Postęp tworzonego nagłówka, jeżeli {{Code|p {{=}} nil}}, wtedy domyślny poziom jest 1, ten poziom jest liczba calkowitą dodatnią. | 5 = {{Code|postep}} {{Patrz|postep-StronaSubstParametr}} | _5 = Jak w: {{LinkPatrz|postep-StronaSubst}}, z wartością logiczną jest jak 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}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, którymi są poszczególne rozdziały na stronie. | 4 = {{Code|postep}} | _4 = Jak w: {{LinkPatrz|postep-StronaSubstParametr}}, wykorzystywany przez {{LinkŚródtytuł|StronaSubstParametr}}. | 5 = {{Code|tablica_stron}} {{Patrz|tablica_stron}} | _5 = Tablica zebranych stron przez tą funkcję przekazazywana i zwracana przez nią iteracyjnie. | 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 pocycje 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. | 8 = {{Code|HNumer}} {{Patrz|HNumer}} | _8 = Funkcja zwracana przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}. | 9 = {{Code|m_roznica}} {{Patrz|m_roznica}} | _9 = Jest to poziom liczony przez funkcję: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}. | 10 = {{Code|m_uzyskane}} | _10 = Jest to poziom tego: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, liczony przez: {{Code|HNumer}} {{LinkPatrz|HNumer}}. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> hwopkzyzreu8nbuvkz6mgq1kgbiysdz 556614 556613 2026-09-15T18:42:53Z Persino 2851 /* {{Śródtytuł|WoluminSubst}}{{Code|WoluminSubst}} */ 556614 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 {{Tt|wersji do czytania}}: {{Patrz|Wersja do czytania}}, o nazwie równej subnazwie danej ksiązki: {{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: {{Code|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 nie ró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ą. 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. | 2 = {{Code|nazwa_modulu_strony}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_strony}}. | 3 = {{Code|tablica_obiektow_strony_dany_modul_strony}} | _3 = Jak w: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = funkcja wywoływana, gdy napotkano szablon {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = funkcja wywoływana, gdy napotkano szablon {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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: {{Tag|div|parametry=class="strona_subst"}}, jest zawartość rozdziału w postaci naszego adresu, lub w postaci wartości pustej, gdy rozdział jest linkiem według ustawień funkcji: {{LinkŚródtytuł|StronaSubst}}, a więc i w przypadku szablonu: {{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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|strona}} {{Patrz|strona-StronaSubstParametr}} | _1 = Jak w: {{LinkPatrz|1-StronaSubst}}. | 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. | 4 = {{Code|p}} {{Patrz|p-StronaSubstParametr}} | _4 = Postęp tworzonego nagłówka, jeżeli {{Code|p {{=}} nil}}, wtedy domyślny poziom jest 1, ten poziom jest liczba calkowitą dodatnią. | 5 = {{Code|postep}} {{Patrz|postep-StronaSubstParametr}} | _5 = Jak w: {{LinkPatrz|postep-StronaSubst}}, z wartością logiczną jest jak 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}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, którymi są poszczególne rozdziały na stronie. | 4 = {{Code|postep}} | _4 = Jak w: {{LinkPatrz|postep-StronaSubstParametr}}, wykorzystywany przez {{LinkŚródtytuł|StronaSubstParametr}}. | 5 = {{Code|tablica_stron}} {{Patrz|tablica_stron}} | _5 = Tablica zebranych stron przez tą funkcję przekazazywana i zwracana przez nią iteracyjnie. | 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 pocycje 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. | 8 = {{Code|HNumer}} {{Patrz|HNumer}} | _8 = Funkcja zwracana przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}. | 9 = {{Code|m_roznica}} {{Patrz|m_roznica}} | _9 = Jest to poziom liczony przez funkcję: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}. | 10 = {{Code|m_uzyskane}} | _10 = Jest to poziom tego: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, liczony przez: {{Code|HNumer}} {{LinkPatrz|HNumer}}. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> d7d1jcqv4ooq440n92qdi6t071r1oef 556615 556614 2026-09-15T18:47:01Z Persino 2851 /* {{Śródtytuł|StronaSubstParametr}}{{Code|StronaSubstParametr}} */ 556615 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 {{Tt|wersji do czytania}}: {{Patrz|Wersja do czytania}}, o nazwie równej subnazwie danej ksiązki: {{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: {{Code|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 nie ró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ą. 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. | 2 = {{Code|nazwa_modulu_strony}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_strony}}. | 3 = {{Code|tablica_obiektow_strony_dany_modul_strony}} | _3 = Jak w: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = funkcja wywoływana, gdy napotkano szablon {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = funkcja wywoływana, gdy napotkano szablon {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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: {{Tag|div|parametry=class="strona_subst"}}, jest zawartość rozdziału w postaci naszego adresu, lub w postaci wartości pustej, gdy rozdział jest linkiem według ustawień funkcji: {{LinkŚródtytuł|StronaSubst}}, a więc i 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|strona}} {{Patrz|strona-StronaSubstParametr}} | _1 = Jak w: {{LinkPatrz|1-StronaSubst}}. | 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. | 4 = {{Code|p}} {{Patrz|p-StronaSubstParametr}} | _4 = Postęp tworzonego nagłówka, jeżeli {{Code|p {{=}} nil}}, wtedy domyślny poziom jest 1, ten poziom jest liczba calkowitą dodatnią. | 5 = {{Code|postep}} {{Patrz|postep-StronaSubstParametr}} | _5 = Jak w: {{LinkPatrz|postep-StronaSubst}}, z wartością logiczną jest jak 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}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, którymi są poszczególne rozdziały na stronie. | 4 = {{Code|postep}} | _4 = Jak w: {{LinkPatrz|postep-StronaSubstParametr}}, wykorzystywany przez {{LinkŚródtytuł|StronaSubstParametr}}. | 5 = {{Code|tablica_stron}} {{Patrz|tablica_stron}} | _5 = Tablica zebranych stron przez tą funkcję przekazazywana i zwracana przez nią iteracyjnie. | 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 pocycje 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. | 8 = {{Code|HNumer}} {{Patrz|HNumer}} | _8 = Funkcja zwracana przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}. | 9 = {{Code|m_roznica}} {{Patrz|m_roznica}} | _9 = Jest to poziom liczony przez funkcję: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}. | 10 = {{Code|m_uzyskane}} | _10 = Jest to poziom tego: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, liczony przez: {{Code|HNumer}} {{LinkPatrz|HNumer}}. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> 04dyle6u4n5xlu1a5uewtvzgmip9ldo 556616 556615 2026-09-15T18:51:11Z Persino 2851 /* {{Śródtytuł|WoluminSubst}}{{Code|WoluminSubst}} */ 556616 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 {{Tt|wersji do czytania}}: {{Patrz|Wersja do czytania}}, o nazwie równej subnazwie danej ksiązki: {{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: {{Code|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 nie ró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ą. 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. | 2 = {{Code|nazwa_modulu_strony}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_strony}}. | 3 = {{Code|tablica_obiektow_strony_dany_modul_strony}} | _3 = Jak w: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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: {{Tag|div|parametry=class="strona_subst"}}, jest zawartość rozdziału w postaci naszego adresu, lub w postaci wartości pustej, gdy rozdział jest linkiem według ustawień funkcji: {{LinkŚródtytuł|StronaSubst}}, a więc i 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|strona}} {{Patrz|strona-StronaSubstParametr}} | _1 = Jak w: {{LinkPatrz|1-StronaSubst}}. | 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. | 4 = {{Code|p}} {{Patrz|p-StronaSubstParametr}} | _4 = Postęp tworzonego nagłówka, jeżeli {{Code|p {{=}} nil}}, wtedy domyślny poziom jest 1, ten poziom jest liczba calkowitą dodatnią. | 5 = {{Code|postep}} {{Patrz|postep-StronaSubstParametr}} | _5 = Jak w: {{LinkPatrz|postep-StronaSubst}}, z wartością logiczną jest jak 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}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, którymi są poszczególne rozdziały na stronie. | 4 = {{Code|postep}} | _4 = Jak w: {{LinkPatrz|postep-StronaSubstParametr}}, wykorzystywany przez {{LinkŚródtytuł|StronaSubstParametr}}. | 5 = {{Code|tablica_stron}} {{Patrz|tablica_stron}} | _5 = Tablica zebranych stron przez tą funkcję przekazazywana i zwracana przez nią iteracyjnie. | 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 pocycje 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. | 8 = {{Code|HNumer}} {{Patrz|HNumer}} | _8 = Funkcja zwracana przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}. | 9 = {{Code|m_roznica}} {{Patrz|m_roznica}} | _9 = Jest to poziom liczony przez funkcję: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}. | 10 = {{Code|m_uzyskane}} | _10 = Jest to poziom tego: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, liczony przez: {{Code|HNumer}} {{LinkPatrz|HNumer}}. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> 0mwf1lq5i9t40h86icmyv16wtphahd8 556617 556616 2026-09-15T19:16:18Z Persino 2851 /* {{Śródtytuł|StronaSubstParametr}}{{Code|StronaSubstParametr}} */ 556617 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 {{Tt|wersji do czytania}}: {{Patrz|Wersja do czytania}}, o nazwie równej subnazwie danej ksiązki: {{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: {{Code|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 nie ró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ą. 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. | 2 = {{Code|nazwa_modulu_strony}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_strony}}. | 3 = {{Code|tablica_obiektow_strony_dany_modul_strony}} | _3 = Jak w: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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: {{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 i 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|strona}} {{Patrz|strona-StronaSubstParametr}} | _1 = Jak w: {{LinkPatrz|1-StronaSubst}}. | 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. | 4 = {{Code|p}} {{Patrz|p-StronaSubstParametr}} | _4 = Postęp tworzonego nagłówka, jeżeli {{Code|p {{=}} nil}}, wtedy domyślny poziom jest 1, ten poziom jest liczba calkowitą dodatnią. | 5 = {{Code|postep}} {{Patrz|postep-StronaSubstParametr}} | _5 = Jak w: {{LinkPatrz|postep-StronaSubst}}, z wartością logiczną jest jak 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}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, którymi są poszczególne rozdziały na stronie. | 4 = {{Code|postep}} | _4 = Jak w: {{LinkPatrz|postep-StronaSubstParametr}}, wykorzystywany przez {{LinkŚródtytuł|StronaSubstParametr}}. | 5 = {{Code|tablica_stron}} {{Patrz|tablica_stron}} | _5 = Tablica zebranych stron przez tą funkcję przekazazywana i zwracana przez nią iteracyjnie. | 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 pocycje 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. | 8 = {{Code|HNumer}} {{Patrz|HNumer}} | _8 = Funkcja zwracana przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}. | 9 = {{Code|m_roznica}} {{Patrz|m_roznica}} | _9 = Jest to poziom liczony przez funkcję: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}. | 10 = {{Code|m_uzyskane}} | _10 = Jest to poziom tego: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, liczony przez: {{Code|HNumer}} {{LinkPatrz|HNumer}}. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> m7pmxz0wgfotf0p2ek9zbhzb8zs6es9 556618 556617 2026-09-15T19:30:44Z Persino 2851 /* {{Śródtytuł|StronaSubstParametr}}{{Code|StronaSubstParametr}} */ 556618 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 {{Tt|wersji do czytania}}: {{Patrz|Wersja do czytania}}, o nazwie równej subnazwie danej ksiązki: {{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: {{Code|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 nie ró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ą. 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. | 2 = {{Code|nazwa_modulu_strony}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_strony}}. | 3 = {{Code|tablica_obiektow_strony_dany_modul_strony}} | _3 = Jak w: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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 i 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> Parametry funkcji: {{OpisParametrów | 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}} {{Patrz|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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, którymi są poszczególne rozdziały na stronie. | 4 = {{Code|postep}} | _4 = Jak w: {{LinkPatrz|postep-StronaSubstParametr}}, wykorzystywany przez {{LinkŚródtytuł|StronaSubstParametr}}. | 5 = {{Code|tablica_stron}} {{Patrz|tablica_stron}} | _5 = Tablica zebranych stron przez tą funkcję przekazazywana i zwracana przez nią iteracyjnie. | 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 pocycje 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. | 8 = {{Code|HNumer}} {{Patrz|HNumer}} | _8 = Funkcja zwracana przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}. | 9 = {{Code|m_roznica}} {{Patrz|m_roznica}} | _9 = Jest to poziom liczony przez funkcję: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}. | 10 = {{Code|m_uzyskane}} | _10 = Jest to poziom tego: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, liczony przez: {{Code|HNumer}} {{LinkPatrz|HNumer}}. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> 225omwkpyvrjjy7qqnmr47xqkvlrh50 556619 556618 2026-09-15T19:31:54Z Persino 2851 /* {{Śródtytuł|StronaSubstParametr}}{{Code|StronaSubstParametr}} */ 556619 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 {{Tt|wersji do czytania}}: {{Patrz|Wersja do czytania}}, o nazwie równej subnazwie danej ksiązki: {{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: {{Code|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 nie ró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ą. 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. | 2 = {{Code|nazwa_modulu_strony}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_strony}}. | 3 = {{Code|tablica_obiektow_strony_dany_modul_strony}} | _3 = Jak w: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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 i 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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, którymi są poszczególne rozdziały na stronie. | 4 = {{Code|postep}} | _4 = Jak w: {{LinkPatrz|postep-StronaSubstParametr}}, wykorzystywany przez {{LinkŚródtytuł|StronaSubstParametr}}. | 5 = {{Code|tablica_stron}} {{Patrz|tablica_stron}} | _5 = Tablica zebranych stron przez tą funkcję przekazazywana i zwracana przez nią iteracyjnie. | 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 pocycje 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. | 8 = {{Code|HNumer}} {{Patrz|HNumer}} | _8 = Funkcja zwracana przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}. | 9 = {{Code|m_roznica}} {{Patrz|m_roznica}} | _9 = Jest to poziom liczony przez funkcję: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}. | 10 = {{Code|m_uzyskane}} | _10 = Jest to poziom tego: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, liczony przez: {{Code|HNumer}} {{LinkPatrz|HNumer}}. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> jnvvxrlqx75hoc6oxtl6g28yhtl8hsh 556620 556619 2026-09-15T19:36:15Z Persino 2851 /* {{Śródtytuł|WoluminSubst}}{{Code|WoluminSubst}} */ 556620 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 {{Tt|wersji do czytania}}: {{Patrz|Wersja do czytania}}, o nazwie równej subnazwie danej ksiązki: {{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: {{Code|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 nie ró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ą. 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Jest to przeszukiwany tekst, w celu wysszukania szablonów: {{s|StronaSubst}} i {{s|KsiążkaSubst}}. | 2 = {{Code|nazwa_modulu_strony}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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 i 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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, którymi są poszczególne rozdziały na stronie. | 4 = {{Code|postep}} | _4 = Jak w: {{LinkPatrz|postep-StronaSubstParametr}}, wykorzystywany przez {{LinkŚródtytuł|StronaSubstParametr}}. | 5 = {{Code|tablica_stron}} {{Patrz|tablica_stron}} | _5 = Tablica zebranych stron przez tą funkcję przekazazywana i zwracana przez nią iteracyjnie. | 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 pocycje 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. | 8 = {{Code|HNumer}} {{Patrz|HNumer}} | _8 = Funkcja zwracana przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}. | 9 = {{Code|m_roznica}} {{Patrz|m_roznica}} | _9 = Jest to poziom liczony przez funkcję: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}. | 10 = {{Code|m_uzyskane}} | _10 = Jest to poziom tego: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, liczony przez: {{Code|HNumer}} {{LinkPatrz|HNumer}}. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> migppmucxvwi33l3thd7v19u593n4b3 556621 556620 2026-09-15T19:37:36Z Persino 2851 /* {{Śródtytuł|WoluminSubst}}{{Code|WoluminSubst}} */ 556621 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 {{Tt|wersji do czytania}}: {{Patrz|Wersja do czytania}}, o nazwie równej subnazwie danej ksiązki: {{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: {{Code|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 nie ró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ą. 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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 i 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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, którymi są poszczególne rozdziały na stronie. | 4 = {{Code|postep}} | _4 = Jak w: {{LinkPatrz|postep-StronaSubstParametr}}, wykorzystywany przez {{LinkŚródtytuł|StronaSubstParametr}}. | 5 = {{Code|tablica_stron}} {{Patrz|tablica_stron}} | _5 = Tablica zebranych stron przez tą funkcję przekazazywana i zwracana przez nią iteracyjnie. | 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 pocycje 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. | 8 = {{Code|HNumer}} {{Patrz|HNumer}} | _8 = Funkcja zwracana przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}. | 9 = {{Code|m_roznica}} {{Patrz|m_roznica}} | _9 = Jest to poziom liczony przez funkcję: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}. | 10 = {{Code|m_uzyskane}} | _10 = Jest to poziom tego: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, liczony przez: {{Code|HNumer}} {{LinkPatrz|HNumer}}. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> 4xzgegu2hbhijlpzcbtb14y6r4ra5i3 556622 556621 2026-09-15T20:02:54Z Persino 2851 /* {{Śródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}}{{Code|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} */ 556622 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 {{Tt|wersji do czytania}}: {{Patrz|Wersja do czytania}}, o nazwie równej subnazwie danej ksiązki: {{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: {{Code|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 nie ró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ą. 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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 i 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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, 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. | 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 pocycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiednii 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. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> 9z3y5m6uyzysl75rgxcoixm1nwxp4o8 556623 556622 2026-09-15T20:10:46Z Persino 2851 /* {{Śródtytuł|WoluminSubst}}{{Code|WoluminSubst}} */ 556623 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 {{Tt|wersji do czytania}}: {{Patrz|Wersja do czytania}}, o nazwie równej subnazwie danej ksiązki: {{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: {{Code|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 nie ró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ą. 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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łównna funkcja w: {{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, od której liczymy szablony stron zbiorczych. I całą historię tego liczenia od tego zaczynamy. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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 i 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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, 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. | 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 pocycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiednii 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. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> pikszall41cfvkgp0k48fjbma6o88mi 556624 556623 2026-09-15T20:13:37Z Persino 2851 /* {{Śródtytuł|WoluminSubst}}{{Code|WoluminSubst}} */ 556624 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 {{Tt|wersji do czytania}}: {{Patrz|Wersja do czytania}}, o nazwie równej subnazwie danej ksiązki: {{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: {{Code|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 nie ró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ą. 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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łównna 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: {{LinkŚródtytuł|p.AnalizaStronaSubst|}}, a do części szczególnej, dla jednego artykułu, używa do tego celu: {{LinkŚródtytuł|StronaSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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 i 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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, 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. | 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 pocycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiednii 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. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> lqnqsizbg3b590upfvbgr6x27802ogj 556625 556624 2026-09-15T20:15:25Z Persino 2851 /* {{Śródtytuł|WoluminSubst}}{{Code|WoluminSubst}} */ 556625 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 {{Tt|wersji do czytania}}: {{Patrz|Wersja do czytania}}, o nazwie równej subnazwie danej ksiązki: {{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: {{Code|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 nie ró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ą. 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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łównna 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: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, a do części szczególnej, dla jednego artykułu, używa do tego celu: {{LinkŚródtytuł|StronaSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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 i 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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, 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. | 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 pocycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiednii 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. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> lhfwoqw08ntcj2i8m8qd7q7qn4qoees 556626 556625 2026-09-15T20:16:03Z Persino 2851 /* {{Śródtytuł|WoluminSubst}}{{Code|WoluminSubst}} */ 556626 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 {{Tt|wersji do czytania}}: {{Patrz|Wersja do czytania}}, o nazwie równej subnazwie danej ksiązki: {{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: {{Code|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 nie ró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ą. 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, a do części szczególnej, dla jednego artykułu, używa do tego celu: {{LinkŚródtytuł|StronaSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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 i 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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, 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. | 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 pocycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiednii 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. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> dhz1jjhi53ifi80gul9j8m02gqii6e1 556627 556626 2026-09-15T20:17:24Z Persino 2851 /* {{Śródtytuł|WoluminSubst}}{{Code|WoluminSubst}} */ 556627 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 {{Tt|wersji do czytania}}: {{Patrz|Wersja do czytania}}, o nazwie równej subnazwie danej ksiązki: {{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: {{Code|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 nie ró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ą. 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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 i 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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, 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. | 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 pocycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiednii 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. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> hsekru0p16fpo647uoefwo5yb8z4kbm 556628 556627 2026-09-15T20:24:21Z Persino 2851 /* {{Śródtytuł|p.AnalizaStronaSubst}}{{Code|p.AnalizaStronaSubst}} */ 556628 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 {{Tt|wersji do czytania}}: {{Patrz|Wersja do czytania}}, o nazwie równej subnazwie danej ksiązki: {{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: {{Code|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 nie ró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: {{s|StronaSubst}} i {{s|KsiążkaSiubst}}, 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 proceedury wykonawcze. 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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 i 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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, 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. | 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 pocycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiednii 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. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> hbwva2eog82ck6auo6yxs87pghpz0yk 556629 556628 2026-09-15T20:24:46Z Persino 2851 /* {{Śródtytuł|p.AnalizaStronaSubst}}{{Code|p.AnalizaStronaSubst}} */ 556629 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 {{Tt|wersji do czytania}}: {{Patrz|Wersja do czytania}}, o nazwie równej subnazwie danej ksiązki: {{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: {{Code|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 nie ró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: {{s|StronaSubst}} i {{s|KsiążkaSubst}}, 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 proceedury wykonawcze. 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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 i 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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, 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. | 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 pocycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiednii 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. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> byotk741c9kslrte122sk570r7nt2j3 556630 556629 2026-09-15T20:29:33Z Persino 2851 /* {{Śródtytuł|p.AnalizaStronaSubst}}{{Code|p.AnalizaStronaSubst}} */ 556630 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 {{Tt|wersji do czytania}}: {{Patrz|Wersja do czytania}}, o nazwie równej subnazwie danej ksiązki: {{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: {{Code|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 nie ró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: {{s|StronaSubst}} i {{s|KsiążkaSubst}}, 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 proceedury wykonawcze, a dla tego drugiego szablonu, natomiast jest uruchomiana instrukcja: {{LinkŚródtytuł|p.AnalizaStronaSubstp.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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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 i 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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, 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. | 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 pocycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiednii 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. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> nen1k1ro7cbhvvkce90d8plejfmjom1 556631 556630 2026-09-15T20:30:38Z Persino 2851 /* {{Śródtytuł|p.AnalizaStronaSubst}}{{Code|p.AnalizaStronaSubst}} */ 556631 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 {{Tt|wersji do czytania}}: {{Patrz|Wersja do czytania}}, o nazwie równej subnazwie danej ksiązki: {{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: {{Code|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 nie ró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: {{s|StronaSubst}} i {{s|KsiążkaSubst}}, 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 proceedury 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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 i 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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, 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. | 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 pocycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiednii 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. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> 9pcbbs6yo02tsmpusknt9a6g34z0sa4 556633 556631 2026-09-15T20:35:21Z Persino 2851 /* {{Śródtytuł|p.AnalizaStronaSubst}}{{Code|p.AnalizaStronaSubst}} */ 556633 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 równej subnazwie danej ksiązki: {{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: {{Code|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 nie ró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: {{s|StronaSubst}} i {{s|KsiążkaSubst}}, 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 proceedury 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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 i 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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, 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. | 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 pocycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiednii 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. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> 99eyhe16bmek2lnmsam98z2wkjgeqja 556634 556633 2026-09-15T20:35:57Z Persino 2851 /* {{Śródtytuł|p.AnalizaStronaSubst}}{{Code|p.AnalizaStronaSubst}} */ 556634 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 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: {{Code|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 nie ró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: {{s|StronaSubst}} i {{s|KsiążkaSubst}}, 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 proceedury 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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 i 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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, 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. | 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 pocycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiednii 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. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> cescge2zg4b3m1842snak131slldups 556635 556634 2026-09-15T20:37:55Z Persino 2851 /* {{Śródtytuł|p.AnalizaStronaSubst}}{{Code|p.AnalizaStronaSubst}} */ 556635 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 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: {{Code|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: {{s|StronaSubst}} i {{s|KsiążkaSubst}}, 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 proceedury 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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 i 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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, 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. | 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 pocycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiednii 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. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> h1rnfka0dd0wbatan2gul9unardq5n5 556636 556635 2026-09-15T21:03:48Z Persino 2851 /* {{Śródtytuł|p.AnalizaStronaSubst}}{{Code|p.AnalizaStronaSubst}} */ 556636 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 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: {{Code|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: {{s|StronaSubst}} i {{s|KsiążkaSubst}}, 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 = nazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} | _13 = {{Patrz|nazwa_ksiazki}} 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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 i 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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, 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. | 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 pocycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiednii 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. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> sies5epzcomgg8nm73q4swz0uz56joy 556637 556636 2026-09-15T21:09:55Z Persino 2851 /* {{Śródtytuł|p.AnalizaStronaSubst}}{{Code|p.AnalizaStronaSubst}} */ 556637 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 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: {{Code|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: {{s|StronaSubst}} i {{s|KsiążkaSubst}}, 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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 i 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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, 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. | 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 pocycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiednii 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. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> gsb6a9m7g56yppbwctg8vgy4dly7dc2 556638 556637 2026-09-15T21:11:30Z Persino 2851 /* {{Śródtytuł|p.AnalizaStronaSubst}}{{Code|p.AnalizaStronaSubst}} */ 556638 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 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: {{Code|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: {{s|StronaSubst}} i {{s|KsiążkaSubst}}, 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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 dadal 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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 i 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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, 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. | 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 pocycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiednii 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. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> n9qg3sskri78kx6egdnhfad5vo5t9cg 556639 556638 2026-09-15T21:14:25Z Persino 2851 /* {{Śródtytuł|p.AnalizaStronaSubst}}{{Code|p.AnalizaStronaSubst}} */ 556639 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 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: {{Code|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: {{s|StronaSubst}} i {{s|KsiążkaSubst}}, 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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ż ma zmienną używaną w funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}. === 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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 i 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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, 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. | 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 pocycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiednii 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. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> 7a00jb6ey4xpuoy0wu73s65oloag8oe 556640 556639 2026-09-15T21:24:34Z Persino 2851 /* Opis funkcji */ 556640 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 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: {{Code|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: {{s|StronaSubst}} i {{s|KsiążkaSubst}}, 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwaala uruchomić ta funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}. | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić. }} 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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 i 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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, 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. | 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 pocycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiednii 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. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> 9ptkt8lbx920p2opmndvolqmg4mtdfp 556641 556640 2026-09-15T21:29:13Z Persino 2851 /* Opis funkcji */ 556641 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 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: {{Code|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: {{s|StronaSubst}} i {{s|KsiążkaSubst}}, 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić, 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 tekście rozdziału nie jest podawany adres pełny artykułu, a jeżeli ona nie jest linkiem, to 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ą '''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 i 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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, 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. | 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 pocycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiednii 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. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> swzp43f7besi6pbeadyc1r9r5hu1jln 556642 556641 2026-09-15T21:39:36Z Persino 2851 /* {{Śródtytuł|StronaSubstParametr}}{{Code|StronaSubstParametr}} */ 556642 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 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: {{Code|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: {{s|StronaSubst}} i {{s|KsiążkaSubst}}, 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić, 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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 linki jest równa nazwie nagłówka, chociaż adres jest pełną nazwą ksiązki, wtedy w tekście w znaczniku nie jes podawaany 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ą '''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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, 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. | 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 pocycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiednii 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. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> scqms4wwv2ri8k30ns5c32caixag71z 556643 556642 2026-09-15T21:42:34Z Persino 2851 /* {{Śródtytuł|StronaSubstParametr}}{{Code|StronaSubstParametr}} */ 556643 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 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: {{Code|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: {{s|StronaSubst}} i {{s|KsiążkaSubst}}, 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić, 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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ązki, wtedy w tekście w znaczniku nie jes podawaany 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ą '''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> Parametry funkcji: {{OpisParametrów | 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 = Postęp tworzonego nagłówka rozdziaał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 tó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ą jest jak 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 atrycie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}. }} ==== {{Ś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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, 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. | 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 pocycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiednii 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. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> mgifyt34s6hremwaed3pimsoa834q4p 556644 556643 2026-09-15T21:47:53Z Persino 2851 /* {{Śródtytuł|StronaSubstParametr}}{{Code|StronaSubstParametr}} */ 556644 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 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: {{Code|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: {{s|StronaSubst}} i {{s|KsiążkaSubst}}, 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić, 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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ązki, wtedy w tekście w znaczniku nie jes podawaany 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ą '''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> Parametry funkcji: {{OpisParametrów | 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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. Gdy nie jest włączony parametr sekcji, ale jest właczony paramwetr 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.stronymogą 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ć tekst rozdział, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczyje nagłókami, 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. | 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 pocycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiednii 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. }} 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> iuiwickpe0g6xr9v58j70r5iljfg9zq 556645 556644 2026-09-15T21:56:15Z Persino 2851 /* {{Śródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}}{{Code|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} */ 556645 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 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: {{Code|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: {{s|StronaSubst}} i {{s|KsiążkaSubst}}, 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić, 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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ązki, wtedy w tekście w znaczniku nie jes podawaany 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ą '''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> Parametry funkcji: {{OpisParametrów | 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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. 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ć tekst rozdziału, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni ksiązkowej, przy pomocy zmiennych nazw pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> n996lwj1ts6pdnrh8ewtx8p10bi1l2c 556646 556645 2026-09-15T21:59:49Z Persino 2851 /* {{Śródtytuł|StronaSubst}}{{Code|StronaSubst}} */ 556646 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 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: {{Code|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: {{s|StronaSubst}} i {{s|KsiążkaSubst}}, 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić, 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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ązki, wtedy w tekście w znaczniku nie jes podawaany 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ą '''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> Parametry funkcji: {{OpisParametrów | 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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. 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ć tekst rozdziału, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{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 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli została już policzona jego zawartość w postaci aktualnej książki, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest prawidziwy, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> 1cw70psgyo1v0buetrqkexowqc5vsl5 556647 556646 2026-09-15T22:03:36Z Persino 2851 /* {{Śródtytuł|StronaSubst}}{{Code|StronaSubst}} */ 556647 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 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: {{Code|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: {{s|StronaSubst}} i {{s|KsiążkaSubst}}, 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić, 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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ązki, wtedy w tekście w znaczniku nie jes podawaany 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ą '''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> Parametry funkcji: {{OpisParametrów | 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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. 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ć tekst rozdziału, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{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 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli nie została policzona jego zawartość w postaci aktualnej książki, a jeżeli została, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej ksiązki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{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. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> bbejz5sgnh4moju0dv820kt8xn6mi7b 556648 556647 2026-09-15T22:14:32Z Persino 2851 /* {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} */ 556648 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 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: {{Code|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: {{s|StronaSubst}} i {{s|KsiążkaSubst}}, 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić, 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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ązki, wtedy w tekście w znaczniku nie jes podawaany 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ą '''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> Parametry funkcji: {{OpisParametrów | 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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. 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ć tekst rozdziału, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{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 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli nie została policzona jego zawartość w postaci aktualnej książki, a jeżeli została, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia, tylko zwraca wynik już policzony. W tym przypadku dla aktualnej ksiązki, gdy podano zmienne pudełkowe, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł nie istnieje, to program tej funkcji jest zakańczany, a jeżeli je nie podano, to sprawdzane jest, czy taki rozdział, czy rzeczywiście jest zbiorczy. Jeżeli mamy do czynienia z nieaktualną książką tylko inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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 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ć poziom {{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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> kwf7e2vsc9lxqwzzsm76lbp27zmszsq 556649 556648 2026-09-15T22:22:03Z Persino 2851 /* {{Śródtytuł|AnalizowanieWoluminu}}{{Code|AnalizowanieWoluminu}} */ 556649 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 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: {{Code|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: {{s|StronaSubst}} i {{s|KsiążkaSubst}}, 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> Parametry funkcji: {{OpisParametrów | 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 dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 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ą. | 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. | 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. | 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}}}} {{Patrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{Patrz|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,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = 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}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = 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 umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić, 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> Parametry funkcji: {{OpisParametrów | 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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} {{LinkPatrz|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|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = 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}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,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ązki, wtedy w tekście w znaczniku nie jes podawaany 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ą '''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> Parametry funkcji: {{OpisParametrów | 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: do czytania: {{LinkPatrz|Wersja do czytania}}, i do druku: {{LinkPatrz|Wersja do druku}}. 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ć tekst rozdziału, jego tekst rozdziału, tzn. {{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 książce. 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> Parametry funkcji: {{OpisParametrów | 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. | 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. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. 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 normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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 rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=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); ... ---- 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 normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, 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_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_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_zerowego_dla_strony,liczba_poziomu_srednikowego_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, czy to zaznaczonych jako linki wewnętrzne, czy zewnętrzne, czy to w postaci linków inteligetnych, ale tylko artykułów liczonego podręcznika, 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{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 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. Funkcja korzysta z: {{LinkŚródtytuł|StronaSubstParametr}}, czyli funkcji liczącej element składowy strony zbiorczej (zawartość), dla danego artykułu. 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> Parametry funkcji: {{OpisParametrów | 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}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą, a jeżeli nie została policzona jego zawartość w postaci aktualnej książki, a jeżeli została, to funkcja zwraca tą wartość. Funkcja liczy elementy spisu treści ogólnego spisu treści, jak szablony spisu rzeczy w postaci graficznej: {{s|Spis treści}} i {{s|TOCRamka}}, albo tekstowej: {{s|TOC}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, 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ą: {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, jest tworzona ta podtablica: <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 podzmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, jest tworzona ta podtablica: <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 od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla danego rozdziału, oprócz wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia, tylko zwraca wynik już policzony. W tym przypadku dla aktualnej ksiązki, gdy podano zmienne pudełkowe, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł nie istnieje, to program tej funkcji jest zakańczany, a jeżeli je nie podano, to sprawdzane jest, czy taki rozdział, czy rzeczywiście jest zbiorczy. Jeżeli mamy do czynienia z nieaktualną książką tylko inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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ę. W przeciwnym wypadku funkcja liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{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 listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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: {{LinkPatrz|Wersja do czytania}}, i druku: {{LinkPatrz|Wersja do druku}}. Jeżeli już to policzono wcześniej pewne zmienne, to ona zakańcza pracę bez ponownego liczenia. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną ksiązką tylko z inną, lub podano parametry pudełkowe, to funkcja sprawdza też w {{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 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ę. W przeciwnym wypadku funkcja 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}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr zmienna policzona przez {{LinkPatrz|HNumer}}. 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, bez artykułów podręcznika, a ostatni rozdział jest ze stronami artykularnymi, przed artykułami, o dowolnej nazwie, wtedy liczymy listę artykułów w danym rozdziale 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ą rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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. }} Parametry funkcji zwracanej: * {{Code|parametr}} - 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: {{LinkPatrz|Wersja do czytania}}, lub 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = 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. Parametry funkcji: {{OpisParametrów | 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}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 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> o2tpj71fesykh9ef3x79sr8frmahwa9 Wikibooks:Moduły/StronicowyParser/SzablonyTekstu 4 63669 556606 555549 2026-09-15T17:12:05Z Persino 2851 /* {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} */ 556606 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}}. * 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}}. ; 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,}, }); end; </syntaxhighlight> * Teb powyższy kod, to nic innego jak część definicji fukcji: {{LinkŚródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}, używaną do stawiaia tego, gdy napotkano szablony tytu: {{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 robina 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 posczególnych obiektów, tutaj nazwanych kluczami: {{Code|name}}, w tych mniejszych mieszczą się pojedyncze tabele, ktore 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.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, | 2 = {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} | _2 = rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|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}} | _5 = jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, | 6 = {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} | _6 = nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, | 7 = {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} | _7 = tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _8 = tablica bazy kodów modułu {{m|Szablonowe}}, | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _9 = tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 10 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _10 = {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. }} 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 było wtedy aktualnie elenetó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. 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> Parametry funkcji: {{OpisParametrów | 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: {{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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}, 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|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _4 = nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, | 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|czy_korzystane}} {{Patrz|czy_korzystane}} | _7 = 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}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, odpowiednimi treściami z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 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 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,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 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,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} | _2 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 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|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}}, 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> rg1v9g42wtgk9tfl898dhez0t1rwj17 556607 556606 2026-09-15T17:14:09Z Persino 2851 /* {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} */ 556607 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}}. * 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}}. ; 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,}, }); end; </syntaxhighlight> * Teb powyższy kod, to nic innego jak część definicji fukcji: {{LinkŚródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}, używaną do stawiaia tego, gdy napotkano szablony tytu: {{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 robina 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 posczególnych obiektów, tutaj nazwanych kluczami: {{Code|name}}, w tych mniejszych mieszczą się pojedyncze tabele, ktore 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.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, | 2 = {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} | _2 = rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|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}} | _5 = jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, | 6 = {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} | _6 = nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, | 7 = {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} | _7 = tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _8 = tablica bazy kodów modułu {{m|Szablonowe}}, | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _9 = tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 10 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _10 = {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. }} 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 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. 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> Parametry funkcji: {{OpisParametrów | 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: {{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}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}, 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|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _4 = nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, | 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|czy_korzystane}} {{Patrz|czy_korzystane}} | _7 = 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}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, odpowiednimi treściami z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 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 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,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 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,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}} | _2 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 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|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}}, 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> 920qrub5pyf3y44i9re27wx0a6yqsbf Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom I 4 63908 556558 556346 2026-09-15T13:25:43Z Persino 2851 /* {{Śródtytuł|p.UstawUchwytyWeTablicyBezNumeracji}}{{Code|p.UstawUchwytyWeTablicyBezNumeracji}} */ 556558 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}} Przedstawione sa 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> Parametry funkcji: {{OpisParametrów | 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 jest pobierana 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}}. == {{Ś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> Parametry funkcji: {{OpisParametrów | 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,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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. | 9 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _9 = Tablica bazy kodów parsowania strony. | 10 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _10 = Tablica analizy poszczególnych elementów kodów, do szybszego działania skryptu. | 11 = {{Code|KtorySzablonMaZwracacKategorie}} {{Patrz|KtorySzablonMaZwracacKategorie}} | _11 = 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/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,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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|tablica_analizy_obiektow_strony_dany_modul}} | _10 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. | 11 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _11 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. | 12 = {{Code|KtorySzablonMaZwracacKategorie}} | _12 = 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> plabhq6ys0sonyjnaklk61luk8p1d3d 556559 556558 2026-09-15T13:35:45Z Persino 2851 /* {{Śródtytuł|p.UstawUchwytyWeTablicyBezNumeracji}}{{Code|p.UstawUchwytyWeTablicyBezNumeracji}} */ 556559 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}} Przedstawione sa 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> Parametry funkcji: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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. | 9 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _9 = Tablica bazy kodów parsowania strony. | 10 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _10 = Tablica analizy poszczególnych elementów kodów, do szybszego działania skryptu. | 11 = {{Code|KtorySzablonMaZwracacKategorie}} {{Patrz|KtorySzablonMaZwracacKategorie}} | _11 = 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/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,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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|tablica_analizy_obiektow_strony_dany_modul}} | _10 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. | 11 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _11 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. | 12 = {{Code|KtorySzablonMaZwracacKategorie}} | _12 = 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> q9o3vb5tt0pg8aqrryuuw4xcm9h6eo9 Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom II 4 63909 556560 556347 2026-09-15T13:38:08Z Persino 2851 /* {{Śródtytuł|p.SzablonyReferencjiParametrowych}}{{Code|p.SzablonyReferencjiParametrowych}} */ 556560 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.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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, ewentualnie: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, ale zawsze z: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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> Paraametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}} | _3 = Uchwyt obiektu, podane w danym szablonie stronicowym. | 4 = {{Code|nazwa_obiektu}} | _4 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/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/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/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/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,bezuchwytowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|bezuchwytowe}} | _3 = 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/Tom I}}, podobnie, ale wcześniej jest liczona nazwa artykułu {{LinkZobaczTeż|nazwa artykułu}}, czyli: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> h52m0utbacg42wllkdhernwdvve017p Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom III 4 63910 556562 556348 2026-09-15T13:47:04Z Persino 2851 /* {{Śródtytuł|p.ZbieranieKontenerowychInformacji}}{{Code|p.ZbieranieKontenerowychInformacji}} */ 556562 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}} 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/Tom II}}, która liczy kolejne nazwy charaktertyzują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 artylułu strony została policzona, wtedy są liczone pozostałe nazwy z: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, a na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}} - ona słuzy do zbierania informacji o stronie, a tuż przed nim, jeśli istnieje: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|KtorySzablonMaZwracacKategorie}} | _3 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|czy_inna_wartosc_tekst}} | _4 = Jak w: {{LinkPatrz|czy_inna_wartosc_tekst}}. | 5 = {{Code|tab_nazwy}} | _5 = 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/Tom VI/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,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{Patrz|czy_szablon_pudelkowy_strony_zbiorczej}} | _3 = 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}}}}. | 4 = {{Code|KtorySzablonMaZwracacKategorie}} | _4 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}. }} Gdy nie ma parametrów pudełkowych funkcja się natychmiast zakańcza, lub parametr: {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}, jest pusta, lub nawet gdy zawierają kody wykrywane przez funkcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}. Z nazwy jednostki jest wydzielana nazwa jednostki właściwa bez nazwy nagłówka, póżniej obie nazwy są też dekodowane funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, czyli wszystko z: {{Code|nazwa przestrzeni nazw}} {{LinkPatrz|nazwa przestrzeni nazw}}, i {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}. Z tych dwóch nazwy jest liczony adres, ewentualnie względny, który za pomocą funkcji: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, jest wyliczany adres bezwzględny. Dalej są liczone nazwy charakteryzujące artykuł danej książki strony, czyli: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, z tego adresu strony. Przedostatnia funkcja, która jest uruchamiana przed funkcją zbierającą jest: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli istnieje. == {{Ś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)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _3 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}. }} Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, jako parametry zwracane przez funkcję: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/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 zwracająca wartość, czyli: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> fv8hu2v50gsmteukwwripl4nhtoy6hu 556563 556562 2026-09-15T13:49:18Z Persino 2851 /* {{Śródtytuł|p.ZbieranieKontenerowychInformacji}}{{Code|p.ZbieranieKontenerowychInformacji}} */ 556563 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}} 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/Tom II}}, która liczy kolejne nazwy charaktertyzują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 artylułu strony została policzona, wtedy są liczone pozostałe nazwy z: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, a na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}} - ona słuzy do zbierania informacji o stronie, a tuż przed nim, jeśli istnieje: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|KtorySzablonMaZwracacKategorie}} | _3 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|czy_inna_wartosc_tekst}} | _4 = Jak w: {{LinkPatrz|czy_inna_wartosc_tekst}}. | 5 = {{Code|tab_nazwy}} | _5 = 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/Tom VI/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,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{Patrz|czy_szablon_pudelkowy_strony_zbiorczej}} | _3 = 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}}}}. | 4 = {{Code|KtorySzablonMaZwracacKategorie}} | _4 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}. }} Gdy nie ma parametrów pudełkowych funkcja się natychmiast zakańcza, lub parametr: {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}, jest pusta, lub nawet gdy zawierają kody wykrywane przez funkcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}. Z nazwy jednostki jest wydzielana nazwa jednostki właściwa bez nazwy nagłówka, póżniej obie nazwy są też dekodowane funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, czyli wszystko z: {{Code|nazwa przestrzeni nazw}} {{LinkPatrz|nazwa przestrzeni nazw}}, i {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}. Z tych dwóch nazw jest liczony adres, ewentualnie względny, który za pomocą funkcji: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, jest przeistaczany w adres bezwzględny. Dalej są liczone nazwy charakteryzujące artykuł danej książki strony, czyli: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, z tego adresu strony. Przedostatnia funkcja, która jest uruchamiana przed funkcją zbierającą jest: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}, jeśli istnieje. == {{Ś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)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _3 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}. }} Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, jako parametry zwracane przez funkcję: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/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 zwracająca wartość, czyli: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> l67zbsgjn6ugcb63jg7hykypr8ct36c Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom V 4 63912 556564 556350 2026-09-15T13:54:17Z Persino 2851 /* {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} */ 556564 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}} 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/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/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/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/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/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 obiekty o wartości: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 6 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _6 = Kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|uchwyt_obiektu}} | _7 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 8 = {{Code|czy_pobierz}} | _8 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw tstrony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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 spraqdzane, 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 warunkiwej 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ż wskaazywanych 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/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/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śsci 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/Tom I}}. {{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/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/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/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/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,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _8 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _9 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 10 = {{Code|KtorySzablonMaZwracacKategorie}} | _10 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 11 = {{Code|czy_pobierz}} | _11 = 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/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}. === 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/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}}. === Przypadek uchwytu pustego === Gdy uchwyt jest pusty lub nie istnieje, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, z kodem problemu: {{Code|brak uchwytu}}. === Istniejący niepusty uchwyt linku === Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z niej samej, lub jesli ona nie istnoeje, 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ł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}. Wtedy funkcja się zakańcza. ==== Dodatkowo istnieje tylko nazwa artykułu ==== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}. ==== Dodatkowo istnieje tylko nazwa książki ==== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, nie istnieje, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, to za zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, by potem się zakończa ta funkcja. ==== Liczenie parametrów nazw wywołań szablonowych linków ==== Przeciwnie są liczone parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}. ==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ==== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - 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/Tom II}}. Co potem jest zakończenie działania funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> rxa0spxsnn22qoximhm84gto26p828e 556565 556564 2026-09-15T13:55:24Z Persino 2851 /* {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} */ 556565 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}} 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/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/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/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/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/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/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/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/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 6 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _6 = Kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|uchwyt_obiektu}} | _7 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 8 = {{Code|czy_pobierz}} | _8 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw tstrony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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 spraqdzane, 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 warunkiwej 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ż wskaazywanych 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/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/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śsci 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/Tom I}}. {{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/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/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/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/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,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _8 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _9 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 10 = {{Code|KtorySzablonMaZwracacKategorie}} | _10 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 11 = {{Code|czy_pobierz}} | _11 = 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/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}. === 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/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}}. === Przypadek uchwytu pustego === Gdy uchwyt jest pusty lub nie istnieje, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, z kodem problemu: {{Code|brak uchwytu}}. === Istniejący niepusty uchwyt linku === Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z niej samej, lub jesli ona nie istnoeje, 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ł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}. Wtedy funkcja się zakańcza. ==== Dodatkowo istnieje tylko nazwa artykułu ==== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}. ==== Dodatkowo istnieje tylko nazwa książki ==== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, nie istnieje, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, to za zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, by potem się zakończa ta funkcja. ==== Liczenie parametrów nazw wywołań szablonowych linków ==== Przeciwnie są liczone parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}. ==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ==== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - 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/Tom II}}. Co potem jest zakończenie działania funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> c0r3dmxnla9vll2wu90u3mhmz47hcpf 556566 556565 2026-09-15T13:58:28Z Persino 2851 /* {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} */ 556566 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}} 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/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/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/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/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/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/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/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/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 6 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _6 = Kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|uchwyt_obiektu}} | _7 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 8 = {{Code|czy_pobierz}} | _8 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw strony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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 spraqdzane, 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 warunkiwej 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ż wskaazywanych 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/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/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śsci 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/Tom I}}. {{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/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/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/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/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,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _8 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _9 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 10 = {{Code|KtorySzablonMaZwracacKategorie}} | _10 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 11 = {{Code|czy_pobierz}} | _11 = 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/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}. === 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/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}}. === Przypadek uchwytu pustego === Gdy uchwyt jest pusty lub nie istnieje, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, z kodem problemu: {{Code|brak uchwytu}}. === Istniejący niepusty uchwyt linku === Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z niej samej, lub jesli ona nie istnoeje, 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ł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}. Wtedy funkcja się zakańcza. ==== Dodatkowo istnieje tylko nazwa artykułu ==== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}. ==== Dodatkowo istnieje tylko nazwa książki ==== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, nie istnieje, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, to za zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, by potem się zakończa ta funkcja. ==== Liczenie parametrów nazw wywołań szablonowych linków ==== Przeciwnie są liczone parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}. ==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ==== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - 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/Tom II}}. Co potem jest zakończenie działania funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 6yrxg79fq09nyu0czensahgyr3hujfs 556567 556566 2026-09-15T14:00:38Z Persino 2851 /* {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} */ 556567 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}} 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/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/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/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/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/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/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/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/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 6 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _6 = Kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|uchwyt_obiektu}} | _7 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 8 = {{Code|czy_pobierz}} | _8 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw strony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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 warunkiwej 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ż wskaazywanych 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/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/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śsci 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/Tom I}}. {{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/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/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/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/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,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _8 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _9 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 10 = {{Code|KtorySzablonMaZwracacKategorie}} | _10 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 11 = {{Code|czy_pobierz}} | _11 = 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/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}. === 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/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}}. === Przypadek uchwytu pustego === Gdy uchwyt jest pusty lub nie istnieje, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, z kodem problemu: {{Code|brak uchwytu}}. === Istniejący niepusty uchwyt linku === Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z niej samej, lub jesli ona nie istnoeje, 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ł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}. Wtedy funkcja się zakańcza. ==== Dodatkowo istnieje tylko nazwa artykułu ==== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}. ==== Dodatkowo istnieje tylko nazwa książki ==== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, nie istnieje, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, to za zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, by potem się zakończa ta funkcja. ==== Liczenie parametrów nazw wywołań szablonowych linków ==== Przeciwnie są liczone parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}. ==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ==== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - 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/Tom II}}. Co potem jest zakończenie działania funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> aeyks6gun2zan7qheei6a8zqcwai9nt 556568 556567 2026-09-15T14:06:43Z Persino 2851 /* {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} */ 556568 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}} 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/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/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/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/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/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/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/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/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 6 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _6 = Kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|uchwyt_obiektu}} | _7 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 8 = {{Code|czy_pobierz}} | _8 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw strony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, dotyczące szablonów: {{s|Śródtekst}} i {{s|PobieŚ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/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/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/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/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,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _8 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _9 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 10 = {{Code|KtorySzablonMaZwracacKategorie}} | _10 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 11 = {{Code|czy_pobierz}} | _11 = 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/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}. === 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/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}}. === Przypadek uchwytu pustego === Gdy uchwyt jest pusty lub nie istnieje, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, z kodem problemu: {{Code|brak uchwytu}}. === Istniejący niepusty uchwyt linku === Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z niej samej, lub jesli ona nie istnoeje, 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ł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}. Wtedy funkcja się zakańcza. ==== Dodatkowo istnieje tylko nazwa artykułu ==== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}. ==== Dodatkowo istnieje tylko nazwa książki ==== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, nie istnieje, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, to za zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, by potem się zakończa ta funkcja. ==== Liczenie parametrów nazw wywołań szablonowych linków ==== Przeciwnie są liczone parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}. ==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ==== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - 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/Tom II}}. Co potem jest zakończenie działania funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ohgnf5hzjf7931rmqtinzp2kma1hdv3 556569 556568 2026-09-15T14:14:14Z Persino 2851 /* Istniejący niepusty uchwyt linku */ 556569 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}} 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/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/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/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/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/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/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/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/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 6 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _6 = Kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|uchwyt_obiektu}} | _7 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 8 = {{Code|czy_pobierz}} | _8 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw strony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, dotyczące szablonów: {{s|Śródtekst}} i {{s|PobieŚ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/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/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/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/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,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _8 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _9 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 10 = {{Code|KtorySzablonMaZwracacKategorie}} | _10 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 11 = {{Code|czy_pobierz}} | _11 = 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/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Tom II}}. === 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/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}}. === Przypadek uchwytu pustego === Gdy uchwyt jest pusty lub nie istnieje, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, z kodem problemu: {{Code|brak uchwytu}}. === Istniejący niepusty uchwyt linku === Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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ł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}. Wtedy funkcja się zakańcza. ==== Ale istnieje tylko nazwa artykułu ==== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}. ==== Dodatkowo istnieje tylko nazwa książki ==== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, nie istnieje, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, to za zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, by potem się zakończa ta funkcja. ==== Liczenie parametrów nazw wywołań szablonowych linków ==== Przeciwnie są liczone parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}. ==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ==== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - 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/Tom II}}. Co potem jest zakończenie działania funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> h3o2b1lknbrmo3awsmjmncno7my6v05 Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI/Część I 4 63913 556570 556351 2026-09-15T14:15:33Z Persino 2851 /* {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} */ 556570 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|czy_artykul_korzystany}} | _3 = Jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} | _5 = Jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/Tom III}}. }} === {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} === Funkcja do tworzenia tabeli artykułów z innymi jej parametrami wielowymiarowtmi, 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 wielowymoarowac 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> Parametry funkcji {{ZobaczTeż|parametry artykułu}}: {{OpisParametrów | 1 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _1 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, | 2 = {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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 prarametrach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}. ==== Wartości zwracane ==== * Da tutaj ustawiane zmienne z kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. ===== Przypadek istnienia nazwy artykułu ===== Funkcja zwraca kolejno elementy, jeśli parametr: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}. ==== Strona niebieżąca, ale niekorzystana, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}},j est fałsszywy, 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. ====== 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}} - gdu 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/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/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: * brak. ==== {{Ś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 skrotowa funkcji: <syntaxhighlight lang="lua"> local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Gdy artykuł jest analizowany, wtedy jeśli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{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. Elementy tablicowe książkowe: * {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}} - 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/Tom I}}. * {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}} - 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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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łuzy 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/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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/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 wwartość 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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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 powaidomienia, niezależnie od rodzaju strony zbiorczej, czy jest nią. Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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/Tom V}}. | 6 = {{Code|kod}} | _6 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tab_numer}} | _7 = Jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, przy istnieniu tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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}} === Dunkcja 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> Parametry funkcji: {{OpisParametrów | 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/Tom V}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/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}} ==== ; Gdy parametr{{dk}} {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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óznicą 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> Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}: {{OpisParametrów | 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 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}}. Definicji skrótowa funkcji: <syntaxhighlight lang="lua"> local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end; </syntaxhighlight> Parametry funkcji: * Brak. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 837xy3olctzvcjnasv7cgngbe2su3gp 556571 556570 2026-09-15T14:16:14Z Persino 2851 /* {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} */ 556571 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|czy_artykul_korzystany}} | _3 = Jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} | _5 = Jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/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 wielowymoarowac 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> Parametry funkcji {{ZobaczTeż|parametry artykułu}}: {{OpisParametrów | 1 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _1 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, | 2 = {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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 prarametrach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}. ==== Wartości zwracane ==== * Da tutaj ustawiane zmienne z kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. ===== Przypadek istnienia nazwy artykułu ===== Funkcja zwraca kolejno elementy, jeśli parametr: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}. ==== Strona niebieżąca, ale niekorzystana, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}},j est fałsszywy, 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. ====== 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}} - gdu 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/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/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: * brak. ==== {{Ś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 skrotowa funkcji: <syntaxhighlight lang="lua"> local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Gdy artykuł jest analizowany, wtedy jeśli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{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. Elementy tablicowe książkowe: * {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}} - 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/Tom I}}. * {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}} - 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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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łuzy 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/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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/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 wwartość 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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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 powaidomienia, niezależnie od rodzaju strony zbiorczej, czy jest nią. Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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/Tom V}}. | 6 = {{Code|kod}} | _6 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tab_numer}} | _7 = Jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, przy istnieniu tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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}} === Dunkcja 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> Parametry funkcji: {{OpisParametrów | 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/Tom V}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/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}} ==== ; Gdy parametr{{dk}} {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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óznicą 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> Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}: {{OpisParametrów | 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 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}}. Definicji skrótowa funkcji: <syntaxhighlight lang="lua"> local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end; </syntaxhighlight> Parametry funkcji: * Brak. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 45v5fiuzt0foju5n3hvvtxzjqdb16j5 556572 556571 2026-09-15T14:17:10Z Persino 2851 /* {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} */ 556572 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|czy_artykul_korzystany}} | _3 = Jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} | _5 = Jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji {{ZobaczTeż|parametry artykułu}}: {{OpisParametrów | 1 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _1 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, | 2 = {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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 prarametrach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}. ==== Wartości zwracane ==== * Da tutaj ustawiane zmienne z kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. ===== Przypadek istnienia nazwy artykułu ===== Funkcja zwraca kolejno elementy, jeśli parametr: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}. ==== Strona niebieżąca, ale niekorzystana, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}},j est fałsszywy, 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. ====== 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}} - gdu 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/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/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: * brak. ==== {{Ś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 skrotowa funkcji: <syntaxhighlight lang="lua"> local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Gdy artykuł jest analizowany, wtedy jeśli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{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. Elementy tablicowe książkowe: * {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}} - 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/Tom I}}. * {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}} - 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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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łuzy 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/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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/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 wwartość 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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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 powaidomienia, niezależnie od rodzaju strony zbiorczej, czy jest nią. Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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/Tom V}}. | 6 = {{Code|kod}} | _6 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tab_numer}} | _7 = Jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, przy istnieniu tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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}} === Dunkcja 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> Parametry funkcji: {{OpisParametrów | 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/Tom V}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/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}} ==== ; Gdy parametr{{dk}} {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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óznicą 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> Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}: {{OpisParametrów | 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 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}}. Definicji skrótowa funkcji: <syntaxhighlight lang="lua"> local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end; </syntaxhighlight> Parametry funkcji: * Brak. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> lz1nq8knr0m2ns5ccgxuta4d2gfezh2 556573 556572 2026-09-15T14:18:25Z Persino 2851 /* Tworzenie tabel książkowych danego artykułu */ 556573 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|czy_artykul_korzystany}} | _3 = Jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} | _5 = Jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji {{ZobaczTeż|parametry artykułu}}: {{OpisParametrów | 1 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _1 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, | 2 = {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}. ==== Wartości zwracane ==== * Da tutaj ustawiane zmienne z kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. ===== Przypadek istnienia nazwy artykułu ===== Funkcja zwraca kolejno elementy, jeśli parametr: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}. ==== Strona niebieżąca, ale niekorzystana, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}},j est fałsszywy, 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. ====== 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}} - gdu 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/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/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: * brak. ==== {{Ś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 skrotowa funkcji: <syntaxhighlight lang="lua"> local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Gdy artykuł jest analizowany, wtedy jeśli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{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. Elementy tablicowe książkowe: * {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}} - 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/Tom I}}. * {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}} - 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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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łuzy 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/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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/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 wwartość 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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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 powaidomienia, niezależnie od rodzaju strony zbiorczej, czy jest nią. Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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/Tom V}}. | 6 = {{Code|kod}} | _6 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tab_numer}} | _7 = Jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, przy istnieniu tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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}} === Dunkcja 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> Parametry funkcji: {{OpisParametrów | 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/Tom V}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/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}} ==== ; Gdy parametr{{dk}} {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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óznicą 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> Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}: {{OpisParametrów | 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 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}}. Definicji skrótowa funkcji: <syntaxhighlight lang="lua"> local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end; </syntaxhighlight> Parametry funkcji: * Brak. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> kbu9i7wlk0hqr0o00e9rpld3cwadeyo 556574 556573 2026-09-15T14:19:21Z Persino 2851 /* Wartości zwracane */ 556574 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|czy_artykul_korzystany}} | _3 = Jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} | _5 = Jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji {{ZobaczTeż|parametry artykułu}}: {{OpisParametrów | 1 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _1 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, | 2 = {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}. ==== Wartości zwracane ==== * Te tutaj ustawiane zmienne z kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. ===== Przypadek istnienia nazwy artykułu ===== Funkcja zwraca kolejno elementy, jeśli parametr: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}. ==== Strona niebieżąca, ale niekorzystana, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}},j est fałsszywy, 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. ====== 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}} - gdu 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/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/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: * brak. ==== {{Ś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 skrotowa funkcji: <syntaxhighlight lang="lua"> local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Gdy artykuł jest analizowany, wtedy jeśli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{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. Elementy tablicowe książkowe: * {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}} - 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/Tom I}}. * {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}} - 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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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łuzy 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/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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/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 wwartość 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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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 powaidomienia, niezależnie od rodzaju strony zbiorczej, czy jest nią. Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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/Tom V}}. | 6 = {{Code|kod}} | _6 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tab_numer}} | _7 = Jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, przy istnieniu tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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}} === Dunkcja 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> Parametry funkcji: {{OpisParametrów | 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/Tom V}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/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}} ==== ; Gdy parametr{{dk}} {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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óznicą 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> Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}: {{OpisParametrów | 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 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}}. Definicji skrótowa funkcji: <syntaxhighlight lang="lua"> local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end; </syntaxhighlight> Parametry funkcji: * Brak. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 5j0228wtox70vn5qhe5tiydzxofcr77 556575 556574 2026-09-15T14:22:03Z Persino 2851 /* Analiza spisu treści artykułu już tego sprawdzonego ze zebranymi informacjami o niej, zbieranie dodatkowych elementów */ 556575 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|czy_artykul_korzystany}} | _3 = Jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} | _5 = Jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji {{ZobaczTeż|parametry artykułu}}: {{OpisParametrów | 1 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _1 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, | 2 = {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}. ==== Wartości zwracane ==== * Te tutaj ustawiane zmienne z kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. ===== Przypadek istnienia nazwy artykułu ===== Funkcja zwraca kolejno elementy, jeśli parametr: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}. ==== Strona niebieżąca, ale niekorzystana, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/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}} - gdu 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/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/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: * brak. ==== {{Ś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 skrotowa funkcji: <syntaxhighlight lang="lua"> local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Gdy artykuł jest analizowany, wtedy jeśli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{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. Elementy tablicowe książkowe: * {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}} - 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/Tom I}}. * {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}} - 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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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łuzy 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/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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/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 wwartość 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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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 powaidomienia, niezależnie od rodzaju strony zbiorczej, czy jest nią. Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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/Tom V}}. | 6 = {{Code|kod}} | _6 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tab_numer}} | _7 = Jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, przy istnieniu tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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}} === Dunkcja 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> Parametry funkcji: {{OpisParametrów | 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/Tom V}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/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}} ==== ; Gdy parametr{{dk}} {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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óznicą 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> Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}: {{OpisParametrów | 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 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}}. Definicji skrótowa funkcji: <syntaxhighlight lang="lua"> local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end; </syntaxhighlight> Parametry funkcji: * Brak. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 4hq02ramgr9hlzq06qiesxx8axmd6n3 556576 556575 2026-09-15T14:23:39Z Persino 2851 /* Zwracane parametry, gdy coś jest nie tak z nią, lub strona nie została przeanalizowana, tzn. informacje o niej nie zostały zebrane */ 556576 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|czy_artykul_korzystany}} | _3 = Jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} | _5 = Jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji {{ZobaczTeż|parametry artykułu}}: {{OpisParametrów | 1 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _1 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, | 2 = {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}. ==== Wartości zwracane ==== * Te tutaj ustawiane zmienne z kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. ===== Przypadek istnienia nazwy artykułu ===== Funkcja zwraca kolejno elementy, jeśli parametr: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}. ==== Strona niebieżąca, ale niekorzystana, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/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/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/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: * brak. ==== {{Ś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 skrotowa funkcji: <syntaxhighlight lang="lua"> local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Gdy artykuł jest analizowany, wtedy jeśli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{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. Elementy tablicowe książkowe: * {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}} - 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/Tom I}}. * {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}} - 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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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łuzy 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/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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/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 wwartość 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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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 powaidomienia, niezależnie od rodzaju strony zbiorczej, czy jest nią. Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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/Tom V}}. | 6 = {{Code|kod}} | _6 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tab_numer}} | _7 = Jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, przy istnieniu tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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}} === Dunkcja 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> Parametry funkcji: {{OpisParametrów | 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/Tom V}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/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}} ==== ; Gdy parametr{{dk}} {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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óznicą 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> Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}: {{OpisParametrów | 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 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}}. Definicji skrótowa funkcji: <syntaxhighlight lang="lua"> local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end; </syntaxhighlight> Parametry funkcji: * Brak. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 71bmwm5hcko9w8p2gbtt1gtuxr1po1z 556577 556576 2026-09-15T14:24:59Z Persino 2851 /* {{Śródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}{{Code|InneInformacjePrzebneDoAnalizowanejKsiazki}} */ 556577 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|czy_artykul_korzystany}} | _3 = Jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} | _5 = Jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji {{ZobaczTeż|parametry artykułu}}: {{OpisParametrów | 1 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _1 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, | 2 = {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}. ==== Wartości zwracane ==== * Te tutaj ustawiane zmienne z kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. ===== Przypadek istnienia nazwy artykułu ===== Funkcja zwraca kolejno elementy, jeśli parametr: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}. ==== Strona niebieżąca, ale niekorzystana, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/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/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/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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 skrotowa funkcji: <syntaxhighlight lang="lua"> local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Gdy artykuł jest analizowany, wtedy jeśli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{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. Elementy tablicowe książkowe: * {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}} - 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/Tom I}}. * {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}} - 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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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łuzy 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/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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/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 wwartość 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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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 powaidomienia, niezależnie od rodzaju strony zbiorczej, czy jest nią. Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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/Tom V}}. | 6 = {{Code|kod}} | _6 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tab_numer}} | _7 = Jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, przy istnieniu tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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}} === Dunkcja 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> Parametry funkcji: {{OpisParametrów | 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/Tom V}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/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}} ==== ; Gdy parametr{{dk}} {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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óznicą 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> Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}: {{OpisParametrów | 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 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}}. Definicji skrótowa funkcji: <syntaxhighlight lang="lua"> local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end; </syntaxhighlight> Parametry funkcji: * Brak. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 8gtqnk08bm7ut71hq1jbqh0a8fi00qt 556578 556577 2026-09-15T14:29:08Z Persino 2851 /* {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} */ 556578 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|czy_artykul_korzystany}} | _3 = Jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} | _5 = Jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji {{ZobaczTeż|parametry artykułu}}: {{OpisParametrów | 1 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _1 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, | 2 = {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}. ==== Wartości zwracane ==== * Te tutaj ustawiane zmienne z kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. ===== Przypadek istnienia nazwy artykułu ===== Funkcja zwraca kolejno elementy, jeśli parametr: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}. ==== Strona niebieżąca, ale niekorzystana, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/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/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/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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 skrotowa funkcji: <syntaxhighlight lang="lua"> local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Gdy artykuł jest analizowany, wtedy jeśli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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}} {{Patrz|dodatkowe_strony_woluminu}} i {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, elementu: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, tymi saamymi elementami, ale dla innej strony, tzn.: {{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. Elementy tablicowe książkowe: * {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}} - 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/Tom I}}. * {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}} - 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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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łuzy 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/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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/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 wwartość 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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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 powaidomienia, niezależnie od rodzaju strony zbiorczej, czy jest nią. Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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/Tom V}}. | 6 = {{Code|kod}} | _6 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tab_numer}} | _7 = Jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, przy istnieniu tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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}} === Dunkcja 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> Parametry funkcji: {{OpisParametrów | 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/Tom V}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/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}} ==== ; Gdy parametr{{dk}} {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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óznicą 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> Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}: {{OpisParametrów | 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 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}}. Definicji skrótowa funkcji: <syntaxhighlight lang="lua"> local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end; </syntaxhighlight> Parametry funkcji: * Brak. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> klia0fct74859zoyzyynk0wdw6crixx 556579 556578 2026-09-15T14:32:51Z Persino 2851 /* Pierwsza anonimowa funkcja */ 556579 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|czy_artykul_korzystany}} | _3 = Jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} | _5 = Jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji {{ZobaczTeż|parametry artykułu}}: {{OpisParametrów | 1 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _1 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, | 2 = {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}. ==== Wartości zwracane ==== * Te tutaj ustawiane zmienne z kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. ===== Przypadek istnienia nazwy artykułu ===== Funkcja zwraca kolejno elementy, jeśli parametr: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}. ==== Strona niebieżąca, ale niekorzystana, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/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/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/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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 skrotowa funkcji: <syntaxhighlight lang="lua"> local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Gdy artykuł jest analizowany, wtedy jeśli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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 saamymi elementami, ale dla innej strony, tzn.: {{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. Elementy tablicowe książkowe: * {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}} - 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/Tom I}}. * {{Code|tablica_ksiazki_strona}} {{Patrz|tablica_ksiazki_strona}} - 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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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łuzy 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/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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/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 wwartość 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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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 powaidomienia, niezależnie od rodzaju strony zbiorczej, czy jest nią. Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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/Tom V}}. | 6 = {{Code|kod}} | _6 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tab_numer}} | _7 = Jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, przy istnieniu tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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}} === Dunkcja 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> Parametry funkcji: {{OpisParametrów | 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/Tom V}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/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}} ==== ; Gdy parametr{{dk}} {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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óznicą 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> Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}: {{OpisParametrów | 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 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}}. Definicji skrótowa funkcji: <syntaxhighlight lang="lua"> local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end; </syntaxhighlight> Parametry funkcji: * Brak. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> py7g9cuc0mrd7fvw3o1mukjjnfgdg83 556580 556579 2026-09-15T14:38:10Z Persino 2851 /* Pierwsza anonimowa funkcja */ 556580 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|czy_artykul_korzystany}} | _3 = Jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} | _5 = Jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji {{ZobaczTeż|parametry artykułu}}: {{OpisParametrów | 1 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _1 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, | 2 = {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}. ==== Wartości zwracane ==== * Te tutaj ustawiane zmienne z kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. ===== Przypadek istnienia nazwy artykułu ===== Funkcja zwraca kolejno elementy, jeśli parametr: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}. ==== Strona niebieżąca, ale niekorzystana, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/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/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/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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 skrotowa funkcji: <syntaxhighlight lang="lua"> local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Gdy artykuł jest analizowany, wtedy jeśli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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. Elementy tablicowe książkowe: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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łuzy 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/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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/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 wwartość 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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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 powaidomienia, niezależnie od rodzaju strony zbiorczej, czy jest nią. Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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/Tom V}}. | 6 = {{Code|kod}} | _6 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tab_numer}} | _7 = Jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, przy istnieniu tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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}} === Dunkcja 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> Parametry funkcji: {{OpisParametrów | 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/Tom V}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/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}} ==== ; Gdy parametr{{dk}} {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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óznicą 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> Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}: {{OpisParametrów | 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 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}}. Definicji skrótowa funkcji: <syntaxhighlight lang="lua"> local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end; </syntaxhighlight> Parametry funkcji: * Brak. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> duzxh158l1rye28cy5thl2yqspm9ag3 556581 556580 2026-09-15T14:41:46Z Persino 2851 /* Druga anonimowa funkcji */ 556581 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|czy_artykul_korzystany}} | _3 = Jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} | _5 = Jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji {{ZobaczTeż|parametry artykułu}}: {{OpisParametrów | 1 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _1 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, | 2 = {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}. ==== Wartości zwracane ==== * Te tutaj ustawiane zmienne z kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. ===== Przypadek istnienia nazwy artykułu ===== Funkcja zwraca kolejno elementy, jeśli parametr: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}. ==== Strona niebieżąca, ale niekorzystana, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/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/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/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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 skrotowa funkcji: <syntaxhighlight lang="lua"> local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Gdy artykuł jest analizowany, wtedy jeśli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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. Elementy tablicowe książkowe: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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/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 wwartość 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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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 powaidomienia, niezależnie od rodzaju strony zbiorczej, czy jest nią. Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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/Tom V}}. | 6 = {{Code|kod}} | _6 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tab_numer}} | _7 = Jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, przy istnieniu tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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}} === Dunkcja 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> Parametry funkcji: {{OpisParametrów | 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/Tom V}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/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}} ==== ; Gdy parametr{{dk}} {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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óznicą 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> Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}: {{OpisParametrów | 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 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}}. Definicji skrótowa funkcji: <syntaxhighlight lang="lua"> local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end; </syntaxhighlight> Parametry funkcji: * Brak. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> cpqj8cnpxlk9bvmnq76mcv4r57qet29 556582 556581 2026-09-15T14:49:52Z Persino 2851 /* {{Śródtytuł|PrzekierownieAwaryjne}}{{Code|PrzekierownieAwaryjne}} */ 556582 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|czy_artykul_korzystany}} | _3 = Jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} | _5 = Jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji {{ZobaczTeż|parametry artykułu}}: {{OpisParametrów | 1 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _1 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, | 2 = {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}. ==== Wartości zwracane ==== * Te tutaj ustawiane zmienne z kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. ===== Przypadek istnienia nazwy artykułu ===== Funkcja zwraca kolejno elementy, jeśli parametr: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}. ==== Strona niebieżąca, ale niekorzystana, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/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/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/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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 skrotowa funkcji: <syntaxhighlight lang="lua"> local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Gdy artykuł jest analizowany, wtedy jeśli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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. Elementy tablicowe książkowe: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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 powaidomienia, niezależnie od rodzaju strony zbiorczej, czy jest nią. Jeśli {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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/Tom V}}. | 6 = {{Code|kod}} | _6 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tab_numer}} | _7 = Jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, przy istnieniu tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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}} === Dunkcja 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> Parametry funkcji: {{OpisParametrów | 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/Tom V}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/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}} ==== ; Gdy parametr{{dk}} {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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óznicą 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> Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}: {{OpisParametrów | 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 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}}. Definicji skrótowa funkcji: <syntaxhighlight lang="lua"> local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end; </syntaxhighlight> Parametry funkcji: * Brak. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 75ys48ku9uwej12czwgaw1rw1jxmlea 556583 556582 2026-09-15T14:51:50Z Persino 2851 /* {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} */ 556583 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|czy_artykul_korzystany}} | _3 = Jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} | _5 = Jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji {{ZobaczTeż|parametry artykułu}}: {{OpisParametrów | 1 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _1 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, | 2 = {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}. ==== Wartości zwracane ==== * Te tutaj ustawiane zmienne z kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. ===== Przypadek istnienia nazwy artykułu ===== Funkcja zwraca kolejno elementy, jeśli parametr: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}. ==== Strona niebieżąca, ale niekorzystana, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/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/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/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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 skrotowa funkcji: <syntaxhighlight lang="lua"> local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Gdy artykuł jest analizowany, wtedy jeśli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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. Elementy tablicowe książkowe: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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/Tom V}}. | 6 = {{Code|kod}} | _6 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tab_numer}} | _7 = Jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, przy istnieniu tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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}} === Dunkcja 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> Parametry funkcji: {{OpisParametrów | 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/Tom V}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/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}} ==== ; Gdy parametr{{dk}} {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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óznicą 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> Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}: {{OpisParametrów | 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 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}}. Definicji skrótowa funkcji: <syntaxhighlight lang="lua"> local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end; </syntaxhighlight> Parametry funkcji: * Brak. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 3mswsul9jkkai9y8pzrjai75ev4zo74 556584 556583 2026-09-15T14:56:33Z Persino 2851 /* {{Śródtytuł|GeneralnaAnalizaSzablonuStronicowegoParsera}}{{Code|GeneralnaAnalizaSzablonuStronicowegoParsera}} */ 556584 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|czy_artykul_korzystany}} | _3 = Jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} | _5 = Jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji {{ZobaczTeż|parametry artykułu}}: {{OpisParametrów | 1 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _1 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, | 2 = {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}. ==== Wartości zwracane ==== * Te tutaj ustawiane zmienne z kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. ===== Przypadek istnienia nazwy artykułu ===== Funkcja zwraca kolejno elementy, jeśli parametr: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}. ==== Strona niebieżąca, ale niekorzystana, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/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/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/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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 skrotowa funkcji: <syntaxhighlight lang="lua"> local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Gdy artykuł jest analizowany, wtedy jeśli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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. Elementy tablicowe książkowe: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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/Tom V}}. | 6 = {{Code|kod}} | _6 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tab_numer}} | _7 = Jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, przy istnieniu tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/Tom V}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/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}} ==== ; Gdy parametr{{dk}} {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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óznicą 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> Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}: {{OpisParametrów | 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 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}}. Definicji skrótowa funkcji: <syntaxhighlight lang="lua"> local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end; </syntaxhighlight> Parametry funkcji: * Brak. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 6kq10l4dmfvwf33bd2eueh1ov1seerw 556585 556584 2026-09-15T14:58:04Z Persino 2851 /* {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} */ 556585 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|czy_artykul_korzystany}} | _3 = Jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} | _5 = Jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji {{ZobaczTeż|parametry artykułu}}: {{OpisParametrów | 1 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _1 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, | 2 = {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}. ==== Wartości zwracane ==== * Te tutaj ustawiane zmienne z kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. ===== Przypadek istnienia nazwy artykułu ===== Funkcja zwraca kolejno elementy, jeśli parametr: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}. ==== Strona niebieżąca, ale niekorzystana, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/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/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/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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 skrotowa funkcji: <syntaxhighlight lang="lua"> local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Gdy artykuł jest analizowany, wtedy jeśli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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. Elementy tablicowe książkowe: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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/Tom V}}. | 6 = {{Code|kod}} | _6 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tab_numer}} | _7 = Jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, przy istnieniu tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/Tom V}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/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}} ==== ; Gdy parametr{{dk}} {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}: {{OpisParametrów | 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 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}}. Definicji skrótowa funkcji: <syntaxhighlight lang="lua"> local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end; </syntaxhighlight> Parametry funkcji: * Brak. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> pexseaui70jwje38sz1k8kxotpoqtm5 556586 556585 2026-09-15T15:00:40Z Persino 2851 /* {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} */ 556586 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|czy_artykul_korzystany}} | _3 = Jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} | _5 = Jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji {{ZobaczTeż|parametry artykułu}}: {{OpisParametrów | 1 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _1 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, | 2 = {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}. ==== Wartości zwracane ==== * Te tutaj ustawiane zmienne z kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. ===== Przypadek istnienia nazwy artykułu ===== Funkcja zwraca kolejno elementy, jeśli parametr: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}. ==== Strona niebieżąca, ale niekorzystana, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/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/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/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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 skrotowa funkcji: <syntaxhighlight lang="lua"> local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Gdy artykuł jest analizowany, wtedy jeśli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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. Elementy tablicowe książkowe: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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/Tom V}}. | 6 = {{Code|kod}} | _6 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tab_numer}} | _7 = Jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, przy istnieniu tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/Tom V}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/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}} ==== ; Gdy parametr{{dk}} {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}: {{OpisParametrów | 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 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}}. Definicji skrótowa funkcji: <syntaxhighlight lang="lua"> local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Brak. | nagłówek1 = tak }} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 8grmq6vrrok89q5it4v0exrssh8evwj 556587 556586 2026-09-15T15:01:11Z Persino 2851 /* {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} */ 556587 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|czy_artykul_korzystany}} | _3 = Jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} | _5 = Jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji {{ZobaczTeż|parametry artykułu}}: {{OpisParametrów | 1 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _1 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, | 2 = {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}. ==== Wartości zwracane ==== * Te tutaj ustawiane zmienne z kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. ===== Przypadek istnienia nazwy artykułu ===== Funkcja zwraca kolejno elementy, jeśli parametr: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}. ==== Strona niebieżąca, ale niekorzystana, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/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/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/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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 skrotowa funkcji: <syntaxhighlight lang="lua"> local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Gdy artykuł jest analizowany, wtedy jeśli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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. Elementy tablicowe książkowe: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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/Tom V}}. | 6 = {{Code|kod}} | _6 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tab_numer}} | _7 = Jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, przy istnieniu tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/Tom V}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/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}} ==== ; Gdy parametr{{dk}} {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}: {{OpisParametrów | 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 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}}. Definicji skrótowa funkcji: <syntaxhighlight lang="lua"> local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Brak. | komórka1 = tak }} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 5ciqem7t7tnllztpebcg0leghmpc9ox 556588 556587 2026-09-15T15:03:41Z Persino 2851 /* {{Śródtytuł|KtorySzablonMaZwracacKategorieNaglowek}}{{Code|KtorySzablonMaZwracacKategorieNaglowek}} */ 556588 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|czy_artykul_korzystany}} | _3 = Jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} | _5 = Jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji {{ZobaczTeż|parametry artykułu}}: {{OpisParametrów | 1 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _1 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, | 2 = {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}. ==== Wartości zwracane ==== * Te tutaj ustawiane zmienne z kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. ===== Przypadek istnienia nazwy artykułu ===== Funkcja zwraca kolejno elementy, jeśli parametr: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}. ==== Strona niebieżąca, ale niekorzystana, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/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/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/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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 skrotowa funkcji: <syntaxhighlight lang="lua"> local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Gdy artykuł jest analizowany, wtedy jeśli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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. Elementy tablicowe książkowe: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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/Tom V}}. | 6 = {{Code|kod}} | _6 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tab_numer}} | _7 = Jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, przy istnieniu tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/Tom V}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/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/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> Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}: {{OpisParametrów | 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 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}}. Definicji skrótowa funkcji: <syntaxhighlight lang="lua"> local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Brak. | komórka1 = tak }} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 473ovro860r82oj3kdaxzhh1vc0jxe8 556589 556588 2026-09-15T15:05:21Z Persino 2851 /* {{Śródtytuł|KtorySzablonMaZwracacKategorieTekst}}{{Code|KtorySzablonMaZwracacKategorieTekst}} */ 556589 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|czy_artykul_korzystany}} | _3 = Jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} | _5 = Jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji {{ZobaczTeż|parametry artykułu}}: {{OpisParametrów | 1 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _1 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, | 2 = {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}. ==== Wartości zwracane ==== * Te tutaj ustawiane zmienne z kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. ===== Przypadek istnienia nazwy artykułu ===== Funkcja zwraca kolejno elementy, jeśli parametr: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}. ==== Strona niebieżąca, ale niekorzystana, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/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/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/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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 skrotowa funkcji: <syntaxhighlight lang="lua"> local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Gdy artykuł jest analizowany, wtedy jeśli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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. Elementy tablicowe książkowe: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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/Tom V}}. | 6 = {{Code|kod}} | _6 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tab_numer}} | _7 = Jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, przy istnieniu tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/Tom V}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/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/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> Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Brak. | komórka1 = tak }} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 8nff1b9pbva0m2dnib2wo21ixe67eoo 556590 556589 2026-09-15T15:06:58Z Persino 2851 /* {{Śródtytuł|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}}{{Code|CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu}} */ 556590 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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 3 = {{Code|czy_artykul_korzystany}} | _3 = Jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 5 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} | _5 = Jak w: {{LinkPatrz|czy_szablon_pudelkowy_strony_zbiorczej|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji {{ZobaczTeż|parametry artykułu}}: {{OpisParametrów | 1 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _1 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, | 2 = {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}. ==== Wartości zwracane ==== * Te tutaj ustawiane zmienne z kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}. ===== Przypadek istnienia nazwy artykułu ===== Funkcja zwraca kolejno elementy, jeśli parametr: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}. ==== Strona niebieżąca, ale niekorzystana, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/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/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/Tom III}}, fałsz: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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 skrotowa funkcji: <syntaxhighlight lang="lua"> local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}. Gdy artykuł jest analizowany, wtedy jeśli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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. Elementy tablicowe książkowe: {{OpisParametrów | 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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/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> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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/Tom V}}. | 6 = {{Code|kod}} | _6 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}}. | 7 = {{Code|tab_numer}} | _7 = Jak w: {{LinkPatrz|tab_numer|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, przy istnieniu tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/Tom V}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/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> Parametry funkcji: {{OpisParametrów | 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/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/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> Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}: {{OpisParametrów | 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> Parametry funkcji: {{OpisParametrów | 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łókiem dodatnim równaniowym, czy tam znajduje się jakiolwiek {{s|Śródtytuł}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyJestTakiProblemJakoElementTablicySzablonuNapisuWprowadzeniaTekstuPozaNim()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Brak. | komórka1 = tak }} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 18wai6245nnitt8w1kquxfyzlkvfycw Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI/Część II 4 64134 556591 556352 2026-09-15T15:50:50Z Persino 2851 /* Spisy książki */ 556591 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/Tom VI/Część I}}}}, ze strony: {{lr2|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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, wtedy funkcja się zakańcza z wartością wskazywanym przez jego drugi parametr, czyli z: {{Code|wynik_bledu}} * Jeżeli jego pierwsza wartość istnieje. 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/Tom VI/Część I}}), który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. * Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}} (to jest nic innego jak: {{Code|artykul}} {{LinkPatrz|artykul|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}), mówiący, jaki jest artykuł bazowy danego przekierowania, czyli na co wskazuje przekierowaanie. ==== 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/Tom VI/Część I}}}}, zmiennej{{dk}} {{nobold|{{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}. * A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/Tom VI/Część I}}, istnieje aktualnej książki, co jest kluczem zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, i kod wyniku: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, którego w dalszej instrukcji warunkowej mamy w niej: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej: {{Code|artykul}} {{LinkPatrz|artykul|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, * Dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. A na samym końcu po tych instrukcjach warunkowych liczymy: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Tworzenie nazwy modułu ==== Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, z parametrów: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, która wywoływana jest bez parametrów. * Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ; Przedwczesne zakończenie funkcji z wartościami zwracanymi{{dk}} * Gdy zmienna: {{Code|wymik}} {{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/Tom I}}}}, jest o wartości odpowiadającej prawdziwej{{dk}} * Wtedy zmienne nazw odpowadają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/Tom VI/Część I}}, o kluczach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/Tom I}}}}{{dk}} * Jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{LinkPatrz|artykul_analizowany|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/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/Tom I}}, i dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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 innnej 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/Tom VI/Część I}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu|StronicowyParser/ZbieranieDanychStron/Tom VI/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_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, z kluczem: {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, i dalszym kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, wtedy wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Szablony tekstu ==== Dla artykułu korzystanego, według: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamiamy dwie tutaj funkcje, tzn.: * Pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne, nie informacji, zbierania artykułów w zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu: {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, przyjmującej ten parametr wartość prawdziwą. * A dla niekorzystanej dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{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/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/Tom VI/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/Tom I}}, o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/Tom VI/Część I}}, wtedy dajemy jej wartość: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. * Dalej dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/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/Tom VI/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> Parametry zwracane: {{OpisParametrów | 1 = {{Code|self.tabela_listy_danych_analizy_ksiazki}} | _1 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, | 2 = {{Code|tablica_zmiennych}} | _2 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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> p939jh44eu9sowlder4eykgjl905uld 556592 556591 2026-09-15T16:15:36Z Persino 2851 /* Spisy książki */ 556592 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/Tom VI/Część I}}}}, ze strony: {{lr2|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/Część I}}), który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}}}, zmiennej{{dk}} {{nobold|{{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}. * A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/Tom VI/Część I}}, istnieje aktualnej książki, co jest kluczem zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, i kod wyniku: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, którego w dalszej instrukcji warunkowej mamy w niej: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej: {{Code|artykul}} {{LinkPatrz|artykul|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, * Dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. A na samym końcu po tych instrukcjach warunkowych liczymy: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Tworzenie nazwy modułu ==== Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, z parametrów: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, która wywoływana jest bez parametrów. * Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ; Przedwczesne zakończenie funkcji z wartościami zwracanymi{{dk}} * Gdy zmienna: {{Code|wymik}} {{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/Tom I}}}}, jest o wartości odpowiadającej prawdziwej{{dk}} * Wtedy zmienne nazw odpowadają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/Tom VI/Część I}}, o kluczach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/Tom I}}}}{{dk}} * Jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{LinkPatrz|artykul_analizowany|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/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/Tom I}}, i dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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 innnej 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/Tom VI/Część I}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu|StronicowyParser/ZbieranieDanychStron/Tom VI/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_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, z kluczem: {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, i dalszym kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, wtedy wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Szablony tekstu ==== Dla artykułu korzystanego, według: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamiamy dwie tutaj funkcje, tzn.: * Pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne, nie informacji, zbierania artykułów w zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu: {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, przyjmującej ten parametr wartość prawdziwą. * A dla niekorzystanej dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{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/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/Tom VI/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/Tom I}}, o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/Tom VI/Część I}}, wtedy dajemy jej wartość: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. * Dalej dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/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/Tom VI/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> Parametry zwracane: {{OpisParametrów | 1 = {{Code|self.tabela_listy_danych_analizy_ksiazki}} | _1 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, | 2 = {{Code|tablica_zmiennych}} | _2 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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> ge1teule3rrl5y36vuxtr4zco0e3edn 556593 556592 2026-09-15T16:20:52Z Persino 2851 /* Operowanie na tablicy spisu książki */ 556593 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/Tom VI/Część I}}}}, ze strony: {{lr2|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/Część I}}), który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}}}, zmiennej{{dk}} {{nobold|{{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}. * A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/Tom VI/Część I}}, istnieje aktualnej książki, co jest kluczem zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, i kod wyniku: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, którego w dalszej instrukcji warunkowej mamy z niej: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej: {{Code|artykul}} {{LinkPatrz|artykul|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, * Dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. A na samym końcu po tych instrukcjach warunkowych liczymy: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Tworzenie nazwy modułu ==== Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, z parametrów: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, która wywoływana jest bez parametrów. * Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ; Przedwczesne zakończenie funkcji z wartościami zwracanymi{{dk}} * Gdy zmienna: {{Code|wymik}} {{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/Tom I}}}}, jest o wartości odpowiadającej prawdziwej{{dk}} * Wtedy zmienne nazw odpowadają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/Tom VI/Część I}}, o kluczach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/Tom I}}}}{{dk}} * Jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{LinkPatrz|artykul_analizowany|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/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/Tom I}}, i dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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 innnej 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/Tom VI/Część I}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu|StronicowyParser/ZbieranieDanychStron/Tom VI/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_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, z kluczem: {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, i dalszym kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, wtedy wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Szablony tekstu ==== Dla artykułu korzystanego, według: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamiamy dwie tutaj funkcje, tzn.: * Pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne, nie informacji, zbierania artykułów w zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu: {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, przyjmującej ten parametr wartość prawdziwą. * A dla niekorzystanej dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{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/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/Tom VI/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/Tom I}}, o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/Tom VI/Część I}}, wtedy dajemy jej wartość: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. * Dalej dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/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/Tom VI/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> Parametry zwracane: {{OpisParametrów | 1 = {{Code|self.tabela_listy_danych_analizy_ksiazki}} | _1 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, | 2 = {{Code|tablica_zmiennych}} | _2 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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> 8jmacy8j1xndcsjjjg5e69gf7z7vjrb 556594 556593 2026-09-15T16:21:32Z Persino 2851 /* Przekierowania dla stron bez spisu */ 556594 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/Tom VI/Część I}}}}, ze strony: {{lr2|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/Część I}}), który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}}}, zmiennej{{dk}} {{nobold|{{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}. * A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/Tom VI/Część I}}, istnieje aktualnej książki, co jest kluczem zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, i kod wyniku: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, którego w dalszej instrukcji warunkowej mamy z niej: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej: {{Code|artykul}} {{LinkPatrz|artykul|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, * Dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. A na samym końcu po tych instrukcjach warunkowych liczymy: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Tworzenie nazwy modułu ==== Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, z parametrów: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, która wywoływana jest bez parametrów. * Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom I}}}}, jest o wartości odpowiadającej prawdziwej{{dk}} * Wtedy zmienne nazw odpowadają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/Tom VI/Część I}}, o kluczach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/Tom I}}}}{{dk}} * Jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{LinkPatrz|artykul_analizowany|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/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/Tom I}}, i dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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 innnej 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/Tom VI/Część I}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu|StronicowyParser/ZbieranieDanychStron/Tom VI/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_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, z kluczem: {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, i dalszym kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, wtedy wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Szablony tekstu ==== Dla artykułu korzystanego, według: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamiamy dwie tutaj funkcje, tzn.: * Pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne, nie informacji, zbierania artykułów w zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu: {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, przyjmującej ten parametr wartość prawdziwą. * A dla niekorzystanej dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{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/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/Tom VI/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/Tom I}}, o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/Tom VI/Część I}}, wtedy dajemy jej wartość: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. * Dalej dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/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/Tom VI/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> Parametry zwracane: {{OpisParametrów | 1 = {{Code|self.tabela_listy_danych_analizy_ksiazki}} | _1 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, | 2 = {{Code|tablica_zmiennych}} | _2 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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> m1vydstq1qixi5e3365x7m7jk58tsgi 556595 556594 2026-09-15T16:23:40Z Persino 2851 /* Przekierowania dla stron bez spisu */ 556595 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/Tom VI/Część I}}}}, ze strony: {{lr2|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/Część I}}), który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}}}, zmiennej{{dk}} {{nobold|{{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}. * A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/Tom VI/Część I}}, istnieje aktualnej książki, co jest kluczem zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, i kod wyniku: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, którego w dalszej instrukcji warunkowej mamy z niej: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej: {{Code|artykul}} {{LinkPatrz|artykul|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, * Dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. A na samym końcu po tych instrukcjach warunkowych liczymy: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Tworzenie nazwy modułu ==== Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, z parametrów: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, która wywoływana jest bez parametrów. * Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}} jest zmienną o wartości prawdziwej, wtedy zmienną: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom I}}}}, jest o wartości odpowiadającej prawdziwej{{dk}} * Wtedy zmienne nazw odpowadają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/Tom VI/Część I}}, o kluczach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/Tom I}}}}{{dk}} * Jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{LinkPatrz|artykul_analizowany|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/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/Tom I}}, i dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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 innnej 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/Tom VI/Część I}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu|StronicowyParser/ZbieranieDanychStron/Tom VI/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_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, z kluczem: {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, i dalszym kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, wtedy wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Szablony tekstu ==== Dla artykułu korzystanego, według: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamiamy dwie tutaj funkcje, tzn.: * Pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne, nie informacji, zbierania artykułów w zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu: {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, przyjmującej ten parametr wartość prawdziwą. * A dla niekorzystanej dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{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/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/Tom VI/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/Tom I}}, o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/Tom VI/Część I}}, wtedy dajemy jej wartość: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. * Dalej dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/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/Tom VI/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> Parametry zwracane: {{OpisParametrów | 1 = {{Code|self.tabela_listy_danych_analizy_ksiazki}} | _1 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, | 2 = {{Code|tablica_zmiennych}} | _2 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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> 97rg7adsxalercr9axhgykr8pvrtg80 556596 556595 2026-09-15T16:24:45Z Persino 2851 /* Przekierowania dla stron bez spisu */ 556596 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/Tom VI/Część I}}}}, ze strony: {{lr2|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/Część I}}), który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}}}, zmiennej{{dk}} {{nobold|{{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}. * A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/Tom VI/Część I}}, istnieje aktualnej książki, co jest kluczem zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, i kod wyniku: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, którego w dalszej instrukcji warunkowej mamy z niej: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej: {{Code|artykul}} {{LinkPatrz|artykul|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, * Dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. A na samym końcu po tych instrukcjach warunkowych liczymy: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Tworzenie nazwy modułu ==== Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, z parametrów: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, która wywoływana jest bez parametrów. * Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/Tom I}}}}, jest o wartości odpowiadającej prawdziwej{{dk}} * Wtedy zmienne nazw odpowadają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/Tom VI/Część I}}, o kluczach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/Tom I}}}}{{dk}} * Jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{LinkPatrz|artykul_analizowany|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/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/Tom I}}, i dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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 innnej 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/Tom VI/Część I}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu|StronicowyParser/ZbieranieDanychStron/Tom VI/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_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, z kluczem: {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, i dalszym kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, wtedy wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Szablony tekstu ==== Dla artykułu korzystanego, według: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamiamy dwie tutaj funkcje, tzn.: * Pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne, nie informacji, zbierania artykułów w zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu: {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, przyjmującej ten parametr wartość prawdziwą. * A dla niekorzystanej dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{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/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/Tom VI/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/Tom I}}, o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/Tom VI/Część I}}, wtedy dajemy jej wartość: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. * Dalej dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/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/Tom VI/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> Parametry zwracane: {{OpisParametrów | 1 = {{Code|self.tabela_listy_danych_analizy_ksiazki}} | _1 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, | 2 = {{Code|tablica_zmiennych}} | _2 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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> k0iibx1f8d8jn5utobr80clxg27re5k 556597 556596 2026-09-15T16:25:31Z Persino 2851 /* Zmienne nazw danego bieżącego artykułu książki */ 556597 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/Tom VI/Część I}}}}, ze strony: {{lr2|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/Część I}}), który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}}}, zmiennej{{dk}} {{nobold|{{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}. * A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/Tom VI/Część I}}, istnieje aktualnej książki, co jest kluczem zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, i kod wyniku: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, którego w dalszej instrukcji warunkowej mamy z niej: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej: {{Code|artykul}} {{LinkPatrz|artykul|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, * Dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. A na samym końcu po tych instrukcjach warunkowych liczymy: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Tworzenie nazwy modułu ==== Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, z parametrów: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, która wywoływana jest bez parametrów. * Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/Część I}}, o kluczach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/Tom I}}}}{{dk}} * Jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{LinkPatrz|artykul_analizowany|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/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/Tom I}}, i dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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 innnej 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/Tom VI/Część I}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu|StronicowyParser/ZbieranieDanychStron/Tom VI/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_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, z kluczem: {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, i dalszym kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, wtedy wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Szablony tekstu ==== Dla artykułu korzystanego, według: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamiamy dwie tutaj funkcje, tzn.: * Pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne, nie informacji, zbierania artykułów w zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu: {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, przyjmującej ten parametr wartość prawdziwą. * A dla niekorzystanej dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{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/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/Tom VI/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/Tom I}}, o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/Tom VI/Część I}}, wtedy dajemy jej wartość: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. * Dalej dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/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/Tom VI/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> Parametry zwracane: {{OpisParametrów | 1 = {{Code|self.tabela_listy_danych_analizy_ksiazki}} | _1 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, | 2 = {{Code|tablica_zmiennych}} | _2 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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> q24vh1bs04c6g2etkq3sedn22bqvk74 556598 556597 2026-09-15T16:32:50Z Persino 2851 /* Przypadek innej strony aktualnej niż bieżącej */ 556598 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/Tom VI/Część I}}}}, ze strony: {{lr2|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/Część I}}), który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}}}, zmiennej{{dk}} {{nobold|{{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}. * A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/Tom VI/Część I}}, istnieje aktualnej książki, co jest kluczem zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, i kod wyniku: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, którego w dalszej instrukcji warunkowej mamy z niej: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej: {{Code|artykul}} {{LinkPatrz|artykul|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, * Dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. A na samym końcu po tych instrukcjach warunkowych liczymy: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Tworzenie nazwy modułu ==== Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, z parametrów: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, która wywoływana jest bez parametrów. * Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/Część I}}, o kluczach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/Tom I}}}}{{dk}} * Jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{LinkPatrz|artykul_analizowany|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/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/Tom I}}, i dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu|StronicowyParser/ZbieranieDanychStron/Tom VI/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_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, z kluczem: {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, i dalszym kluczem: {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, wtedy wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Szablony tekstu ==== Dla artykułu korzystanego, według: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamiamy dwie tutaj funkcje, tzn.: * Pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne, nie informacji, zbierania artykułów w zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu: {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, przyjmującej ten parametr wartość prawdziwą. * A dla niekorzystanej dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{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/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/Tom VI/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/Tom I}}, o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/Tom VI/Część I}}, wtedy dajemy jej wartość: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. * Dalej dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/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/Tom VI/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> Parametry zwracane: {{OpisParametrów | 1 = {{Code|self.tabela_listy_danych_analizy_ksiazki}} | _1 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, | 2 = {{Code|tablica_zmiennych}} | _2 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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> bc36yjw201h6wfvvuawd4du6i6drary 556599 556598 2026-09-15T16:35:12Z Persino 2851 /* Wystawienie do struktury tablic z danymi informacji o artykule */ 556599 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/Tom VI/Część I}}}}, ze strony: {{lr2|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/Część I}}), który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}}}, zmiennej{{dk}} {{nobold|{{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}. * A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/Tom VI/Część I}}, istnieje aktualnej książki, co jest kluczem zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, i kod wyniku: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, którego w dalszej instrukcji warunkowej mamy z niej: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej: {{Code|artykul}} {{LinkPatrz|artykul|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, * Dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. A na samym końcu po tych instrukcjach warunkowych liczymy: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Tworzenie nazwy modułu ==== Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, z parametrów: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, która wywoływana jest bez parametrów. * Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/Część I}}, o kluczach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/Tom I}}}}{{dk}} * Jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{LinkPatrz|artykul_analizowany|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/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/Tom I}}, i dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu|StronicowyParser/ZbieranieDanychStron/Tom VI/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_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, z kluczem: {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, i dalszym kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, wtedy wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Szablony tekstu ==== Dla artykułu korzystanego, według: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, uruchamiamy dwie tutaj funkcje, tzn.: * Pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne, nie informacji, zbierania artykułów w zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu: {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, przyjmującej ten parametr wartość prawdziwą. * A dla niekorzystanej dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{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/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/Tom VI/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/Tom I}}, o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/Tom VI/Część I}}, wtedy dajemy jej wartość: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. * Dalej dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/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/Tom VI/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> Parametry zwracane: {{OpisParametrów | 1 = {{Code|self.tabela_listy_danych_analizy_ksiazki}} | _1 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, | 2 = {{Code|tablica_zmiennych}} | _2 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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> 6dajmkmap44s5nn0fvzrs90gsikh2zr 556600 556599 2026-09-15T16:39:49Z Persino 2851 /* Szablony tekstu */ 556600 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/Tom VI/Część I}}}}, ze strony: {{lr2|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/Część I}}), który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}}}, zmiennej{{dk}} {{nobold|{{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}. * A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/Tom VI/Część I}}, istnieje aktualnej książki, co jest kluczem zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, i kod wyniku: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, którego w dalszej instrukcji warunkowej mamy z niej: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej: {{Code|artykul}} {{LinkPatrz|artykul|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, * Dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. A na samym końcu po tych instrukcjach warunkowych liczymy: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Tworzenie nazwy modułu ==== Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, z parametrów: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, która wywoływana jest bez parametrów. * Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/Część I}}, o kluczach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/Tom I}}}}{{dk}} * Jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{LinkPatrz|artykul_analizowany|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/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/Tom I}}, i dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu|StronicowyParser/ZbieranieDanychStron/Tom VI/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_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, z kluczem: {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, i dalszym kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, wtedy wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Szablony tekstu ==== Dla artykułu korzystanego, według: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu: {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, przyjmującej ten parametr wartość prawdziwą. * A dla niekorzystanej dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{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/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/Tom VI/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/Tom I}}, o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/Tom VI/Część I}}, wtedy dajemy jej wartość: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. * Dalej dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/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/Tom VI/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> Parametry zwracane: {{OpisParametrów | 1 = {{Code|self.tabela_listy_danych_analizy_ksiazki}} | _1 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, | 2 = {{Code|tablica_zmiennych}} | _2 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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> 1vqdw63f0t16fok1bjwxuqg5k0b53qb 556601 556600 2026-09-15T16:43:43Z Persino 2851 /* Niedokończone zbierania elementów spisowych o danej stronie niekorzystanej, gdy wcześniej było to niemożliwe */ 556601 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/Tom VI/Część I}}}}, ze strony: {{lr2|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/Część I}}), który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}}}, zmiennej{{dk}} {{nobold|{{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}. * A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/Tom VI/Część I}}, istnieje aktualnej książki, co jest kluczem zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, i kod wyniku: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, którego w dalszej instrukcji warunkowej mamy z niej: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej: {{Code|artykul}} {{LinkPatrz|artykul|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, * Dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. A na samym końcu po tych instrukcjach warunkowych liczymy: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Tworzenie nazwy modułu ==== Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, z parametrów: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, która wywoływana jest bez parametrów. * Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/Część I}}, o kluczach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/Tom I}}}}{{dk}} * Jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{LinkPatrz|artykul_analizowany|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/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/Tom I}}, i dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu|StronicowyParser/ZbieranieDanychStron/Tom VI/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_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, z kluczem: {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, i dalszym kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, wtedy wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Szablony tekstu ==== Dla artykułu korzystanego, według: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu: {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, przyjmującej ten parametr wartość prawdziwą. * A dla niekorzystanej dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom VI/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/Tom I}}, o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/Tom VI/Część I}}, wtedy dajemy jej wartość: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. * Dalej dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/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/Tom VI/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> Parametry zwracane: {{OpisParametrów | 1 = {{Code|self.tabela_listy_danych_analizy_ksiazki}} | _1 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, | 2 = {{Code|tablica_zmiennych}} | _2 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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> 8juo5razwt81sz5o40rnwb9e056oauz 556602 556601 2026-09-15T16:45:52Z Persino 2851 /* Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy */ 556602 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/Tom VI/Część I}}}}, ze strony: {{lr2|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/Część I}}), który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}}}, zmiennej{{dk}} {{nobold|{{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}. * A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/Tom VI/Część I}}, istnieje aktualnej książki, co jest kluczem zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, i kod wyniku: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, którego w dalszej instrukcji warunkowej mamy z niej: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej: {{Code|artykul}} {{LinkPatrz|artykul|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, * Dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. A na samym końcu po tych instrukcjach warunkowych liczymy: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Tworzenie nazwy modułu ==== Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, z parametrów: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, która wywoływana jest bez parametrów. * Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/Część I}}, o kluczach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/Tom I}}}}{{dk}} * Jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{LinkPatrz|artykul_analizowany|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/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/Tom I}}, i dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu|StronicowyParser/ZbieranieDanychStron/Tom VI/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_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, z kluczem: {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, i dalszym kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, wtedy wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Szablony tekstu ==== Dla artykułu korzystanego, według: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu: {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, wtedy przygotuwujemy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom VI/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/Tom I}}, o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/Tom VI/Część I}}, wtedy dajemy jej wartość: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. * Dalej dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/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/Tom VI/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> Parametry zwracane: {{OpisParametrów | 1 = {{Code|self.tabela_listy_danych_analizy_ksiazki}} | _1 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, | 2 = {{Code|tablica_zmiennych}} | _2 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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> 9k5vxugbj4horzhohjeujso2kjvdn5x 556603 556602 2026-09-15T16:53:11Z Persino 2851 /* Wystawienie do struktury tablic z danymi informacji o artykule */ 556603 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/Tom VI/Część I}}}}, ze strony: {{lr2|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/Część I}}), który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}}}, zmiennej{{dk}} {{nobold|{{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}. * A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/Tom VI/Część I}}, istnieje aktualnej książki, co jest kluczem zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, i kod wyniku: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, którego w dalszej instrukcji warunkowej mamy z niej: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej: {{Code|artykul}} {{LinkPatrz|artykul|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, * Dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. A na samym końcu po tych instrukcjach warunkowych liczymy: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Tworzenie nazwy modułu ==== Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, z parametrów: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, która wywoływana jest bez parametrów. * Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/Część I}}, o kluczach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/Tom I}}}}{{dk}} * Jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{LinkPatrz|artykul_analizowany|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/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/Tom I}}, i dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu|StronicowyParser/ZbieranieDanychStron/Tom VI/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}}, z kluczem: {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, i dalszym kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, wtedy wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Szablony tekstu ==== Dla artykułu korzystanego, według: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu: {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, wtedy przygotuwujemy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom VI/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/Tom I}}, o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/Tom VI/Część I}}, wtedy dajemy jej wartość: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. * Dalej dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/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/Tom VI/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> Parametry zwracane: {{OpisParametrów | 1 = {{Code|self.tabela_listy_danych_analizy_ksiazki}} | _1 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, | 2 = {{Code|tablica_zmiennych}} | _2 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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> ph1x82pggjlcerop4gq3721z47xr9bi 556604 556603 2026-09-15T16:54:10Z Persino 2851 /* Wystawienie do struktury tablic z danymi informacji o artykule */ 556604 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/Tom VI/Część I}}}}, ze strony: {{lr2|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/Część I}}), który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}}}, zmiennej{{dk}} {{nobold|{{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}. * A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/Tom VI/Część I}}, istnieje aktualnej książki, co jest kluczem zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, i kod wyniku: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, którego w dalszej instrukcji warunkowej mamy z niej: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej: {{Code|artykul}} {{LinkPatrz|artykul|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, * Dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. A na samym końcu po tych instrukcjach warunkowych liczymy: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Tworzenie nazwy modułu ==== Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, z parametrów: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, która wywoływana jest bez parametrów. * Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/Część I}}, o kluczach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/Tom I}}}}{{dk}} * Jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{LinkPatrz|artykul_analizowany|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/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/Tom I}}, i dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom I}}, z kluczem: {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, i dalszym kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, wtedy wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Szablony tekstu ==== Dla artykułu korzystanego, według: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu: {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, wtedy przygotuwujemy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom VI/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/Tom I}}, o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/Tom VI/Część I}}, wtedy dajemy jej wartość: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. * Dalej dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/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/Tom VI/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> Parametry zwracane: {{OpisParametrów | 1 = {{Code|self.tabela_listy_danych_analizy_ksiazki}} | _1 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, | 2 = {{Code|tablica_zmiennych}} | _2 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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> 0a13h8mx7dpytyzhf3ods9lc5jwpoqs 556605 556604 2026-09-15T16:56:34Z Persino 2851 /* Wystawienie do struktury tablic z danymi informacji o artykule */ 556605 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/Tom VI/Część I}}}}, ze strony: {{lr2|Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/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/Tom VI/Część I}}), który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}}}, zmiennej{{dk}} {{nobold|{{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}. * A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/Tom VI/Część I}}, istnieje aktualnej książki, co jest kluczem zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, i kod wyniku: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, którego w dalszej instrukcji warunkowej mamy z niej: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, która przyjmuje wartość zmiennej: {{Code|artykul}} {{LinkPatrz|artykul|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, * Dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. A na samym końcu po tych instrukcjach warunkowych liczymy: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Tworzenie nazwy modułu ==== Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, z parametrów: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, która wywoływana jest bez parametrów. * Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/Część I}}, o kluczach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/Tom VI/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/Tom I}}}}{{dk}} * Jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{LinkPatrz|artykul_analizowany|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/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/Tom VI/Część I}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/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/Tom VI/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/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/Tom VI/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/Tom I}}, i dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, z kluczem: {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, i dalszym kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom I}}, wtedy wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}. ==== Szablony tekstu ==== Dla artykułu korzystanego, według: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/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/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/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/Tom VI/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/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/Tom VI/Część I}}, tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}}, o kluczu: {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/Część I}}, wtedy przygotuwujemy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/ZbieranieDanychStron/Tom VI/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/Tom VI/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/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/Tom VI/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/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/Tom VI/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/Tom I}}, o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/Tom VI/Część I}}, wtedy dajemy jej wartość: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}. * Dalej dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/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/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/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/Tom VI/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> Parametry zwracane: {{OpisParametrów | 1 = {{Code|self.tabela_listy_danych_analizy_ksiazki}} | _1 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom VI/Część I}}, | 2 = {{Code|tablica_zmiennych}} | _2 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/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> ahf3ue4xm2719dbscgzvrcv5eeafm18 Szablon:OpisParametrów 10 64146 556610 556264 2026-09-15T18:10:44Z Persino 2851 556610 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów {{{klasa|}}}" {{#if:{{{styl|}}}|style="{{{styl|}}}"}}<!-- |+ <div class="OpisParametrów-tytuł">Parametry szablonu lub ramki, bądź funkcji bibliotecznej.</div>--> |- !{{!}} Lp. ! {{#if:{{{klasa|}}}|class="{{{klasa}}}"}} {{#if:{{{styl|}}}|style="{{{styl}}}"}} {{!}} Parametr ! {{!}} Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=| {{!}}- <!-- -->{{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{(((}}komórka{{((}}_{{))}}{{!}}{{)))}}{{!}}<!-- -->class{{=}}"OpisParametrów-{{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}nagłówek{{!}}komórka{{))}} {{(((}}klasa numeracji{{((}}_{{))}}{{!}}{{)))}}"{{!}}<!-- -->{{((}}#if:{{(((}}klasa numeracji{{((}}_{{))}}{{!}}{{)))}}{{!}}class{{=}}"{{(((}}klasa numeracji{{((}}_{{))}}{{)))}}"{{))}}<!-- -->{{))}} <!-- -->{{((}}#if:{{(((}}styl numeracji{{((}}_{{))}}{{!}}{{)))}}{{!}}style{{=}}"{{(((}}styl numeracji{{((}}_{{))}}{{)))}}"{{))}} {{!}}{{!}} <div>{{((}}_{{))}}</div> {{((}}#if:{{(((}}komórka{{((}}_{{))}}{{!}}{{)))}}{{!}}{{((}}!{{))}}{{!}}!{{))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{(((}}komórka{{((}}_{{))}}{{!}}{{)))}}{{!}}colspan{{=}}"2"{{))}} <!-- --> {{((}}#if:{{(((}}styl parametru{{((}}_{{))}}{{!}}{{)))}}{{!}}style{{=}}"{{(((}}styl parametru{{((}}_{{))}}{{)))}}"{{))}} <!-- --> {{((}}#if:{{(((}}klasa parametru{{((}}_{{))}}{{!}}{{)))}}{{!}}class{{=}}"{{(((}}klasa parametru{{((}}_{{))}}{{)))}}"{{))}} <!-- -->{{!}} <div>{{(((}}{{((}}_{{))}}{{)))}}</div> {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{(((}}komórka{{((}}_{{))}}{{!}}{{)))}}{{!}}{{!}}<!-- -->{{((}}!{{))}} <!-- --> {{((}}#if:{{(((}}styl wartości{{((}}_{{))}}{{!}}{{)))}}{{!}}style{{=}}"{{(((}}styl wartości{{((}}_{{))}}{{)))}}"{{))}} <!-- --> {{((}}#if:{{(((}}klasa wartości{{((}}_{{))}}{{!}}{{)))}}{{!}}class{{=}}"{{(((}}klasa wartości{{((}}_{{))}}{{)))}}"{{))}} <!-- --> {{((}}!{{))}} <div>{{(((}}_{{((}}_{{))}}{{)))}}</div><!-- -->{{))}}<!-- -->}} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{!}}klasa{{=}}{{!}}styl{{=}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}styl parametru{{((}}_{{))}}{{=}}{{!}}klasa parametru{{((}}_{{))}}{{=}}{{!}}styl wartości{{((}}_{{))}}{{=}}{{!}}klasa wartości{{((}}_{{))}}{{=}}{{!}}styl numeracji{{((}}_{{))}}{{=}}{{!}}klasa numeracji{{((}}_{{))}}{{=}}{{!}}nagłówek{{((}}_{{))}}{{=}}txt?;_{{((}}_{{))}};komórka{{((}}_{{))}}{{!}}komórka{{((}}_{{))}}{{=}}txt?;_{{((}}_{{))}};nagłówek{{((}}_{{))}}{{!}}_{{((}}_{{))}}{{=}}txt?!;nagłówek{{((}}_{{))}};komórka{{((}}_{{))}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> sswbts0agnth8od1oseufj6g12jifg7 556611 556610 2026-09-15T18:17:49Z Persino 2851 556611 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów {{{klasa|}}}" {{#if:{{{styl|}}}|style="{{{styl|}}}"}}<!-- |+ <div class="OpisParametrów-tytuł">Parametry szablonu lub ramki, bądź funkcji bibliotecznej.</div>--> |- !{{!}} Lp. ! {{#if:{{{klasa|}}}|class="{{{klasa}}}"}} {{#if:{{{styl|}}}|style="{{{styl}}}"}} {{!}} Parametr ! {{!}} Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=| {{!}}- <!-- -->{{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{(((}}komórka{{((}}_{{))}}{{!}}{{)))}}{{!}}<!-- -->class{{=}}"OpisParametrów-{{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}nagłówek{{!}}komórka{{))}} {{(((}}klasa wiersza{{((}}_{{))}}{{!}}{{)))}}"{{!}}<!-- -->{{((}}#if:{{(((}}klasa wiersza{{((}}_{{))}}{{!}}{{)))}}{{!}}class{{=}}"{{(((}}klasa wiersza{{((}}_{{))}}{{)))}}"{{))}}<!-- -->{{))}} <!-- -->{{((}}#if:{{(((}}styl wiersza{{((}}_{{))}}{{!}}{{)))}}{{!}}style{{=}}"{{(((}}styl wiersza{{((}}_{{))}}{{)))}}"{{))}} {{!}}{{!}} <div>{{((}}_{{))}}</div> {{((}}#if:{{(((}}komórka{{((}}_{{))}}{{!}}{{)))}}{{!}}{{((}}!{{))}}{{!}}!{{))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{(((}}komórka{{((}}_{{))}}{{!}}{{)))}}{{!}}colspan{{=}}"2"{{))}} <!-- --> {{((}}#if:{{(((}}styl parametru{{((}}_{{))}}{{!}}{{)))}}{{!}}style{{=}}"{{(((}}styl parametru{{((}}_{{))}}{{)))}}"{{))}} <!-- --> {{((}}#if:{{(((}}klasa parametru{{((}}_{{))}}{{!}}{{)))}}{{!}}class{{=}}"{{(((}}klasa parametru{{((}}_{{))}}{{)))}}"{{))}} <!-- -->{{!}} <div>{{(((}}{{((}}_{{))}}{{)))}}</div> {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{(((}}komórka{{((}}_{{))}}{{!}}{{)))}}{{!}}{{!}}<!-- -->{{((}}!{{))}} <!-- --> {{((}}#if:{{(((}}styl wartości{{((}}_{{))}}{{!}}{{)))}}{{!}}style{{=}}"{{(((}}styl wartości{{((}}_{{))}}{{)))}}"{{))}} <!-- --> {{((}}#if:{{(((}}klasa wartości{{((}}_{{))}}{{!}}{{)))}}{{!}}class{{=}}"{{(((}}klasa wartości{{((}}_{{))}}{{)))}}"{{))}} <!-- --> {{((}}!{{))}} <div>{{(((}}_{{((}}_{{))}}{{)))}}</div><!-- -->{{))}}<!-- -->}} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{!}}klasa{{=}}{{!}}styl{{=}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}styl parametru{{((}}_{{))}}{{=}}{{!}}klasa parametru{{((}}_{{))}}{{=}}{{!}}styl wartości{{((}}_{{))}}{{=}}{{!}}klasa wartości{{((}}_{{))}}{{=}}{{!}}styl wiersza{{((}}_{{))}}{{=}}{{!}}klasa wiersza{{((}}_{{))}}{{=}}{{!}}nagłówek{{((}}_{{))}}{{=}}txt?;_{{((}}_{{))}};komórka{{((}}_{{))}}{{!}}komórka{{((}}_{{))}}{{=}}txt?;_{{((}}_{{))}};nagłówek{{((}}_{{))}}{{!}}_{{((}}_{{))}}{{=}}txt?!;nagłówek{{((}}_{{))}};komórka{{((}}_{{))}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> m1cpepmqvewmzwuevd7vxpw1cpgfyhq