Wikibooks
plwikibooks
https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna
MediaWiki 1.47.0-wmf.18
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
Niemiecki/Gramatyka
0
21031
554565
547727
2026-09-06T07:31:48Z
EdytaT
2664
/* Rzeczownik (Substantiv/Nomen) */
554565
wikitext
text/x-wiki
{{Rozdział|[[Niemiecki|Język niemiecki]]|Gramatyka}}
== Gramatyka ==
Język niemiecki należy do [[w:język fleksyjny|języków fleksyjnych]] bazujących na [[w:deklinacja (językoznawstwo)|deklinacji]] i [[w:koniugacja (językoznawstwo)|koniugacji]]. Koniugacja w języku niemieckim jest w porównaniu z innymi językami stosunkowo mocno rozbudowana. Natomiast deklinacja w porównaniu z deklinacją w łacinie czy w języku polskim jest stosunkowo uboga i obejmuje zaledwie cztery przypadki.
== Części mowy (''Wortarten'') ==
=== Czasownik (''Verb'') ===
Koniugacja czasowników obejmuje:
: odmianę przez osoby (''Person'')
: liczbę (''Numerus'')
: tryb (''Modus'')
: czas (''Tempus'')
: stronę (''Genus'')
* [[Niemiecki/Gramatyka/Koniugacja/Koniugacja czasowników z angielskiego|Koniugacja czasowników pochodzących z języka angielskiego (''Konjugation von Verben aus dem Englischen'')]]
==== Czasy (''Tempora'') ====
* [[Niemiecki/Gramatyka/Różnica Perfekt-Imperfekt|Różnica między Perfektem a Imperfekten (''Der Unterschied zwischen Perfekt und Imperfekt'')]]
* [[Niemiecki/Gramatyka/Perfekt z haben lub sein|Czas przeszły złożony z ''haben'' lub ''sein'' (''Das Perfekt mit haben oder sein'')]]
* [[Niemiecki/Exc|Ćwiczenia (''Übungen'')]]
==== Rekcja (''Rektion)'' ====
* [[Niemiecki/Gramatyka/Rekcja-Czasownik|Rekcja czasowników (''Rektion der Verben'')]]
* [[Niemiecki/Gramatyka/Tabela-Czasowniki|Tabela czasowników nieregularnych i mocnych (''Tabelle der unregelmäßigen und starken Verben'')]]
* [[Niemiecki/Exc/Formy_Czasowniki|Ćwiczenia (''Übungen'')]]
=== Rzeczownik (''Substantiv''/''Nomen'') ===
Deklinacja w języku niemieckim wyróżnia cztery przypadki i dwie liczby:
: Nominativ Sing./Pl.
: Genitiv Sing./Pl.
: Dativ Sing./Pl.
: Akkusativ Sing./Pl.
* [[Niemiecki/Gramatyka/Deklinacja nazw własnych|Deklinacja nazw własnych (''Deklination von Eigennamen'')]]
* [[Niemiecki/Gramatyka/Deklinacja nazw języków|Deklinacja nazw języków (''Deklination von Sprachnamen'')]]
* [[Niemiecki/Gramatyka/Deklinacja nazw miesięcy i dni tygodnia|Deklinacja nazw miesięcy i dni tygodnia (''Deklination von Monats- und Wochentagsnamen'')]]
=== [[Niemiecki/Gramatyka/Przedimek|Przedimek (''Artikelwort'')]] ===
=== [[Niemiecki/Gramatyka/Rodzajnik|Rodzajnik (''Artikel'')]] ===
* [[Niemiecki/Gramatyka/Klasyfikacja rodzajników|Klasyfikacja rodzajników (''Klassifizierung von Artikeln'')]]
:* [[Niemiecki/Gramatyka/Rodzajnik#Rodzajniki określone|Rodzajnik określony (''bestimmter Artikel'')]]
:* [[Niemiecki/Gramatyka/Rodzajnik#Rodzajniki nieokreślone|Rodzajnik nieokreślony (''unbestimmter Artikel'')]]
* [[Niemiecki/Gramatyka/Użycie rodzajnika przy nazwach państw, miast i przy innych nazwach własnych|Użycie rodzajnika przy nazwach własnych (''Artikelgebrauch bei Eigennamen'')]]
=== [[Niemiecki/Gramatyka/Zaimek|Zaimek (''Pronomen'')]] ===
:* [[Niemiecki/Gramatyka/Zaimek osobowy|Zaimek osobowy (''Personalpronomen'')]]
=== Liczebnik (''Zahlwort'') ===
:* [[Niemiecki/Gramatyka/Użycie zaimków przed rzeczownikiem lub w zastępstwie rzeczownika|Użycie zaimków przed rzeczownikiem lub w zastępstwie rzeczownika (''Gebrauch von Pronomen als Begleiter oder Stellvertreter des Substantivs'')]]
:* [[Niemiecki/Gramatyka/Użycie zaimków dessen, deren i derer|Użycie zaimków dessen, deren i derer (''Gebrauch von Pronomen dessen, deren und derer'')]]
=== Przyimek (''Präposition'') ===
* [[Niemiecki/Gramatyka/Przyimek|Przyimek (''Präposition'')]]
* [[Niemiecki/Gramatyka/Rekcja-Przyimek|Rekcja przyimków (''Rektion der Präpositionen'')]]
=== Przymiotnik (''Adjektiv'') ===
* [[Niemiecki/Gramatyka/Klasyfikacja przymiotników|Klasyfikacja przymiotników (''Klassifizierung von Adjektiven'')]]
:* [[Niemiecki/Gramatyka/Przymiotniki nieodmienne|Przymiotniki nieodmienne (''Indeklinable Adjektive'')]].
* [[Niemiecki/Gramatyka/Deklinacja przymiotników|Deklinacja przymiotników (''Deklination der Adjektive'')]]
* [[Niemiecki/Gramatyka/Stopniowanie przymiotników|Stopniowanie przymiotników (''Steigerung von Adjektiven'')]]
* [[Niemiecki/Gramatyka/Przymiotnik vs. przysłówek|Przymiotnik vs. przysłówek - różnice w języku niemieckim i polskim]]
=== Przysłówek (''Adverb'') ===
* [[Niemiecki/Gramatyka/Przymiotnik vs. przysłówek|Przymiotnik vs. przysłówek - różnice w języku niemieckim i polskim]]
* [[Niemiecki/Gramatyka/Klasyfikacja przysłówków|Klasyfikacja przysłówków (''Klassifikation der Adverbien'')]]
* [[Niemiecki/Gramatyka/Przysłówki zaimkowe|Przysłówki zaimkowe (''Pronominaladverbien'')]]
* [[Niemiecki/Gramatyka/Liczebniki wielokrotne|Liczebniki wielokrotne (''Wiederholungszahlwörter'')]]
=== Partykuła (''Partikel'') ===
=== Spójnik (''Konjunktion'') ===
* [[Niemiecki/Gramatyka/Klasyfikacja spójników|Klasyfikacja spójników]]
== Składnia (''Satzlehre'', ''Syntax'') ==
=== Części zdania (''Satzglieder'') ===
==== Podmiot (''Subjekt'') ====
==== Orzeczenie (''Prädikat'') ====
Ciekawostki:
* Przeczenie ''nicht'' należy do tej części zdania, do której się odnosi (np. ''Ich komme nicht'' do orzeczenia).
* Czasowniki ''sein'', ''werden'', ''bleiben'', ''heißen'', ''gelten'' wymagają orzecznika (''Prädikativ'')
==== Dopełnienie (''Objekt'') ====
* Dopełnienie bliższe w bierniku (''Akkusativobjekt'')
* Dopełnienie bliższe w celowniku('' Dativobjekt'')
* Dopełnienie bliższe w dopełniaczu (''Genitivobjekt'')
* Dopełnienie przyimkowe (''Präpositionalobjekt'')
==== Okolicznik (''Adverbiale Bestimmung'') ====
=== Zdania współrzędnie złożone (''Satzreihee'') ===
=== Zdania podrzędnie złożone (''Satzgefüge'') ===
<center>'''[[Niemiecki|Spis treści]]'''</center>
65c09i5i14kuira5jvupll38m1q95db
Niemiecki/Gramatyka/Deklinacja nazw własnych
0
23757
554563
523641
2026-09-06T07:27:00Z
EdytaT
2664
554563
wikitext
text/x-wiki
<noinclude>{{NawigacjaG
| 1 = Niemiecki
| 2 = [[Niemiecki/Gramatyka|Gramatyka]]
| 3 =
}}</noinclude>
== Deklinacja nazw państw, miast i innych nazw geograficznych ==
=== Liczba pojedyncza ''Gen.'' nazw geograficznych ===
* Nazwy geograficzne (''geografische Eigennamen'') rodzaju nijakiego użyte '''bez rodzajnika''' (''artikellos'') tworzą ''Gen.'' z reguły przy pomocy końcówki '''-s''':
: np. ''Londons Bürger/die Bürger Londons''.
:* Nazwy geograficzne zakończone na ''-s, -ss, -ß, -tz, -x, -z'' użyte bez rodzajnika w mowie nie mają w ''Gen.'' żadnej końcówki. W piśmie otrzymują one apostrof, ale wtedy jedyną prawidłową kolejnością jest użycie tego rzeczownika w ''Gen.'' przed rzeczownikiem:
:: np. ''Honduras' Grenzen''.
* Nazwy geograficzne rodzaju męskiego i nijakiego użyte '''z rodzajnikiem''' tworzą ''Gen.'' z reguły bez końcówki, ale końcówka '''-s''' też jest prawidłowa:
: np. ''die Bürger des Berlin/Berlins der Zukunft''.
:* Niektóre rzeczowniki zakończone na ''-s, -ss, -ß, -tz, -x, -z'' mogą w użyciu z rodzajnikiem (zwyczajowo) występować z końcówką -es,
:: np. ''die Gipfel des Harz/Harzes''.
* Często ''Sing.'' ''Gen.'' nazw własnych jest zastępowany konstrukcją ''von'' + ''Dat.''
=== Liczba mnoga nazw geograficznych ===
* Nazwy geograficzne występują generalnie tylko w liczbie pojedynczej. Użycie liczby mnogiej jest sporadyczne, a wtedy rzeczowniki te mogą otrzymać końcówkę '''-s''' lub nie mają żadnej końcówki<ref name=Wahrig_Toponyme>[http://books.google.de/books?id=sZGwuIt2FEMC&printsec=frontcover&dq=Wahrig+Richtiges+Deutsch&hl=de&ei=5WR3Td6tIIv1sgaT282NBQ&sa=X&oi=book_result&ct=result&resnum=1&ved=0CEcQ6AEwAA#v=onepage&q&f=false praca zbiorowa, ''Wahrig - Richtiges Deutsch leicht gemacht'', str. 303, wissensmedia GmbH, Gütersloh/München, ISBN 978-3-577-07566-4, ebook]</ref>:
: np. ''in Asien gibt es zwei Koreas/Korea.''
== Deklinacja imion i nazwisk ==
=== Liczba mnoga imion i nazwisk ===
* Podobnie jak inne nazwy własne imiona i nazwiska tworzą liczbę mnogą najczęściej przy pomocy końcówki '''-s'''<ref name=Wahrig_Namen>[http://books.google.de/books?id=sZGwuIt2FEMC&printsec=frontcover&dq=Wahrig+Richtiges+Deutsch&hl=de&ei=5WR3Td6tIIv1sgaT282NBQ&sa=X&oi=book_result&ct=result&resnum=1&ved=0CEcQ6AEwAA#v=onepage&q&f=false praca zbiorowa, ''Wahrig - Richtiges Deutsch leicht gemacht'', str. 303, wissensmedia GmbH, Gütersloh/München, ISBN 978-3-577-07566-4, ebook]</ref><ref>wiktionary.de, [https://de.wiktionary.org/wiki/Hilfe:Vor-_und_Nachnamen/Grammatik_der_deutschen_Namen ''Hilfe: Vor- und Nachnamen/Grammatik der deutschen Namen''], dostęp 10.11.2025</ref>:
: np. ''zwei Udos''.
:* Inne końcówki, w oparciu o ogólne zasady deklinacji rzeczowników, są z reguły również prawidłowe:
:: np. ''mehrere Albrechte, drei Ingen''.
:* U imion zakończonych pełną samogłoską (krótkie wygłosowe ''-e'' nie jest pełną samogłoską) należy dodawać wyłącznie końcówkę '''-s''':
:: np. ''vier Ingos und fünf Carlas''.
:* U imion zakończonych na ''-s, -ss, -ß, -tz, -z'' nie należy dodawać końcówki:
:: np. ''die beiden Vinzenz''.
{{Przypisy}}
<noinclude>{{Nawigacja
| 1 = Niemiecki
| 2 = [[Niemiecki/Gramatyka|Gramatyka]]
| 3 =
}}</noinclude>
3p2rlowrksco4ybvuwzcsah3epaf8fs
Moduł:StronicowyParser/ZbieranieDanychStron
828
55009
554495
552872
2026-09-05T14:36:34Z
Persino
2851
554495
Scribunto
text/plain
local p={};
function p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod)
if(lista_dwuelementowa)then
local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu];
if(not tab_obiekt)then
tabela_elementow_strony_kodow[nazwa_obiektu]={};
tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu];
end;
local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji;
if(not uchwyty_bez_numeracji)then
tab_obiekt.uchwyty_bez_numeracji={};
uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji;
end;
uchwyty_bez_numeracji[kod]=lista_dwuelementowa;
end;
end;
function p.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod)
local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu];
if(not tab_obiekt)then return nil;end;
local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji;
if(uchwyty_bez_numeracji)then
return uchwyty_bez_numeracji[kod];
end;
end;
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)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
uchwyt_obiektu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(uchwyt_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or uchwyt_obiektu;
local html_modul=require("Module:Html");
uchwyt_obiektu=html_modul.DecodeHtml(uchwyt_obiektu,true);
if(uchwyt_obiektu~="")then
KtorySzablonMaZwracacKategorie(uchwyt_obiektu);
local lista_dwuelementowa={};
lista_dwuelementowa[1]=uchwyt_obiektu;
local parametry_modul=require("Module:Parametry");
if((not tablica_zmiennych.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then
p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu);
end;
tablica_zmiennych.sprawdzenie_dokonane_obiektu=true;
end;
if(tab_numer)then
tab_numer[nazwa_obiektu]=tab_numer[nazwa_obiektu]+1;
local numer=tab_numer[nazwa_obiektu];
table.insert(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],numer,lista_dwuelementowa);
else
table.insert(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa);
end;
return lista_dwuelementowa;
end;
end;
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)
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[numer_numeracji];
if(uchwyt_obiektu)then
local lista_dwuelementowa=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);
return lista_dwuelementowa;
end;
end;
function p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)
if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki))then
if(nazwa_artykulu=="")then return;end;
local czy_element_wystepuje_w_tablicy=false;
local tablica_przestrzeni_wszystkiego=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron;
if(tablica_przestrzeni_wszystkiego)then
local tabela_przestrzeni_ksiazek=tablica_przestrzeni_wszystkiego[nazwa_przestrzeni];
if(tabela_przestrzeni_ksiazek)then
local tabela_ksiazek=tabela_przestrzeni_ksiazek[nazwa_przestrzeni_ksiazki]
if(tabela_ksiazek)then
local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki];
if(tab_ksiazki)then
if(tab_ksiazki.spis)then
--czy_lista_niepusta=true;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
for _,tab_value in ipairs(tab_ksiazki.spis)do
if(tab_value[2])then
for _,artykul_w_bazie_element in ipairs(tab_value[2])do
local artykul_w_bazie=artykul_w_bazie_element[1];
local czy_table=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie);
artykul_w_bazie=czy_table and artykul_w_bazie[1] or artykul_w_bazie;
local artykul_bez_naglowka_w_bazie=stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul_w_bazie);
if(artykul_bez_naglowka_w_bazie==nazwa_artykulu)then
czy_element_wystepuje_w_tablicy=true;
break;
end;
end;
end;
if(czy_element_wystepuje_w_tablicy)then break;end;
end;
end;
end;
end;
end;
end;
if(not czy_element_wystepuje_w_tablicy)then
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)
or(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu~=nazwa_przestrzeni_ksiazki)
or(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu~=nazwa_ksiazki)
or(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu~=nazwa_artykulu))then
if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki, nazwa_ksiazki)))then
stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"brak spisów treści do dołączonych stron",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki);
end;
elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak spisu treści do korzystanych stron"))then
if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak spisu treści do korzystanych stron");
end;
end;
end;
end;
end;
function p.PusteParametryReferencji(self, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)
local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and (nazwa_ksiazki=="") or nil;
local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and (nazwa_artykulu=="") or nil;
local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and (uchwyt_obiektu=="") or nil;
----
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
----
if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,1))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,1);
end;
end;
if(czy_artykul_z_tylko_odstepami_lub_pusty)then
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,2))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,2);
end;
end;
if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,3))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,3);
end;
end;
end;
function p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,bezuchwytowe)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[bezuchwytowe and 1 or 2];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[bezuchwytowe and 2 or 3];
local parametry_modul=require("Module:Parametry");
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
if(nazwa_artykulu)then
nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true);
local techniczne_modul=require("Module:Techniczne");
nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",};
end;
local nazwa_ksiazki;local nazwa_przestrzeni_ksiazki;local nazwa_przestrzeni;
if(pelna_nazwa_ksiazki)then
pelna_nazwa_ksiazki=html_modul.DecodeHtml(pelna_nazwa_ksiazki,true);
local techniczne_modul=require("Module:Techniczne");
pelna_nazwa_ksiazki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=pelna_nazwa_ksiazki,[2]=nazwa_modulu_aktualna_czy_biezaca,};
----
local tabela_nazw={};
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki,tabela_nazw);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki,tabela_nazw);
nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw);
nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and (nazwy_modul["SUBNAZWAKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw)) or (nazwy_modul["NAZWAKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw)));
--pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
end;
return nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu;
end;
function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy)
local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu;
if(not czy_inna_wartosc_tekst)then
nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,self.nazwa_modulu_biezaca,true);
else
nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=tab_nazwy[1],tab_nazwy[2],tab_nazwy[3],tab_nazwy[4];
end;
--local ksiazkowe_modul=require("Module:Książkowe");
--pelna_nazwa_ksiazki=pelna_nazwa_ksiazki or ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"]();
--nazwa_artykulu=nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"]();
if((nazwa_przestrzeni)or(nazwa_przestrzeni_ksiazki)or(nazwa_ksiazki)or(nazwa_artykulu))then
local tabela_nazw={};
local ksiazkowe_modul=require("Module:Książkowe");
local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw);
local nazwa_przestrzeni_ksiazki=nazwa_przestrzeni_ksiazki or ksiazkowe_modul["NazwaPrzestrzeniKsiążki"](nil,tabela_nazw);
local nazwa_ksiazki=nazwa_ksiazki or ksiazkowe_modul["NazwaTytułuKsiążki"](nil,tabela_nazw);
local nazwa_artykulu=nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"](nil,tabela_nazw);
if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end;
local tabela_listy_danych_analizy_ksiazki=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false);
end;
end;
function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie)
local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"];
local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"];
if((not nazwa_przestrzeni)and(not nazwa_jednostki))then return;end;
local parametry_modul=require("Module:Parametry");
if((nazwa_jednostki) and (nazwa_jednostki==""))then return;end;
local szablonowe_modul=require("Module:Szablonowe");
if((nazwa_jednostki and mw.ustring.match(nazwa_jednostki,szablonowe_modul.NormaWzoruKodowaniaTekstu()))
or (nazwa_przestrzeni and mw.ustring.match(nazwa_przestrzeni,szablonowe_modul.NormaWzoruKodowaniaTekstu()))
)then return;end;
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local html_modul=require("Module:Html");
if(nazwa_jednostki)then
nazwa_jednostki=html_modul.DecodeHtml(nazwa_jednostki,true);
end;
local tabela_nazw_art={};
local nazwa_jednostki=(nazwa_jednostki
and mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1")
or nil
) or ksiazkowe_modul["NazwaArtykułu"](nil,tabela_nazw_art);
if(nazwa_przestrzeni)then
nazwa_przestrzeni=html_modul.DecodeHtml(nazwa_przestrzeni,true);
end;
local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw_art);
local strona=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local techniczne_modul=require("Module:Techniczne");
strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=self.nazwa_modulu_biezaca,};
--strona=ksiazkowe_modul["PEŁNANAZWASTRONY"](strona);
local tabela_nazw={};
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw);
local nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw);
local nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and (nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw)) or (nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw)));
local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw);
if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end;
local tabela_listy_danych_analizy_ksiazki=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,nil,czy_szablon_pudelkowy_strony_zbiorczej);
end;
function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca)
local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca);
local nazwy_modul=require("Module:Nazwy");
local czy_inna_wartosc_tekst=true;
if((nazwa_artykulu)and(nazwa_ksiazki))then
--local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni;
tabela_parametrow_szablonu["nazwa jednostki"]=nazwy_modul["NazwaModułu"]("",nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,});
elseif((nazwa_artykulu)and(not nazwa_ksiazki))then
local ksiazkowe_modul=require("Module:Książkowe");
local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ksiazkowe_modul["NazwaPrzestrzeni"]();
local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or (ksiazkowe_modul["NazwaKsiążki"]()..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""));
----
tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni;
tabela_parametrow_szablonu["nazwa jednostki"]=nazwa_jednostki;
p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,});
elseif((not nazwa_artykulu)and(nazwa_ksiazki))then
local ksiazkowe_modul=require("Module:Książkowe");
local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ksiazkowe_modul["NazwaPrzestrzeni"]();
local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ksiazkowe_modul["NazwaKsiążki"]();
----
tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni;
tabela_parametrow_szablonu["nazwa jednostki"]=nazwa_jednostki;
p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,});
else
p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,});
end;
end;
function p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,__FUNKCJA_SPRAWDZANIE)
local pudelko_modul=require("Module:Pudełko");
if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_przestrzeni)))or(nazwa_przestrzeni=="")))
and((nazwa_przestrzeni_ksiazki)and(((nazwa_przestrzeni_ksiazki~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_przestrzeni_ksiazki)))or(nazwa_przestrzeni_ksiazki=="")))
and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_ksiazki)))
and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_artykulu)))or(nazwa_artykulu=="")))
)then
if(__FUNKCJA_SPRAWDZANIE)then
__FUNKCJA_SPRAWDZANIE(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
end;
else
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)
and(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki)
and(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki)
and(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu))then
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron"))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron");
end;
else
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nieprawidłowe nazwy stron dołączanych do stron"))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy stron dołączanych do stron");
end;
end;
end;
end;
function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)
local linkobiekttab=tablica_zmiennych.linkobiekt[nazwa_obiektu];
local parametry_modul=require("Module:Parametry");
if((not tablica_zmiennych.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then
local parametry_modul=require("Module:Parametry");
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu;
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki)))then
p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
end;
tablica_zmiennych.sprawdzenie_dokonane_linku=true;
end;
table.insert(linkobiekttab,uchwyt_obiektu);
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;
end;
function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)
p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,function()
local parametry_modul=require("Module:Parametry");
if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then
local tablica_zmiennych2={};
tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2={}
local tabela_listy_danych_analizy_ksiazki0,tablica_zmiennych2,czy_inna=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,tablica_zmiennych2);
if(tabela_listy_danych_analizy_ksiazki0)then
if((not czy_inna)or(not tablica_zmiennych2))then return;end;
local stronicowyparser_szablony_tekstu_modul=require("Module:StronicowyParser/SzablonyTekstu");
local JuzPoliczone=function()
if(czy_pobierz)then
stronicowyparser_szablony_tekstu_modul.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,false);
end;
if(not tablica_zmiennych2.dane_juz_policzone)then tablica_zmiennych2.dane_juz_policzone={};end;
local tab_nazwa_obiektu=tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu];
if(not tab_nazwa_obiektu)then
tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu]={};
tab_nazwa_obiektu=tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu];
end;
local tab_uchwyt=tab_nazwa_obiektu[uchwyt_obiektu];
if(tab_uchwyt)then
return true;
end;
tab_nazwa_obiektu[uchwyt_obiektu]=true;
return false;
end;
if(not parametry_modul.CzyTak(tabela_listy_danych_analizy_ksiazki0))then
local czy_policzone=JuzPoliczone();
if(czy_policzone)then
return;
end;
else
JuzPoliczone();
end;
stronicowyparser_szablony_tekstu_modul.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2);
p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu];
local CzyLink=czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2.CzyLink;
local ile_razy=0;
if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then
for _, parametry_obiektu in ipairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do
if(parametry_obiektu[1]==uchwyt_obiektu)then
ile_razy=ile_razy+1;
if(ile_razy>1)then break;end;
end;
end;
end
if(ile_razy~=1)then
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",(CzyLink and "Link" or "Pobierz")..nazwa_obiektu))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",(CzyLink and "Link" or "Pobierz")..nazwa_obiektu);
end;
p.PusteParametryReferencji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera");
end;
end;
else
p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
end);
end;
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)
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,self.nazwa_modulu_biezaca);
----
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(uchwyt_obiektu))then
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
uchwyt_obiektu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(uchwyt_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or uchwyt_obiektu;
local html_modul=require("Module:Html");
uchwyt_obiektu=html_modul.DecodeHtml(uchwyt_obiektu,true);
end;
----
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
----
if(parametry_modul.CzyTak(uchwyt_obiektu))then
nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil));
if(nazwa_artykulu)then
if(nazwa_artykulu~="")then
if(not nazwa_ksiazki)then
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
elseif(nazwa_ksiazki=="")then
p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
end;
elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then
nazwa_artykulu="";
elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then
p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
else
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
end;
if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)
or(nazwa_przestrzeni_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)
or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)
or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu))then
p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz);
else
p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz);
p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)
p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then
p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,nil);
p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu))then
p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu);
end;
KtorySzablonMaZwracacKategorie(uchwyt_obiektu);
end;
function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej)
local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_przestrzeni_ksiazki])then tablica_przestrzeni[nazwa_przestrzeni_ksiazki]={};end;
local tablica_przestrzeni_ksiazki=tablica_przestrzeni[nazwa_przestrzeni_ksiazki];
if(not tablica_przestrzeni_ksiazki[nazwa_ksiazki])then tablica_przestrzeni_ksiazki[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni_ksiazki[nazwa_ksiazki];
if(not tablica_ksiazki.lista_podstron_woluminu)then tablica_ksiazki.lista_podstron_woluminu={};end;
if(nazwa_artykulu)then
if(not tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu])then tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu]={};end;
local artykul_analizowany=tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu];
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
else
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki;
end;
end;
local korzystany_wolumin=false;
local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)
if(not czy_artykul_korzystany)then
if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu and self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu and self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki))then
korzystany_wolumin=true;
if(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu)then
return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false;
else
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
end;
else
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
end;
else
return nil;
end;
else
korzystany_wolumin=true;
end;
if(self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron)then
local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni];
if(tabela_przestrzeni)then
local tabela_przestrzeni_ksiazki=tabela_przestrzeni[nazwa_przestrzeni_ksiazki];
if(tabela_przestrzeni_ksiazki)then
local tabela_ksiazka=tabela_przestrzeni_ksiazki[nazwa_ksiazki];
if(tabela_ksiazka)then
local lista_artykolow=tabela_ksiazka.lista_podstron_woluminu;
if(lista_artykolow)then
local tabela_artykul=lista_artykolow[nazwa_artykulu];
if(tabela_artykul)then
local dane_zebrane_ze_stron=tabela_artykul.dane_zebrane_ze_stron;
----
if(not czy_artykul_korzystany)then
if(tabela_artykul.TOCSPIS_FUNCTION)then
local wynik=tabela_artykul.TOCSPIS_FUNCTION();
if(wynik)then
tabela_artykul.TOCSPIS_FUNCTION=nil;
end;
end;
end;
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
end;
end;
end;
end;
end;
else
return nil;
end;
else
return nil;
end;
return true;
end;
local nazwy_modul=require("Module:Nazwy");
local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,czy_inna=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
local function StronaSubstFunkcja(tabela_artykul,spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)
if((czy_szablon_pudelkowy_strony_zbiorczej)and(not czy_artykul_korzystany)and(tabela_artykul)and(not tabela_artykul.strona_zbiorcza))then
--local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end;
tabela_artykul.strona_zbiorcza=stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,spis,nil,TakFun,NieFun,nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
end;
end;
if(not wartosc_wyniku)then
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
elseif((wartosc_wyniku==0)and(tabela_artykul))then
StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna;
end;
----
local pozawoluminowe_strony;
----
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if((nazwa_przestrzeni~=nazwy_np_modul.Main)
and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior)
and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_przestrzeni_ksiazki,"^([^/]+)$")))
and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_przestrzeni_ksiazki,"^%s*[Bb]rudnopis/([^/]+)$")))
)then
stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki);
pozawoluminowe_strony=true;
end;
----
local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
local parametry_modul=require("Module:Parametry");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
----
local tekst_rozwiniety_calego_artykulu_ref=nil;
local tablica_analizy_obiektow_strony_dany_modul_ref=nil;
local tablica_danych_parametrow_szablonu_strony_ref=nil;
----
local function InneInformacjePrzebneDoAnalizowanejKsiazki()
if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then
if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki))then
if(czy_artykul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"])then self.tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"]="tak";end;
end;
local czy_ksiazka_istnieje_w_tablicy=((tablica_ksiazki)and(tablica_ksiazki.czy_spis_analizowano))and true or false;
if(not czy_ksiazka_istnieje_w_tablicy)then
tablica_ksiazki.czy_spis_analizowano=true;
local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści");
local nazwa_przestrzeni_strona_temp,nazwa_przestrzeni_ksiazki_strona_temp,nazwa_ksiazki_strona_temp;
local tabela_artykulow,tabela_licencji_spisu_tresci,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,adres_ksiazki_glownego_spisu_tresci=stronicowyparser_spistresci_modul.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,czy_artykul_korzystany,function(nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona)
local tablica_przestrzeni_strona=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni_strona];
if(tablica_przestrzeni_strona)then
local tablica_przestrzeni_ksiazki_strona=tablica_przestrzeni_strona[nazwa_przestrzeni_ksiazki_strona];
if(tablica_przestrzeni_ksiazki_strona)then
local tablica_ksiazki_strona=tablica_przestrzeni_ksiazki_strona[nazwa_ksiazki_strona];
if(tablica_ksiazki_strona)then
if(tablica_ksiazki_strona.spis)then
nazwa_przestrzeni_strona_temp,nazwa_przestrzeni_ksiazki_strona_temp,nazwa_ksiazki_strona_temp=nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona;
tablica_ksiazki.spis=tablica_ksiazki_strona.spis;
tablica_ksiazki.licencja=tablica_ksiazki_strona.licencja;
tablica_ksiazki.nazwa_bazowego_spisu=tablica_ksiazki_strona.nazwa_bazowego_spisu;
tablica_ksiazki.tab_inne_spisy=tablica_ksiazki_strona.tab_inne_spisy;
tablica_ksiazki.dodatkowe_strony_woluminu=tablica_ksiazki_strona.dodatkowe_strony_woluminu;
tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy=tablica_ksiazki_strona.adres_woluminu_bazowego_spisu_rzeczy;
tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,};
return 1;
end;
end;
end
end;
end,function(tekst_rozwiniety_calego_artykulu_ref_spis,nazwa_przestrzeni_ref_spis,nazwa_przestrzeni_ksiazki_ref_spis,nazwa_ksiazki_ref_spis,nazwa_artykulu_ref_spis,tablica_analizy_obiektow_strony_dany_modul_ref_spis,tablica_danych_parametrow_szablonu_strony_ref_spis)
----
if((nazwa_przestrzeni==nazwa_przestrzeni_ref_spis)and(nazwa_przestrzeni_ksiazki==nazwa_przestrzeni_ksiazki_ref_spis)and(nazwa_ksiazki==nazwa_ksiazki_ref_spis)and(nazwa_artykulu==nazwa_artykulu_ref_spis))then
tekst_rozwiniety_calego_artykulu_ref=tekst_rozwiniety_calego_artykulu_ref_spis;
local parametry_modul=require("Module:Parametry");
tablica_analizy_obiektow_strony_dany_modul_ref=parametry_modul["KopiujRekurencyjnieTabelęElementów"](tablica_analizy_obiektow_strony_dany_modul_ref_spis);
tablica_danych_parametrow_szablonu_strony_ref=parametry_modul["KopiujRekurencyjnieTabelęElementów"](tablica_danych_parametrow_szablonu_strony_ref_spis);
end;
----
end);
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)
tablica_ksiazki.spis=tabela_artykulow;
if(czy_artykul_korzystany)then
tablica_ksiazki.licencja=tabela_licencji_spisu_tresci;
end;
tablica_ksiazki.nazwa_bazowego_spisu=nazwa_glownego_spisu;
tablica_ksiazki.tab_inne_spisy=tab_inne_spisy;
tablica_ksiazki.dodatkowe_strony_woluminu=dodatkowe_artykuly;
tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy=czy_podac_adres and adres_ksiazki_glownego_spisu_tresci or nil;
end;
if(tabela_artykulow==0)then
if(czy_artykul_korzystany)then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"korzystana strona główna nie istnieje");
else
stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"dołączone strony główne nie istnieją",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki);
end;
elseif(tabela_artykulow)then
if(parametry_modul.TypeTable(tabela_artykulow))then
if(adres_ksiazki_glownego_spisu_tresci)then
__FUNKCJA_SPISU(tablica_ksiazki,true);
local tablica_ksiazki_stara=tablica_ksiazki;
local artykul,kod_wyniku=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,true);
local nazwa_przestrzeni=adres_ksiazki_glownego_spisu_tresci[1];
local nazwa_przestrzeni_ksiazki=adres_ksiazki_glownego_spisu_tresci[2];
local nazwa_ksiazki=adres_ksiazki_glownego_spisu_tresci[3];
if((kod_wyniku==1)or(kod_wyniku==2))then
local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul);
if(not wartosc_wyniku)then
return wartosc_wyniku,true;
elseif((wartosc_wyniku==0)and(tabela_artykul))then
local nazwa_artykulu=artykul;
StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
return wartosc_wyniku,true;
end;
local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni ,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul);
tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,};
__FUNKCJA_SPISU(tablica_ksiazki,false);
return nil,nil,artykul,kod_wyniku;
elseif((kod_wyniku==3)or(kod_wyniku==4))then
local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul);
tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,};
__FUNKCJA_SPISU(tablica_ksiazki,false);
return nil,nil,artykul,kod_wyniku;
end;
else
__FUNKCJA_SPISU(tablica_ksiazki,false);
end;
elseif(tabela_artykulow~=1)then
local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
if(not wartosc_wyniku)then
return wartosc_wyniku,true;
elseif((wartosc_wyniku==0)and(tabela_artykul))then
StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
return wartosc_wyniku,true;
end;
end;
else
if(czy_artykul_korzystany)then
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak spisów treści do korzystanych książek na ich stronach głównych"))then
if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu~=""))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak spisów treści do korzystanych książek na ich stronach głównych");
end;
end;
else
stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"brak spisów treści do dołączonych książek na ich stronach głównych",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki);
end;
end;
end;
end;
end;
end;
----
local wartosc_wyniku,wynik_bledu,artykul_bazowy,kod_wyniku_bazowy=InneInformacjePrzebneDoAnalizowanejKsiazki();
if(wynik_bledu)then return wartosc_wyniku;end;
local kod_wyniku_przekierowan=kod_wyniku_bazowy;
----
--if((not tablica_przestrzeni)or(not tablica_przestrzeni_ksiazki)or(not tablica_ksiazki)or(not artykul_analizowany))then
-- tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
--end;
----
if((tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy)and(kod_wyniku_bazowy))--[[and((kod_wyniku_bazowy==1)or(kod_wyniku_bazowy==2))]]then
----
nazwa_przestrzeni=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[1];
nazwa_przestrzeni_ksiazki=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[2];
nazwa_ksiazki=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[3];
nazwa_artykulu=artykul_bazowy;
----
tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki=tablica_ksiazki.referencja_do_nowej_formy_spisu[1],tablica_ksiazki.referencja_do_nowej_formy_spisu[2],tablica_ksiazki.referencja_do_nowej_formy_spisu[3];
end;
local tabela_artykulow=tablica_ksiazki.spis;
if(tabela_artykulow)then
local nazwa_glownego_spisu=tablica_ksiazki.nazwa_bazowego_spisu;
local tab_inne_spisy=tablica_ksiazki.tab_inne_spisy;
local dodatkowe_artykuly=tablica_ksiazki.dodatkowe_strony_woluminu
local artykul,kod_wyniku=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,false);
if(kod_wyniku)then
nazwa_artykulu=artykul;
tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
end;
kod_wyniku_przekierowan=kod_wyniku_przekierowan or kod_wyniku;
end;
local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
local PrzekierownieAwaryjne=function()
if(not kod_wyniku_przekierowan)then
--local artykul2,kod_wyniku2=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,true);
local techniczne_modul=require("Module:Techniczne");
local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_modulu);
if(strona)then
if(strona~=nazwa_modulu)then
----
local tabela_nazw={};
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw);
nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw);
nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw));
nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazwa);
local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
if(not wartosc_wyniku)then
return wartosc_wyniku;
elseif((wartosc_wyniku==0)and(tabela_artykul))then
StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
return wartosc_wyniku;
end;
tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
nazwa_modulu=strona;
else
return 0;
end;
end;
end;
end;
local wynik=PrzekierownieAwaryjne();
if(czy_artykul_korzystany)then
self.nazwa_modulu_biezaca=nazwa_modulu;
end;
if(wynik)then return wynik;end;
----
if(czy_artykul_korzystany)then
if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu))then
self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni;
self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu=nazwa_przestrzeni_ksiazki;
self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu=nazwa_ksiazki;
self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu=nazwa_artykulu;
end;
end;
local nazwa_modulu_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and nazwy_modul["NazwaModułu"](self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu) or nazwa_modulu;
-- przydzielanie tablicy
if(czy_artykul_korzystany)then
artykul_analizowany.artykul_biezacy=true;
tablica_ksiazki.ksiazka_analizowana=true;
end;
--koniec
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
if(not tablica_zmiennych)then tablica_zmiennych={};end;
if(not tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)then tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2={};end;
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
for _,element_w_tablicy_obiekt in pairs(stronicowyparser_obiekty_modul.tablica_obiektowych_form)do
local CzyLink=element_w_tablicy_obiekt.CzyLink;
local CzyNum=element_w_tablicy_obiekt.CzyNum;
local wartosc=element_w_tablicy_obiekt[1];
tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[wartosc]={CzyLink=CzyLink,CzyNum=CzyNum,};
if(czy_artykul_korzystany)then tablica_zmiennych.linkobiekt[wartosc]={CzyLink=CzyLink,CzyNum=CzyNum;};end;
end;
local function StronaZbiorcza()
if(czy_artykul_korzystany)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
local wynik=stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,tablica_ksiazki.spis,nil,TakFun,NieFun,nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
artykul_analizowany.strona_zbiorcza=(wynik and "tak" or "");
return wynik;
end;
return nil;
end;
local strona_zbiorcza=StronaZbiorcza();
local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
----
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony;
if((not tekst_rozwiniety_calego_artykulu_ref)or(not tablica_analizy_obiektow_strony_dany_modul_ref)or(not tablica_danych_parametrow_szablonu_strony_ref))then
tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,nazwa_modulu_aktualna_czy_biezaca,(((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca))and true or nil),
nil)
else
tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=tekst_rozwiniety_calego_artykulu_ref,tablica_analizy_obiektow_strony_dany_modul_ref,tablica_danych_parametrow_szablonu_strony_ref;
end;
----
if(not czy_artykul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
end;
if(czy_artykul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then
if(strona_zbiorcza)then
self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak";
end;
return nil;
end;
end;
local szablonowe_modul=require("Module:Szablonowe");
local parametry_modul=require("Module:Parametry");
if((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca))then
local aktualna_nazwa_modulu=self.tabela_listy_danych_analizy_ksiazki.alternatywna and nazwa_modulu_aktualna_czy_biezaca or nazwy_modul["NazwaModułu"](self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu);
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(self,aktualna_nazwa_modulu);
if(tekst)then
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst,aktualna_nazwa_modulu);
local tablica_danych_parametrow_szablonu_strony={};
for szablon,obiekt,kod in iterator do
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,aktualna_nazwa_modulu,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
if(stronicowyparser_obiekty_modul.strona_start_ze_spisem_rzeczy_strony[nazwa_szablonu])then
self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak";
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
return true;
elseif(stronicowyparser_obiekty_modul.strona_start[nazwa_szablonu])then
self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak";
self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"];
local boczne_menu=tabela_parametrow_szablonu["boczne menu"] or "";
local spis_tresci=tabela_parametrow_szablonu["spis treści"] or "TOC";
if((parametry_modul.CzyTak(boczne_menu))or(parametry_modul.CzyTak(spis_tresci)))then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
end;
return true;
end;
end);
if(wynik)then break;end;
end;
end;
end;
end;
local uzyskano_w_wyniku_parsowania_wywolanie_szablonu;
local analiza_stron_korzystanych_zbiorczych=nil;
local stronastart=nil;
----
local tablica_obiekty=stronicowyparser_obiekty_modul.obiekty;
local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.numerowane_obiekty;
local format_elementowy_referencji_obiektowy=stronicowyparser_obiekty_modul.format_elementowy_referencji_obiektowy;
local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu;
local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu;
local szablony_wykorzystywane_przez_strony_zbiorcze=stronicowyparser_obiekty_modul.szablony_wykorzystywane_przez_strony_zbiorcze;
local format_elementowy_obiektowy=stronicowyparser_obiekty_modul.format_elementowy_obiektowy;
local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.numerowane_obiekty;
local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_naglowka=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu;
local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu;
----
local strona_start=stronicowyparser_obiekty_modul.strona_start;
local strona_start_ze_spisem_rzeczy_strony=stronicowyparser_obiekty_modul.strona_start_ze_spisem_rzeczy_strony;
local strona_start_inne=stronicowyparser_obiekty_modul.strona_start_inne;
local szablony_strony_zbiorczej=stronicowyparser_obiekty_modul.strona_zbiorcza;
----
local tab_szablony=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_kontenerowe;
local tab_szablony_stronicowe_niekontenerowe=stronicowyparser_obiekty_modul.szablony_stronicowe_niekontenerowe;
local tab_szablony_stronicowe_formatowania_tekstu=stronicowyparser_obiekty_modul.szablony_stronicowe_formatowania_tekstu;
local tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego=stronicowyparser_obiekty_modul.szablony_stronicowe_kontenerowe_formatowania_wzorowego;
----
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local tabela_elementow_strony_kodow={};
-- for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod in iterator do
local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)
if(czy_artykul_korzystany)then
if(tabela_parametrow_szablonu)then
if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then
if(strona_start[nazwa_szablonu_wywolania])then
self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak";
self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"];
stronastart=true;
local boczne_menu=tabela_parametrow_szablonu["boczne menu"] or "";
local spis_tresci=tabela_parametrow_szablonu["spis treści"] or "TOC";
if((parametry_modul.CzyTak(boczne_menu))or(parametry_modul.CzyTak(spis_tresci)))then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
end;
return;
elseif(strona_start_ze_spisem_rzeczy_strony[nazwa_szablonu_wywolania])then
self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak";
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
stronastart=true;
return;
elseif(strona_start_inne[nazwa_szablonu_wywolania])then
self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak";
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
stronastart=true;
return;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then
analiza_stron_korzystanych_zbiorczych=true;
local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"];
local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"];
if((not parametry_modul.CzyTak(nazwa_prestreni_nazw))and(not parametry_modul.CzyTak(nazwa_jednostki)))then
return;
end;
end;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then
analiza_stron_korzystanych_zbiorczych=true;
local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"];
local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"];
if((not parametry_modul.CzyTak(nazwa_przestrzeni))and(not parametry_modul.CzyTak(nazwa_jednostki)))then
return;
end;
end;
end;
end;
local plik=mw.ustring.match(nazwa_szablonu_wywolania,"^:");
if(plik==nil)then
if(tabela_parametrow_szablonu)then
if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then
local czy_wypowiedzenie=(nazwa_szablonu_wywolania=="Wypowiedzenie");
local czy_linkobiekt;
local czy_link;local czy_pobierz;
local czy_wypowiedzenie_z_parametrami;
local czy_linkobiekt_z_parametrami;
if(czy_wypowiedzenie)then
czy_linkobiekt=false;
czy_link=false;
czy_pobierz=false;
czy_wypowiedzenie_z_parametrami=parametry_modul.CzyTak(tabela_parametrow_szablonu["rodzaj"]);
else
czy_linkobiekt=(nazwa_szablonu_wywolania=="LinkObiekt");
if(czy_linkobiekt)then
czy_link=true;
czy_pobierz=false;
czy_linkobiekt_z_parametrami=parametry_modul.CzyTak(tabela_parametrow_szablonu["typ"]);
else
czy_link=mw.ustring.match(nazwa_szablonu_wywolania,"^Link");
czy_pobierz=(not czy_link) and mw.ustring.match(nazwa_szablonu_wywolania,"^Pobierz") or nil;
end;
end;
if((not czy_link)and(not czy_pobierz))then
local wartosc_elementu;local numer_uchwytu;
if(not czy_wypowiedzenie_z_parametrami) then
local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty[nazwa_szablonu_wywolania];
if(tab_wartosc_elementu)then
wartosc_elementu=tab_wartosc_elementu[1];
numer_uchwytu=tab_wartosc_elementu[2];
end;
else
local rodzaj=tabela_parametrow_szablonu["rodzaj"];
if(rodzaj)then
wartosc_elementu=format_elementowy_obiektowy[rodzaj] and rodzaj or nil;
if(wartosc_elementu)then
numer_uchwytu=tablica_obiekty[5];
end;
end;
end;
if(wartosc_elementu)then
local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE)
if(czy_artykul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
if(uchwyt_obiektu and (uchwyt_obiektu~=""))then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
end;
end;
p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie);
return;
end;
elseif(czy_artykul_korzystany)then
if(czy_link)then
local wartosc_elementu;
if(not czy_linkobiekt_z_parametrami)then
wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty[nazwa_szablonu_wywolania];
else
local typ=tabela_parametrow_szablonu["typ"];
if(typ)then
typ=format_elementowy_referencji_obiektowy[typ] and typ or nil;
if(typ)then
wartosc_elementu=mw.getContentLanguage():ucfirst(typ);
end;
end;
end;
if(wartosc_elementu)then
local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE)
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie);
return;
else
local wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu[nazwa_szablonu_wywolania];
if(wartosc_elementu)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE)
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
return;
end;
end;
elseif(czy_pobierz)then
local wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu[nazwa_szablonu_wywolania];
if(wartosc_elementu)then
local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE)
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,true);
return;
end;
end;
end;
if(czy_wypowiedzenie)then
local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE)
if(czy_artykul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt:"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
end;
p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artykul_korzystany,tablica_obiekty[5],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie);
return;
elseif(stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_wprowadzenia_tekstu[nazwa_szablonu_wywolania])then
local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_naglowka[nazwa_szablonu_wywolania];
local wartosc_elementu;local numer_uchwytu;
if(tab_wartosc_elementu)then
wartosc_elementu=tab_wartosc_elementu[1];
numer_uchwytu=tab_wartosc_elementu[2];
end;
local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE)
if(czy_artykul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
if(uchwyt_obiektu and (uchwyt_obiektu~=""))then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
end;
end;
local lista_dwuelementowa=p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie);
p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,wartosc_elementu,lista_dwuelementowa,kod);
if(czy_artykul_korzystany)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
end;
return;
elseif(stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_tekstu[nazwa_szablonu_wywolania])then
local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu[nazwa_szablonu_wywolania];
local wartosc_elementu;local numer_uchwytu;
if(tab_wartosc_elementu)then
wartosc_elementu=tab_wartosc_elementu[1];
numer_uchwytu=tab_wartosc_elementu[2];
end;
local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE)
if(czy_artykul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
if(uchwyt_obiektu and (uchwyt_obiektu~=""))then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
end;
end;
local lista_dwuelementowa=p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie);
if(lista_dwuelementowa)then
local stronicowyparser_szablonytekstu_modul=require("Module:StronicowyParser/SzablonyTekstu");
local tekst=stronicowyparser_szablonytekstu_modul.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu);
local bez_preprocess=stronicowyparser_szablonytekstu_modul.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu);
local czy_bez_preprocess=parametry_modul.CzyTak(bez_preprocess);
if(tekst)then
local czy_szablon_wszystko=false;
tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul,
function(szablon,obiekt,kod)
if(czy_bez_preprocess)then return nil;end;
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
if(
(tab_szablony[nazwa_szablonu])
or(tab_szablony_stronicowe_niekontenerowe[nazwa_szablonu])
or(tab_szablony_stronicowe_formatowania_tekstu[nazwa_szablonu])
or(tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego[nazwa_szablonu])
)then
if(not czy_artykul_korzystany)then
tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwa_przestrzeni;
tabela_parametrow_szablonu["nazwa jednostki"]=tabela_parametrow_szablonu["nazwa jednostki"] or (((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""))
if(self)then
local czy_link_lub_pobierz=mw.ustring.match(nazwa_szablonu,"^Link") or mw.ustring.match(nazwa_szablonu,"^Pobierz");
if(czy_link_lub_pobierz)then
p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca);
else
p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu);
end;
end;
end;
return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true);
end;
return nil;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
---- instrukcje warunkowe;
return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true);
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
---- wywołania ramek Lua w Scribunto
return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true);
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
---- tagi szablonowe;
return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true);
end);
czy_szablon_wszystko=czy_szablon_wszystko or true;
if(wynik)then return wynik;end;
elseif(obiekt=="ZMIENNA")then
czy_szablon_wszystko=czy_szablon_wszystko or true;
local zawartosc=mw.ustring.match(szablon,"^{{{(.*)}}}$");
if(zawartosc)then
zawartosc=mw.ustring.gsub(zawartosc,"|","{{!}}");
return "{{(((}}"..zawartosc.."{{)))}}";
end;
end;
end);
if((czy_szablon_wszystko)and(not bez_preprocess))then
local frame=mw.getCurrentFrame();
tekst=frame:preprocess(tekst);
end;
lista_dwuelementowa[2]=tekst;
end;
--local __metatabelka=getmetatable(tabela_parametrow_szablonu);
--if(__metatabelka)then setmetatable(tabela_parametrow_szablonu,nil);end;
stronicowyparser_szablonytekstu_modul.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;
return;
elseif(czy_artykul_korzystany)then
if(czy_linkobiekt)then
local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE)
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="LinkObiekt:"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,"Obiekt",nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie);
return;
else
if(stronicowyparser_obiekty_modul.szablony_z_lokalnym_spisem_rzeczy_strony[nazwa_szablonu_wywolania])then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
return;
elseif(stronicowyparser_obiekty_modul.bez_uchwytow_spis_rzeczy_strony[nazwa_szablonu_wywolania])then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA_KATEGORIE)
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or "";
local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or "";
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "")
end;
end;
p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
return;
else
local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA_KATEGORIE)
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or "";
local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or "";
local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local uchwyt=nazwa_szablonu_wywolania..":"..nazwa_symulacyjnej_strony;
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt;
end;
end;
if((stronicowyparser_obiekty_modul.szablony_kontenerowe[nazwa_szablonu_wywolania])
or(szablony_strony_zbiorczej[nazwa_szablonu_wywolania])
)then
if(szablony_wykorzystywane_przez_strony_zbiorcze[nazwa_szablonu_wywolania])then
p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,true,KtorySzablonMaZwracacKategorie);
else
p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,nil,KtorySzablonMaZwracacKategorie);
end;
return;
elseif((strona_zbiorcza)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then
p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,true,KtorySzablonMaZwracacKategorie);
return;
end;
end;
end;
end;
end;
end;
end;
end;
----
local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer)
stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_danych_parametrow_szablonu_strony,AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego);
end;
local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer)
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul);
for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod in iterator do
GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer);
end;
end;
if(czy_artykul_korzystany)then
self.tabela_listy_danych_analizy_ksiazki.nazwa_bazowa_strony=nazwy_modul["PEŁNABAZOWANAZWASTRONY"](nazwa_modulu);
end;
IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu);
----
local tablica_danych_nazwy_artykulu=tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu] or {};
tablica_danych_nazwy_artykulu.uchwyty_i_numeracje=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2;
----
local wiki_modul=require("Module:Wiki");
tablica_danych_nazwy_artykulu.link_wikidane={wiki_modul.KodyKlasStronyNaDanejWiki{["strona"]=nazwa_modulu_aktualna_czy_biezaca,["nagłówek"]=true,["aktywny"]=true,},};
if(not czy_artykul_korzystany)then
if(pozawoluminowe_strony)then
if(not tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony)then
local nazwa_modulu_korzystana_bazowa=self.tabela_listy_danych_analizy_ksiazki.nazwa_bazowa_strony;
local stronicowyparser_pomocne_modul=require("Module:StronicowyParser/Pomocne");
local zrostek=stronicowyparser_pomocne_modul["SkrótDoNumeruOdnośnika"](nazwa_modulu_korzystana_bazowa,nazwa_modulu);
tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony={zrostek,pozawoluminowe_strony,czy_artykul_korzystany,};
end;
elseif(not korzystany_wolumin)then
if(not tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony)then
local stronicowyparser_pomocne_modul=require("Module:StronicowyParser/Pomocne");
local zrostek=stronicowyparser_pomocne_modul["SkrótDoNumeruOdnośnikaDołączonejKsiążki"](nazwa_ksiazki);
tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony={zrostek,true,czy_artykul_korzystany,};
end;
end;
end;
----
if(czy_artykul_korzystany)then
if(analiza_stron_korzystanych_zbiorczych)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
end;
end;
local strona;
if(czy_artykul_korzystany)then strona="";else strona=nazwa_modulu;end;
----
if(czy_artykul_korzystany)then
local stronicowyparser_szablonytekstu_modul=require("Module:StronicowyParser/SzablonyTekstu");
stronicowyparser_szablonytekstu_modul.UstawPobierzKorzystanie(tablica_zmiennych);
tekst_rozwiniety_calego_artykulu=stronicowyparser_szablonytekstu_modul.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu) or tekst_rozwiniety_calego_artykulu;
end;
----
local function SpisToc(self,czy_artykul_korzystany,tablica_danych_nazwy_artykulu,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,tabela_elementow_strony_kodow,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki, nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca)
return function()
if(((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane))
or((not czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)))then
----
local tablica_obiektow_strony_danych_kodow_specjalnych_modul=nil;
----
tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul=szablonowe_modul:KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,false);
----
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)
if(czy_artykul_korzystany)then
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"powtórka nagłowek w stronie korzystanej"))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"powtórka nagłowek w stronie korzystanej");
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or "");
end;
end;
else
stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"powtórka nagłówek w stronie dołączonej",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki)
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or "");
end;
end;
end;
local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu)
if(czy_artykul_korzystany)then
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej");
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or "");
end;
end;
else
stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"nagłowek w tekście rozdziału w stronie dołączonej",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or "");
end;
end;
end;
local function CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu()
return stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej");
end;
local nazwa_naglowka=stronicowyparser_obiekty_modul.nazwa_szablonu_wprowadzenia_tekstu;
local stronicowyparser_glownafunkcjazbieraniadanych_modul=require("Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron");
local tablica_naglowka_obiekty=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_naglowka];
tablica_naglowka_obiekty.uchwyty_bez_numeracji={};
local toc=stronicowyparser_glownafunkcjazbieraniadanych_modul.SpisRzeczyWedlePodanegoTekstu(self,tekst_rozwiniety_calego_artykulu,strona, czy_artykul_korzystany,nil,tablica_naglowka_obiekty.uchwyty_bez_numeracji, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki, nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_obiektow_strony_danych_kodow_specjalnych_modul,{KtorySzablonMaZwracacKategorieNaglowek,KtorySzablonMaZwracacKategorieTekst,CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu,},nil,tabela_elementow_strony_kodow);
tablica_danych_nazwy_artykulu.TOC=toc;
return true;
end;
end;
end;
local czy_spis_function=SpisToc(self,czy_artykul_korzystany,tablica_danych_nazwy_artykulu,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,tabela_elementow_strony_kodow,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki, nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca);
local wynik=czy_spis_function();
if(not czy_artykul_korzystany)then
if(not wynik)then
tablica_danych_nazwy_artykulu.TOCSPIS_FUNCTION=czy_spis_function;
end;
end;
StronaSubstFunkcja(tablica_danych_nazwy_artykulu,tablica_ksiazki.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
if(czy_artykul_korzystany)then
self.tabela_listy_danych_analizy_ksiazki.link_wikidane=tablica_danych_nazwy_artykulu.link_wikidane;
self.tabela_listy_danych_analizy_ksiazki.prefiks_numeru_woluminowego_strony=tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni];
self.tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki=self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw[nazwa_przestrzeni_ksiazki];
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki[nazwa_ksiazki];
--self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron=tablica_zmiennych;
end;
if(not czy_artykul_korzystany)then
tablica_danych_nazwy_artykulu.dane_zebrane_ze_stron=tablica_zmiennych;
if(not self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista)then self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista={};end;
table.insert(self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista,tablica_danych_nazwy_artykulu);
else
local dane_zebrane_ze_stron_lista=self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista;
if(dane_zebrane_ze_stron_lista)then
for _,tablica_danych_nazwy_artykulu in ipairs(dane_zebrane_ze_stron_lista)do
tablica_danych_nazwy_artykulu.dane_zebrane_ze_stron=nil;
tablica_danych_nazwy_artykulu.TOCSPIS_FUNCTION=nil;
end;
end;
tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane=nil;
end;
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
end;
return p;
a3fcx2oh24kmc6y7yel2qvu9379jw2v
Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom III
4
63512
554541
553001
2026-09-05T19:43:18Z
Persino
2851
554541
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii, a czy w nim jest nagłówek: '''Spis treści''', czy '''Spis rzeczy''', niezależnie jakiej wielkościami liter napisany, niezaleznie jak znormowany.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci|p=StronicowyParser/obiekty}}}} {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''', czy: '''Spis rzeczy''', niezależnie jakimi wielkościami liter napisany, niezależnie jak znormowany, określone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}.
Na początku nowej linii nie mogą być odstępy. Funkcja przeszukuje tekst: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}.
Szablon szuka od tyłu lub do przodu, w zależności, jaką wartość ma zmienna {{Code|jak}} {{LinkPatrz|jak}}, czyli w pewnych zakresach, tzn. od {{Code|liczba_od}} {{LinkPatrz|liczba_od}} do {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. W wyszukiwaniu do przudu pierwsza liczba jest mniejsza lub równa od drugiej, a do tyłu, pierwsza liczba większa lub równa od drugiej.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,jak)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania,
* {{Code|jak}} {{Patrz|jak}} - {{Code|true}}, gdy wyszukiwanie do tyłu, a {{Code|false/nil}} do przodu.
; Sprawdzanie, linii wyszukanej, czy to jest{{dk}} {{nobold|spis treści}}, czy{{dk}} {{nobold|spis rzeczy}}{{dk}}
* Funkcja wyszukuje kolejnej linie, aż do zakończenia jej zasobów, jak nie znalazł jej odpowiedniej, przy pomocy: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
* Funkcja sprawdza linię przy pomocy procedury, czy wyszukana linia reprezentuje, co szukamy, według tego rozdziału, według: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}.
* Jak on to znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, mający pewną w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
Funkcja sprawdza, czy wyszukany szablon jest centrowany, to: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, a znacznik jest według: {{Tag|center}}, czyli też centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)...end;
</syntaxhighlight>
Parametry fukcji:
* Parametry z sekcji {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, w naszej funkcji, sprawdzany element, to szablon, czy znacznik,
* Paranetry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} - obiekt typu: {{Code|SZABLON}}, dla szablonu, lub: {{Code|ZNACZNIK}}, dla znacznika,
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja do sprawdzania, w tym przypadku, szablonów centrowania, używa, do tego celu tabeli o kluczach o nazwach z nimi w {{Patrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>
Jeżeli znaleziony wskazany szablon, czy znacznik, centrowania ma zawartość, wtedy funkcja zwraca wynik: {{Code|true}}, przeciwnie nie zwraca żadnej wartości.
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
Funkcja wyszukuje teksty według wzoru {{Code|wzor}} {{LinkPatrz|wzor}} od {{Code|liczba_od}} {{LinkPatrz|liczba_od}} do {{Code|liczba_do}} {{LinkPatrz|liczba_do}}, od tyłu lub do przodu w zależności od ustalonej zmiennej {{Code|jak}} {{LinkPatrz|jak}}. Wybiera stąd wyszukiwania, które nie są rozdziałami dodatnimi równaniowymi i ujemnymi będących pozycjami listy.
Funkcja wyklucza rozdziały będące szablonami centrowania.
Funkcja sprawdza, czy wyszukany rozdział jest centrowania, robi to za pomocą zmiennej {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} i tabel baz, tzn.: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, z przetworzonymi danymi z: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}, z tego wyszukuje zmienne z iteratora z jego pierwszego wywołania iteracyjnego, i z tylko jednego, bez iterowania w pętli, z pierwszej iteracji są zwykle parametry: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, lub wartości nilowe.
Zmienna: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}}, jest tylko potrzebna do przetłumaczenia na adres względny nazwy szablonu centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst_rozwiniety_calego_artykulu,wzor,liczba_od,liczba_do,jak,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|wzor}} {{Patrz|wzor}} - wzór do przeszukiwania treści od: {{LinkPatrz|liczba_od}}, do: {{LinkPatrz|liczba_do}}, do tyłu, jak i do przodu, w zależności od wyboru w zmiennej {{LinkPatrz|jak}},
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do}},
* {{Code|jak}} - jak w: {{LinkPatrz|jak}},
* Parametry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja przeszukuje tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według wzoru {{LinkPatrz|wzor}} w pewnych zakresach: {{LinkPatrz|liczba_od}} - {{LinkPatrz|liczba_do}}, od tyłu, czy do przodu, według {{LinkPatrz|jak}}, używając do tego funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
Funkcja sprawdza, aby wykluczyć je, czy wyszukany ciąg jest szablonem centrowania, robi to za pomocą funkcji: {{LinkŚródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}, a jeżeli nie, to trzeba sprawdzić, czy to jest zerowy napis wprowadzenia testu, w tym celu rewidujemy to za pomocą: {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, jeśli tak, to funkcja zgłasza powodzenie i zwraca wyniki.
Jeżeli wszystko poszło dobrze, to zwracane są wyniki w postaci {{Patrz|wynimi znajdowania centrowanego}}:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,linia;
</syntaxhighlight>
Wyjaśnienie parametrów zwracanych:
* {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}} - początek wyszukanej linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_koniec_rozdzial}} {{LinkPatrz|liczba_koniec_rozdzial}} - koniec wyszukiwanej linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}, czyli wyszukiwana linia spełniająca pewne kryteria.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
7fkb9ls8anf6eme01sjspkpwthghtt9
554555
554541
2026-09-05T21:22:40Z
Persino
2851
554555
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii, a czy w nim jest nagłówek: '''Spis treści''', czy '''Spis rzeczy''', niezależnie jakiej wielkościami liter napisany, niezaleznie jak znormowany.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci|p=StronicowyParser/obiekty}}}} {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''', czy: '''Spis rzeczy''', niezależnie jakimi wielkościami liter napisany, niezależnie jak znormowany, określone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}.
Na początku nowej linii nie mogą być odstępy. Funkcja przeszukuje tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}.
Szablon szuka od tyłu lub do przodu, w zależności, jaką wartość ma zmienna {{Code|jak}} {{LinkPatrz|jak}}, czyli w pewnych zakresach, tzn. od {{Code|liczba_od}} {{LinkPatrz|liczba_od}} do {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. W wyszukiwaniu do przudu pierwsza liczba jest mniejsza lub równa od drugiej, a do tyłu, pierwsza liczba większa lub równa od drugiej.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,jak)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania,
* {{Code|jak}} {{Patrz|jak}} - {{Code|true}}, gdy wyszukiwanie do tyłu, a {{Code|false/nil}} do przodu.
; Sprawdzanie, linii wyszukanej, czy to jest{{dk}} {{nobold|spis treści}}, czy{{dk}} {{nobold|spis rzeczy}}{{dk}}
* Funkcja wyszukuje kolejnej linie, aż do zakończenia jej zasobów, jak nie znalazł jej odpowiedniej, przy pomocy: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
* Funkcja sprawdza linię przy pomocy procedury, czy wyszukana linia reprezentuje, co szukamy, według tego rozdziału, według: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}.
* Jak on to znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
Funkcja sprawdza, czy wyszukany szablon jest centrowany, to: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, a znacznik jest według: {{Tag|center}}, czyli też centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)...end;
</syntaxhighlight>
Parametry fukcji:
* Parametry z sekcji {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, w naszej funkcji, sprawdzany element, to szablon, czy znacznik,
* Paranetry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} - obiekt typu: {{Code|SZABLON}}, dla szablonu, lub: {{Code|ZNACZNIK}}, dla znacznika,
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja do sprawdzania, w tym przypadku, szablonów centrowania, używa, do tego celu tabeli o kluczach o nazwach z nimi w {{Patrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>
Jeżeli znaleziony wskazany szablon, czy znacznik, centrowania ma zawartość, wtedy funkcja zwraca wynik: {{Code|true}}, przeciwnie nie zwraca żadnej wartości.
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
Funkcja wyszukuje teksty według wzoru {{Code|wzor}} {{LinkPatrz|wzor}} od {{Code|liczba_od}} {{LinkPatrz|liczba_od}} do {{Code|liczba_do}} {{LinkPatrz|liczba_do}}, od tyłu lub do przodu w zależności od ustalonej zmiennej {{Code|jak}} {{LinkPatrz|jak}}. Wybiera stąd wyszukiwania, które nie są rozdziałami dodatnimi równaniowymi i ujemnymi będących pozycjami listy.
Funkcja wyklucza rozdziały będące szablonami centrowania.
Funkcja sprawdza, czy wyszukany rozdział jest centrowania, robi to za pomocą zmiennej {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} i tabel baz, tzn.: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, z przetworzonymi danymi z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}, z tego wyszukuje zmienne z iteratora z jego pierwszego wywołania iteracyjnego, i z tylko jednego, bez iterowania w pętli, z pierwszej iteracji są zwykle parametry: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, lub wartości nilowe.
Zmienna: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}}, jest tylko potrzebna do przetłumaczenia na adres względny nazwy szablonu centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst_rozwiniety_calego_artykulu,wzor,liczba_od,liczba_do,jak,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|wzor}} {{Patrz|wzor}} - wzór do przeszukiwania treści od: {{LinkPatrz|liczba_od}}, do: {{LinkPatrz|liczba_do}}, do tyłu, jak i do przodu, w zależności od wyboru w zmiennej {{LinkPatrz|jak}},
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do}},
* {{Code|jak}} - jak w: {{LinkPatrz|jak}},
* Parametry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja przeszukuje tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według wzoru: {{Code|wzor}} {{LinkPatrz|wzor}}, w pewnych zakresach: {{Code|liczba_od}} {{LinkPatrz|liczba_od}} - {{Code|liczba_do}} {{LinkPatrz|liczba_do}}, od tyłu, czy do przodu, według: {{Code|jak}} {{LinkPatrz|jak}}, używając do tego funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
Funkcja sprawdza, aby wykluczyć je, czy wyszukany ciąg jest szablonem centrowania, robi to za pomocą funkcji: {{LinkŚródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}, a jeżeli nie, to trzeba sprawdzić, czy to jest zerowy napis wprowadzenia testu, w tym celu rewidujemy to za pomocą: {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, jeśli tak, to funkcja zgłasza powodzenie i zwraca wyniki.
Jeżeli wszystko poszło dobrze, to zwracane są wyniki w postaci {{Patrz|wynimi znajdowania centrowanego}}:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,linia;
</syntaxhighlight>
Wyjaśnienie parametrów zwracanych:
* {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}} - początek wyszukanej linii,,
* {{Code|liczba_koniec_rozdzial}} {{LinkPatrz|liczba_koniec_rozdzial}} - koniec wyszukiwanej linii,
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}, czyli wyszukiwana linia spełniająca pewne kryteria.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
gdcgoim2koz3r8ehmvol4tk54kyhdh6
554590
554555
2026-09-06T10:05:09Z
Persino
2851
/* {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} */
554590
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii, a czy w nim jest nagłówek: '''Spis treści''', czy '''Spis rzeczy''', niezależnie jakiej wielkościami liter napisany, niezaleznie jak znormowany.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci|p=StronicowyParser/obiekty}}}} {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''', czy: '''Spis rzeczy''', niezależnie jakimi wielkościami liter napisany, niezależnie jak znormowany, określone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}.
Na początku nowej linii nie mogą być odstępy. Funkcja przeszukuje tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}.
Szablon szuka od tyłu lub do przodu, w zależności, jaką wartość ma zmienna {{Code|jak}} {{LinkPatrz|jak}}, czyli w pewnych zakresach, tzn. od {{Code|liczba_od}} {{LinkPatrz|liczba_od}} do {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. W wyszukiwaniu do przudu pierwsza liczba jest mniejsza lub równa od drugiej, a do tyłu, pierwsza liczba większa lub równa od drugiej.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,jak)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania,
* {{Code|jak}} {{Patrz|jak}} - {{Code|true}}, gdy wyszukiwanie do tyłu, a {{Code|false/nil}} do przodu.
; Sprawdzanie, linii wyszukanej, czy to jest{{dk}} {{nobold|spis treści}}, czy{{dk}} {{nobold|spis rzeczy}}{{dk}}
* Funkcja wyszukuje kolejnej linie, aż do zakończenia jej zasobów, jak nie znalazł jej odpowiedniej, przy pomocy: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
* Funkcja sprawdza linię przy pomocy procedury, czy wyszukana linia reprezentuje, co szukamy, według tego rozdziału, według: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}.
* Jak on to znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
Funkcja sprawdza, czy wyszukany szablon jest centrowany, to: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, a znacznik jest według: {{Tag|center}}, czyli też centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)...end;
</syntaxhighlight>
Parametry fukcji:
* Parametry z sekcji {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, w naszej funkcji, sprawdzany element, to szablon, czy znacznik,
* Paranetry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} - obiekt typu: {{Code|SZABLON}}, dla szablonu, lub: {{Code|ZNACZNIK}}, dla znacznika,
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja do sprawdzania, w tym przypadku, szablonów centrowania, używa, do tego celu tabeli o kluczach o nazwach z nimi w {{Patrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>
Jeżeli znaleziony wskazany szablon, czy znacznik, centrowania ma zawartość, wtedy funkcja zwraca wynik: {{Code|true}}, przeciwnie nie zwraca żadnej wartości.
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
Funkcja wyszukuje teksty według wzoru {{Code|wzor}} {{LinkPatrz|wzor}} od {{Code|liczba_od}} {{LinkPatrz|liczba_od}} do {{Code|liczba_do}} {{LinkPatrz|liczba_do}}, od tyłu lub do przodu w zależności od ustalonej zmiennej {{Code|jak}} {{LinkPatrz|jak}}. Wybiera stąd wyszukiwania, które nie są rozdziałami dodatnimi równaniowymi i ujemnymi będących pozycjami listy.
Funkcja wyklucza rozdziały będące szablonami centrowania.
Funkcja sprawdza, czy wyszukany rozdział jest centrowania, robi to za pomocą zmiennej {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} i tabel baz, tzn.: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, z przetworzonymi danymi z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Z tego wyszukuje zmienne z iteratora z jego pierwszego wywołania iteracyjnego, i z tylko jednego, bez iterowania w pętli, z pierwszej iteracji są zwykle parametry: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, lub wartości nilowe.
Wyklucanie, czy wyszukany ciąg jest szablonem centrowania, robi to za pomocą funkcji: {{LinkŚródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}, a jeżeli nie, to trzeba sprawdzić, czy to jest zerowy napis wprowadzenia testu, w tym celu rewidujemy to za pomocą: {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, jeśli tak, to funkcja zgłasza powodzenie i zwraca wyniki.
Zmienna: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}}, jest tylko potrzebna do przetłumaczenia na adres względny nazwy szablonu centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst_rozwiniety_calego_artykulu,wzor,liczba_od,liczba_do,jak,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|wzor}} {{Patrz|wzor}} - wzór do przeszukiwania treści od: {{LinkPatrz|liczba_od}}, do: {{LinkPatrz|liczba_do}}, do tyłu, jak i do przodu, w zależności od wyboru w zmiennej {{LinkPatrz|jak}},
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do}},
* {{Code|jak}} - jak w: {{LinkPatrz|jak}},
* Parametry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja przeszukuje tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według wzoru: {{Code|wzor}} {{LinkPatrz|wzor}}, w pewnych zakresach: {{Code|liczba_od}} {{LinkPatrz|liczba_od}} - {{Code|liczba_do}} {{LinkPatrz|liczba_do}}, od tyłu, czy do przodu, według: {{Code|jak}} {{LinkPatrz|jak}}, używając do tego funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
Jeżeli wszystko poszło dobrze, to zwracane są wyniki w postaci {{Patrz|wynimi znajdowania centrowanego}}:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,linia;
</syntaxhighlight>
Wyjaśnienie parametrów zwracanych:
* {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}} - początek wyszukanej linii,,
* {{Code|liczba_koniec_rozdzial}} {{LinkPatrz|liczba_koniec_rozdzial}} - koniec wyszukiwanej linii,
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}, czyli wyszukiwana linia spełniająca pewne kryteria.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
tpjx5ie6ls6drf594k31orvmktrg2g3
554591
554590
2026-09-06T10:07:51Z
Persino
2851
/* {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} */
554591
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}{{Code|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}} ==
Szablon do wyszukania linii, a czy w nim jest nagłówek: '''Spis treści''', czy '''Spis rzeczy''', niezależnie jakiej wielkościami liter napisany, niezaleznie jak znormowany.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - linia do sprawdzenia,
* {{Code|spacje_na_poczatku}} {{Patrz|spacje_na_poczatku}} - czy na początku linii mogą być odstępy.
Funkcja używa do swojego działania tabeli {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci|p=StronicowyParser/obiekty}}}} {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={
[1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
[2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",
};
</syntaxhighlight>
* Funkcja usuwa znaki kontrolne: {{Code|<nowiki>%c</nowiki>}}, bez nowej linii: {{Code|<nowiki>\n</nowiki>}} i tabulacji: {{Code|<nowiki>\t</nowiki>}},
* W zależności od ustawień parametrów, które też trzeba włączyć do działania tego szablonu, funkcja wyszukuje odpowiedni napis wprowadzenia tekstu,
** Funkcja ustawia wartość {{Code|true}}, gdy taki nagłówek znalazł.
Funkcja do usuwania odpowiednich znaków kontrolnych bez pewnych elementów, do tego celu używa funkcji: {{Code|{{sr|#p.UsuwanieZnakoweKontrolneNiewidzialne|p=Techniczne}}}}, by dalej przejść do omówionego wyszukiwania.
== {{Śródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy}}{{Code|p.ZnajdowanieZerowegoSpisuRzeczy}} ==
Funkcja w tekście wyszkukuje rozdziału ze: '''Spis treści''', czy: '''Spis rzeczy''', niezależnie jakimi wielkościami liter napisany, niezależnie jak znormowany, określone tabelą: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}}.
Na początku nowej linii nie mogą być odstępy. Funkcja przeszukuje tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, od pozycji: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}.
Szablon szuka od tyłu lub do przodu, w zależności, jaką wartość ma zmienna {{Code|jak}} {{LinkPatrz|jak}}, czyli w pewnych zakresach, tzn. od {{Code|liczba_od}} {{LinkPatrz|liczba_od}} do {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. W wyszukiwaniu do przudu pierwsza liczba jest mniejsza lub równa od drugiej, a do tyłu, pierwsza liczba większa lub równa od drugiej.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,jak)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst,
* {{Code|liczba_od}} {{Patrz|liczba_od}} - początek wyszukiwania,
* {{Code|liczba_do}} {{Patrz|liczba_do}} - koniec wyszukiwania,
* {{Code|jak}} {{Patrz|jak}} - {{Code|true}}, gdy wyszukiwanie do tyłu, a {{Code|false/nil}} do przodu.
; Sprawdzanie, linii wyszukanej, czy to jest{{dk}} {{nobold|spis treści}}, czy{{dk}} {{nobold|spis rzeczy}}{{dk}}
* Funkcja wyszukuje kolejnej linie, aż do zakończenia jej zasobów, jak nie znalazł jej odpowiedniej, przy pomocy: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
* Funkcja sprawdza linię przy pomocy procedury, czy wyszukana linia reprezentuje, co szukamy, według tego rozdziału, według: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron}}.
* Jak on to znalazł odpowiednią linię pasującego do wzoru, to zwraca zestaw parametrów:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial;
</syntaxhighlight>
Parametry zwracane dla wyszukanego rozdziału zwracanego:
* {{Code|rozdzial}} - wyszukany rozdział, w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - początek wyszukanej linii z nim,
* {{Code|liczba_koniec_rozdzial}} {{Patrz|liczba_koniec_rozdzial}} - koniec wyszukanej linii z nim.
W pozostałych przypadkach funkcja nie zwraca żadnej wartości.
== {{Śródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}{{Code|p.CzyWprowadzenieNapisuTekstuCentrowany}} ==
Funkcja sprawdza, czy wyszukany szablon jest centrowany, tzn. czy jest jednym z szablonów: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, a w przypadku znacznika, czy jest według: {{Tag|center}}, czyli też centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)...end;
</syntaxhighlight>
Parametry fukcji:
* Parametry z sekcji {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, w naszej funkcji, sprawdzany element, to szablon, czy znacznik,
* Paranetry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} - obiekt typu: {{Code|SZABLON}}, dla szablonu, lub: {{Code|ZNACZNIK}}, dla znacznika,
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja do sprawdzania, w tym przypadku, szablonów centrowania, używa, do tego celu tabeli o kluczach o nazwach z nimi w {{Patrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.szablony_wprowadzenia_napisu_spisu_rzeczy={
["Ce"]=1,
["Centruj"]=1,
["Center"]=1,
};
</syntaxhighlight>
Jeżeli znaleziony wskazany szablon, czy znacznik, centrowania ma zawartość, wtedy funkcja zwraca wynik: {{Code|true}}, przeciwnie nie zwraca żadnej wartości.
== {{Śródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}}{{Code|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu}} ==
Funkcja wyszukuje teksty według wzoru {{Code|wzor}} {{LinkPatrz|wzor}} od {{Code|liczba_od}} {{LinkPatrz|liczba_od}} do {{Code|liczba_do}} {{LinkPatrz|liczba_do}}, od tyłu lub do przodu w zależności od ustalonej zmiennej {{Code|jak}} {{LinkPatrz|jak}}. Wybiera stąd wyszukiwania, które nie są rozdziałami dodatnimi równaniowymi i ujemnymi będących pozycjami listy.
Funkcja wyklucza rozdziały będące szablonami centrowania.
Funkcja sprawdza, czy wyszukany rozdział jest centrowania, robi to za pomocą zmiennej {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} i tabel baz, tzn.: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, z przetworzonymi danymi z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Z tego wyszukuje zmienne z iteratora z jego pierwszego wywołania iteracyjnego, i z tylko jednego, bez iterowania w pętli, z pierwszej iteracji są zwykle parametry: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, lub wartości nilowe.
Wyklucanie, czy wyszukany ciąg jest szablonem centrowania, robi to za pomocą funkcji: {{LinkŚródtytuł|p.CzyWprowadzenieNapisuTekstuCentrowany}}, a jeżeli nie, to trzeba sprawdzić, czy to jest zerowy napis wprowadzenia testu, w tym celu rewidujemy to za pomocą: {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, jeśli tak, to funkcja zgłasza powodzenie i zwraca wyniki.
Zmienna: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}}, jest tylko potrzebna do przetłumaczenia na adres względny nazwy szablonu centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst_rozwiniety_calego_artykulu,wzor,liczba_od,liczba_do,jak,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|wzor}} {{Patrz|wzor}} - wzór do przeszukiwania treści od: {{LinkPatrz|liczba_od}}, do: {{LinkPatrz|liczba_do}}, do tyłu, jak i do przodu, w zależności od wyboru w zmiennej {{LinkPatrz|jak}},
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do}},
* {{Code|jak}} - jak w: {{LinkPatrz|jak}},
* Parametry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja przeszukuje tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według wzoru: {{Code|wzor}} {{LinkPatrz|wzor}}, w pewnych zakresach: {{Code|liczba_od}} {{LinkPatrz|liczba_od}} - {{Code|liczba_do}} {{LinkPatrz|liczba_do}}, od tyłu, czy do przodu, według: {{Code|jak}} {{LinkPatrz|jak}}, używając do tego funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
Jeżeli wszystko poszło dobrze, to zwracane są wyniki w postaci {{Patrz|wynimi znajdowania centrowanego}}:
<syntaxhighlight lang="lua">
return liczba_start_rozdzial,liczba_koniec_rozdzial,linia;
</syntaxhighlight>
Wyjaśnienie parametrów zwracanych:
* {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}} - początek wyszukanej linii,,
* {{Code|liczba_koniec_rozdzial}} {{LinkPatrz|liczba_koniec_rozdzial}} - koniec wyszukiwanej linii,
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}, czyli wyszukiwana linia spełniająca pewne kryteria.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
lss5xaltppkkwm3bq1tgolyo8zqs3xj
Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom I
4
63908
554488
551544
2026-09-05T14:08:24Z
Persino
2851
554488
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.UchwytyZeiBezNumeracji}}{{Code|p.UchwytyZeiBezNumeracji}} ==
Funkcja zbiera uchwyty, dla obiektów {{ZobaczTeż|p.UchwytyZeiBezNumeracji}}, bez numeracji, nie licząc obiektów tekstu, takich jak {{s|Śródtekst}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} {{Patrz|self}} - zmienna obiektowa modułu {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}} {{Patrz|StronicowyParser/ZbieranieDanychStron}},
* {{Code|tabela_elementow_strony_kodow}} {{Patrz|tabela_elementow_strony_kodow}} - zmienna zbierająca takie kody jak {{LinkZobaczTeż|p.UchwytyZeiBezNumeracji}},
* {{Code|nazwa_obiektu}} {{Patrz|nazwa obiektu}} - nazwa obiektu,
* {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} - pozycja w normalnej tabeli uchwytów i przeważnie ich numeracji, a tutaj dla tego obiektu,
* {{Code|kod}} {{Patrz|kod}} - numer kodu dla tego obiektu.
Funkcja zbiera elementy {{LinkPatrz|lista_dwuelementowa}} w tablicy wielowymiarowej o pierwszym elemencie wymiaru: {{Code|nazwa obiektu}} {{LinkPatrz|nazwa obiektu}}, i trzecim: {{Code|kod}} {{LinkPatrz|kod}}, oraz o drugim: {{Code|uchwyty_bez_numeracji}} {{Patrz|uchwyty_bez_numeracji}}.
== {{Śródtytuł|p.WydobywanieUchwytuZeiBezNumeracji}}{{Code|p.WydobywanieUchwytuZeiBezNumeracji}} ==
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.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_elementow_strony_kodow}} - jak w: {{LinkPatrz|tabela_elementow_strony_kodow}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja wykorzystuje elementy tablicy: {{LinkPatrz|uchwyty_bez_numeracji}}, wstawione przez funkcję: {{LinkŚródtytuł|p.UchwytyZeiBezNumeracji}}.
== {{Ś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.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozpatrywanieElementuUchwytuNumeracji(self,kod_uchwytu,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:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|kod_uchwytu}} {{Patrz|kod_uchwytu}} - kod uchwytu podanego do szablonu stronicowego z odpowiednim uchwytem,
* {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica z numerkami ilości elementów w tablicy parametrów nazwanych z uchwytami, w danym elemencie analizowania strony z uchwytami i obiektami,
* {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}} - tablica analizowania obiektów, danej strony,
* {{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}} - kolejno: nazwa przestrzeni nazw, nazwa przestrzeni książki, nazwa książki i nazwa artykułu książki,
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} - czy artykuł aktualny wyświetlany w przeglądarce,
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} - nazwa artykułu aktualna lub bieżąca,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica bazy kodów parsowania strony,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica analizy poszczególnych elementów kodów, do szybszego działania skryptu,
* {{Code|KtorySzablonMaZwracacKategorie}} {{Patrz|KtorySzablonMaZwracacKategorie}} - 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|kod_uchwytu}} {{LinkPatrz|kod_uchwytu}}, 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}}, 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 {{LinkPatrz|lista_dwuelementowa}}.
== {{Śródtytuł|p.RozpatrywanieSzablonuObiektuDoNumeracji}}{{Code|p.RozpatrywanieSzablonuObiektuDoNumeracji}} ==
Funkcja, która uruchamia funkcję: {{LinkŚródtytuł|p.RozpatrywanieElementuUchwytuNumeracji}}, dla istniejącego uchwytu w postaci nazwanej o kluczu: {{Code|uchwyt}} {{Patrz|uchwyt}}, lub nienazwanej - w postaci numeru jego uchwytu o kluczu: {{Code|numer_numeracji}} {{Patrz|numer_numeracji}}, wsadzająca tabele z uchwytem na odpowiednią pozycję w odpowiedniej nazwanej tabeli o nazwie obiektu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, w ogólnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}.
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:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}}- tabela parametrów szablonu,
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany}},
* {{Code|numer_numeracji}} - jak w: {{LinkPatrz|numer_numeracji}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
m01q35zjnh4s92u07dtfbpv554wnmn5
554496
554488
2026-09-05T14:37:23Z
Persino
2851
554496
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.UchwytyZeiBezNumeracji}}{{Code|p.UchwytyZeiBezNumeracji}} ==
Funkcja zbiera uchwyty, dla obiektów {{ZobaczTeż|p.UchwytyZeiBezNumeracji}}, bez numeracji, nie licząc obiektów tekstu, takich jak {{s|Śródtekst}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} {{Patrz|self}} - zmienna obiektowa modułu {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}} {{Patrz|StronicowyParser/ZbieranieDanychStron}},
* {{Code|tabela_elementow_strony_kodow}} {{Patrz|tabela_elementow_strony_kodow}} - zmienna zbierająca takie kody jak {{LinkZobaczTeż|p.UchwytyZeiBezNumeracji}},
* {{Code|nazwa_obiektu}} {{Patrz|nazwa obiektu}} - nazwa obiektu,
* {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} - pozycja w normalnej tabeli uchwytów i przeważnie ich numeracji, a tutaj dla tego obiektu,
* {{Code|kod}} {{Patrz|kod}} - numer kodu dla tego obiektu.
Funkcja zbiera elementy {{LinkPatrz|lista_dwuelementowa}} w tablicy wielowymiarowej o pierwszym elemencie wymiaru: {{Code|nazwa obiektu}} {{LinkPatrz|nazwa obiektu}}, i trzecim: {{Code|kod}} {{LinkPatrz|kod}}, oraz o drugim: {{Code|uchwyty_bez_numeracji}} {{Patrz|uchwyty_bez_numeracji}}.
== {{Śródtytuł|p.WydobywanieUchwytuZeiBezNumeracji}}{{Code|p.WydobywanieUchwytuZeiBezNumeracji}} ==
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.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_elementow_strony_kodow}} - jak w: {{LinkPatrz|tabela_elementow_strony_kodow}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja wykorzystuje elementy tablicy: {{LinkPatrz|uchwyty_bez_numeracji}}, wstawione przez funkcję: {{LinkŚródtytuł|p.UchwytyZeiBezNumeracji}}.
== {{Ś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.
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:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} - kod uchwytu podanego do szablonu stronicowego z odpowiednim uchwytem,
* {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica z numerkami ilości elementów w tablicy parametrów nazwanych z uchwytami, w danym elemencie analizowania strony z uchwytami i obiektami,
* {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}} - tablica analizowania obiektów, danej strony,
* {{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}} - kolejno: nazwa przestrzeni nazw, nazwa przestrzeni książki, nazwa książki i nazwa artykułu książki,
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} - czy artykuł aktualny wyświetlany w przeglądarce,
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} - nazwa artykułu aktualna lub bieżąca,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica bazy kodów parsowania strony,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica analizy poszczególnych elementów kodów, do szybszego działania skryptu,
* {{Code|KtorySzablonMaZwracacKategorie}} {{Patrz|KtorySzablonMaZwracacKategorie}} - 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}}, 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 {{LinkPatrz|lista_dwuelementowa}}.
== {{Śródtytuł|p.RozpatrywanieSzablonuObiektuDoNumeracji}}{{Code|p.RozpatrywanieSzablonuObiektuDoNumeracji}} ==
Funkcja, która uruchamia funkcję: {{LinkŚródtytuł|p.RozpatrywanieElementuUchwytuNumeracji}}, dla istniejącego uchwytu w postaci nazwanej o kluczu: {{Code|uchwyt}} {{Patrz|uchwyt}}, lub nienazwanej - w postaci numeru jego uchwytu o kluczu: {{Code|numer_numeracji}} {{Patrz|numer_numeracji}}, wsadzająca tabele z uchwytem na odpowiednią pozycję w odpowiedniej nazwanej tabeli o nazwie obiektu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, w ogólnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}.
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:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}}- tabela parametrów szablonu,
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany}},
* {{Code|numer_numeracji}} - jak w: {{LinkPatrz|numer_numeracji}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
1xkwnd5cof16h63g2bzq9isnynnt7rz
554501
554496
2026-09-05T14:53:35Z
Persino
2851
/* {{Śródtytuł|p.RozpatrywanieElementuUchwytuNumeracji}}{{Code|p.RozpatrywanieElementuUchwytuNumeracji}} */
554501
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.UchwytyZeiBezNumeracji}}{{Code|p.UchwytyZeiBezNumeracji}} ==
Funkcja zbiera uchwyty, dla obiektów {{ZobaczTeż|p.UchwytyZeiBezNumeracji}}, bez numeracji, nie licząc obiektów tekstu, takich jak {{s|Śródtekst}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} {{Patrz|self}} - zmienna obiektowa modułu {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}} {{Patrz|StronicowyParser/ZbieranieDanychStron}},
* {{Code|tabela_elementow_strony_kodow}} {{Patrz|tabela_elementow_strony_kodow}} - zmienna zbierająca takie kody jak {{LinkZobaczTeż|p.UchwytyZeiBezNumeracji}},
* {{Code|nazwa_obiektu}} {{Patrz|nazwa obiektu}} - nazwa obiektu,
* {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} - pozycja w normalnej tabeli uchwytów i przeważnie ich numeracji, a tutaj dla tego obiektu,
* {{Code|kod}} {{Patrz|kod}} - numer kodu dla tego obiektu.
Funkcja zbiera elementy {{LinkPatrz|lista_dwuelementowa}} w tablicy wielowymiarowej o pierwszym elemencie wymiaru: {{Code|nazwa obiektu}} {{LinkPatrz|nazwa obiektu}}, i trzecim: {{Code|kod}} {{LinkPatrz|kod}}, oraz o drugim: {{Code|uchwyty_bez_numeracji}} {{Patrz|uchwyty_bez_numeracji}}.
== {{Śródtytuł|p.WydobywanieUchwytuZeiBezNumeracji}}{{Code|p.WydobywanieUchwytuZeiBezNumeracji}} ==
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.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_elementow_strony_kodow}} - jak w: {{LinkPatrz|tabela_elementow_strony_kodow}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod}}.
Funkcja wykorzystuje elementy tablicy: {{LinkPatrz|uchwyty_bez_numeracji}}, wstawione przez funkcję: {{LinkŚródtytuł|p.UchwytyZeiBezNumeracji}}.
== {{Ś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.
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:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} - kod uchwytu podanego do szablonu stronicowego z odpowiednim uchwytem,
* {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica z numerkami ilości elementów w tablicy parametrów nazwanych z uchwytami, w danym elemencie analizowania strony z uchwytami i obiektami,
* {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}} - tablica analizowania obiektów, danej strony,
* {{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}} - kolejno: nazwa przestrzeni nazw, nazwa przestrzeni książki, nazwa książki i nazwa artykułu książki,
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} - czy artykuł aktualny wyświetlany w przeglądarce,
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} - nazwa artykułu aktualna lub bieżąca,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica bazy kodów parsowania strony,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica analizy poszczególnych elementów kodów, do szybszego działania skryptu,
* {{Code|KtorySzablonMaZwracacKategorie}} {{Patrz|KtorySzablonMaZwracacKategorie}} - 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 {{LinkPatrz|lista_dwuelementowa}}.
== {{Śródtytuł|p.RozpatrywanieSzablonuObiektuDoNumeracji}}{{Code|p.RozpatrywanieSzablonuObiektuDoNumeracji}} ==
Funkcja, która uruchamia funkcję: {{LinkŚródtytuł|p.RozpatrywanieElementuUchwytuNumeracji}}, dla istniejącego uchwytu w postaci nazwanej o kluczu: {{Code|uchwyt}} {{Patrz|uchwyt}}, lub nienazwanej - w postaci numeru jego uchwytu o kluczu: {{Code|numer_numeracji}} {{Patrz|numer_numeracji}}, wsadzająca tabele z uchwytem na odpowiednią pozycję w odpowiedniej nazwanej tabeli o nazwie obiektu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, w ogólnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}.
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:
* {{Code|self}} - jak w: {{LinkPatrz|self}},
* {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}}- tabela parametrów szablonu,
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - kolejno jak: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany}},
* {{Code|numer_numeracji}} - jak w: {{LinkPatrz|numer_numeracji}},
* {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
3bm4iemdvphrjqp3ad6s5vgx64hnp6u
Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom II
4
63909
554489
551384
2026-09-05T14:24:28Z
Persino
2851
554489
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:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} - uchwyt obiektu, podane w danym szablonie stronicowym,
* {{Code|nazwa_obiektu}} - 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 artykułu|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 książki|StronicowyParser/ZbieranieDanychStron/Tom I}} albo, {{Code|2}}, gdy bezuchwytowe lub {{Code|3}}. To wszystko jest liczone z: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|bezuchwytowe}} - jak w: {{LinkPatrz|bezuchwytowe}}.
Funkcja obie nazwy dekoduje funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a później jest liczony adres bezwzględny z 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>
tt7y0y5vi6lldljznzkc1x4zc15b650
554490
554489
2026-09-05T14:24:50Z
Persino
2851
/* {{Śródtytuł|p.SzablonyReferencjiParametrowych}}{{Code|p.SzablonyReferencjiParametrowych}} */
554490
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:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} - uchwyt obiektu, podane w danym szablonie stronicowym,
* {{Code|nazwa_obiektu}} - 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_artykułu|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 książki|StronicowyParser/ZbieranieDanychStron/Tom I}} albo, {{Code|2}}, gdy bezuchwytowe lub {{Code|3}}. To wszystko jest liczone z: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|bezuchwytowe}} - jak w: {{LinkPatrz|bezuchwytowe}}.
Funkcja obie nazwy dekoduje funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a później jest liczony adres bezwzględny z 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>
tvpvlzb1i9hii2lm69qpvem8mslv8or
554491
554490
2026-09-05T14:26:05Z
Persino
2851
/* {{Śródtytuł|p.SzablonyReferencjiParametrowych}}{{Code|p.SzablonyReferencjiParametrowych}} */
554491
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:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} - uchwyt obiektu, podane w danym szablonie stronicowym,
* {{Code|nazwa_obiektu}} - 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_artykułu|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_książki|StronicowyParser/ZbieranieDanychStron/Tom I}} albo, {{Code|2}}, gdy bezuchwytowe lub {{Code|3}}. To wszystko jest liczone z: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|bezuchwytowe}} - jak w: {{LinkPatrz|bezuchwytowe}}.
Funkcja obie nazwy dekoduje funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a później jest liczony adres bezwzględny z 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>
3qkkzon4ls53m1tgmfmcjmyrir3253n
554492
554491
2026-09-05T14:30:40Z
Persino
2851
554492
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:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}} - uchwyt obiektu, podane w danym szablonie stronicowym,
* {{Code|nazwa_obiektu}} - 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_artykułu|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_książki|StronicowyParser/ZbieranieDanychStron/Tom I}} albo, {{Code|2}}, gdy bezuchwytowe lub {{Code|3}}. To wszystko jest liczone z: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|bezuchwytowe}} - jak w: {{LinkPatrz|bezuchwytowe}}.
Funkcja obie nazwy dekoduje funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a później jest liczony adres bezwzględny z 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>
mcjv5abxc74f04ntrc0z2xl4g2qvflw
554493
554492
2026-09-05T14:31:21Z
Persino
2851
/* {{Śródtytuł|p.PusteParametryReferencji}}{{Code|p.PusteParametryReferencji}} */
554493
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:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}} - uchwyt obiektu, podane w danym szablonie stronicowym,
* {{Code|nazwa_obiektu}} - 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_artykułu|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_książki|StronicowyParser/ZbieranieDanychStron/Tom I}} albo, {{Code|2}}, gdy bezuchwytowe lub {{Code|3}}. To wszystko jest liczone z: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|bezuchwytowe}} - jak w: {{LinkPatrz|bezuchwytowe}}.
Funkcja obie nazwy dekoduje funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a później jest liczony adres bezwzględny z 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>
60t5jo32ot8zhpcypw80qo3ry68qg6p
554494
554493
2026-09-05T14:32:10Z
Persino
2851
/* {{Śródtytuł|p.SzablonyReferencjiParametrowych}}{{Code|p.SzablonyReferencjiParametrowych}} */
554494
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:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}} - uchwyt obiektu, podane w danym szablonie stronicowym,
* {{Code|nazwa_obiektu}} - 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: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|bezuchwytowe}} - jak w: {{LinkPatrz|bezuchwytowe}}.
Funkcja obie nazwy dekoduje funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a później jest liczony adres bezwzględny z 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>
cc7dpzt2e8rje5wurbxflv1mlm6qxae
Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom III
4
63910
554497
551427
2026-09-05T14:46:14Z
Persino
2851
554497
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, gdy nie jest uruchomiony parametr: {{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}}, 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:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_inna_wartosc_tekst}} - jak w: {{LinkPatrz|czy_inna_wartosc_tekst}},
* {{Code|tab_nazwy}} - 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}} {{Patrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{Patrz|czy_szablon_pudelkowy_strony_zbiorczej}} - 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}}}},
* {{Code|KtorySzablonMaZwracacKategorie}} - 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.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - 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}}, która z kolei uruchamia potem: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Tom VI}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
i5tplvj6k677mm7y04hfexd0abpqgjn
Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom IV
4
63911
554498
551397
2026-09-05T14:48:25Z
Persino
2851
554498
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.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}{{Code|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}} ==
Funkcja sprawdza niepoprawność nazwy strony i na podstawie tego ustawia pewne kody problemów.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,__FUNKCJA_SPRAWDZANIE)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom II}},
* {{Code|__FUNKCJA_SPRAWDZANIE}} {{Patrz|__FUNKCJA_SPRAWDZANIE}} - funkcja uruchamiana, jeśli jest ustawiona, na wypadek poprawności strony.
W przypadku niepoprawności strony, gdy strona modułu jest aktualna (bieżąca), wtedy sprawdzany jest kod problemu, czy jest ustawiony, tzn.: {{Code|nieprawidłowe nazwy korzystanych stron}} {{Patrz|nieprawidłowe nazwy korzystanych stron}}, przy pomocy funkcji: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli nie ma takiego, to wtedy jest uruchamiana funkcja: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. Podobnie jest dla niekorzystanej strony, wtedy jest problem dla kodu: {{Code|nieprawidłowe nazwy stron dołączanych do stron}} {{Patrz|nieprawidłowe nazwy stron dołączanych do stron}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
595tajm0h5c8owuyh0ujrqkquzj9pgy
554499
554498
2026-09-05T14:48:53Z
Persino
2851
/* {{Śródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}{{Code|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}} */
554499
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.SprawdzanieCzyJestNiepoprawnaNazwaStrony}}{{Code|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony}} ==
Funkcja sprawdza niepoprawność nazwy strony i na podstawie tego ustawia pewne kody problemów.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,__FUNKCJA_SPRAWDZANIE)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|__FUNKCJA_SPRAWDZANIE}} {{Patrz|__FUNKCJA_SPRAWDZANIE}} - funkcja uruchamiana, jeśli jest ustawiona, na wypadek poprawności strony.
W przypadku niepoprawności strony, gdy strona modułu jest aktualna (bieżąca), wtedy sprawdzany jest kod problemu, czy jest ustawiony, tzn.: {{Code|nieprawidłowe nazwy korzystanych stron}} {{Patrz|nieprawidłowe nazwy korzystanych stron}}, przy pomocy funkcji: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli nie ma takiego, to wtedy jest uruchamiana funkcja: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. Podobnie jest dla niekorzystanej strony, wtedy jest problem dla kodu: {{Code|nieprawidłowe nazwy stron dołączanych do stron}} {{Patrz|nieprawidłowe nazwy stron dołączanych do stron}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
oxdwi3j7tnw2ey1w45077o9hjhflz2p
Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom V
4
63912
554500
551428
2026-09-05T14:51:11Z
Persino
2851
554500
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>
Funkcje zbieranie informacji o linkach na stronie.
== {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} ==
Funkcja wadza uchwyt obiektu, wsazujący na aktualną stronę, do pewnej strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
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:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - 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 przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}}, 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: {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}.
Dalej pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}}.
Następnie, gdy element: {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla {{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">
{{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 {{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:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} - 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 tej strony, 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}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{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: {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, a {{Code|false}} aktualna, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje.
Gdy parametr: {{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: {{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}}.
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: {{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 taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z {{LinkPatrz|tablica_zmiennych2}} tablicy {{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}}.
Dalej jest sprawdzane, czy podany uchwyt {{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}}, 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: {{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}}, 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: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, na podstawie poszczególnych artykułów tej książki 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:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} - jak w: {{LinkPatrz|czy_pobierz}}.
=== Wyznaczanie i przetwarzanie uchwytu ===
Funkcja wyznacza uchwyt z tabeli parametrów: {{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: {{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}}, 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: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}} z parametrem o tym uchwycie, wyliczonym wcześniej.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== Istniejący niepusty uchwyt linku ===
Gdy uchwyt: {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z niej samej, lub 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.
==== 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}}.
==== Dodatkowo istnieje tylko nazwa artykułu ====
Jeśli nazwa artykułu {{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}}: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{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 {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} jest nie istnieje, i gdy nazwa książki {{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, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, by potem się zakończyła ta funkcja.
==== Liczenie parametrów nazw wywołań szablonowych linków ====
Przeciwnie są liczone parametry: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{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 {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Tom I}} i {{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}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
o9a2dpx077drjmeowwl0tsbjt16k365
554502
554500
2026-09-05T15:10:43Z
Persino
2851
554502
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>
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 strony, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono.
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:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} {{Patrz|obiekt}} - obiekt, obsługiwany przez tą funkcję linku,
* {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}} - kod obiektu dla: {{LinkPatrz|obiekt}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} - 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 przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, 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 pod tą instrukcją warunkową, jest robione, co powiedziane zostało w prologu tego opisu tej funkcji, tzn. z wyznaczonej tablicy ze: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, a dalej z wyznaczonej następnej podtabeli o kluczu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_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">
{{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:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|uchwyt_obiektu}} - jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} - 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 tej strony, 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}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wczęsniejszego 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, a {{Code|false}} aktualna, 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}}.
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: {{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 taakiej wartośsci nie przyjmuje, wtedy tylko jest uruchamiana funkcja bez żadnego warunku.
{{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z: {{Code|}} {{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}}.
Dalej 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 artykułów tej książki 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:
* {{Code|self}} - jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_obiektu}} - jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|KtorySzablonMaZwracacKategorie}} - jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_pobierz}} - 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.
=== Przypadek uchwytu pustego ===
Gdy uchwyt istnieje, ale jest pusty, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, a jeśli ta wartość nie istnieje, wtedy tylko ta ostatnia funkcja.
=== 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 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.
==== 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}}.
==== 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}} jest 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, za zaczyna być potem generowanie kodów błędów funkcją {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Tom II}}, by potem się zakończyła 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}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ta4e26rnpnt4um0jjeboqmp35scyhll
Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Tom VI
4
63913
554503
551472
2026-09-05T16:04:59Z
Persino
2851
554503
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ę informacji 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:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - 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 parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
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}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - 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}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
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}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
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}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego 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.
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>
Dla elementu: {{Code|dane_analizy_stron}} {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{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.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, 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}}, nie istnieje.
=== {{Ś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 tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Ś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, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest inicjowany 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}}, jest wartością fałszywą, to iniciowaną tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{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}}.
Dla tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana 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 parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
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}} {{Patrz|tablica_ksiazki_strona}}, 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}} {{Patrz|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}}.
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ść: {{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}} {{LinPatrz|_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 kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{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 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:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}}, z: {{Code|tablica_ksiazki_stara}} {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{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 ======
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}}. 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.
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}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{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ść: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== 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 =====
A gdy przeciwnie dla: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, 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 i artykułu, 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:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, jeżeli równa jest nazwa ta {{Code|strona}} {{Patrz|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, lub gdy wartość: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{Code|wartosc_wyniku}} {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{Code|strona}} {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
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: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - 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:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - 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:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - 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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, 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}}}}. 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 '''Stronicowego Parsera''', czyli stronicowe. 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}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - 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:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Ś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.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== 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}}. 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}}, i zwracany jest wynik jak poprzednio.
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}}, 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}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. 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 parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{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}}. A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}. 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}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis: {{Code|spis}} {{LinkPatrz|spis}}, istnieje aktualnej książki, czyli zmienna: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku 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}}, 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}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} 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}}.
==== Przekierowania dla stron bez spisu ====
Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, 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}}.
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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== 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}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, 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 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}}''', 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}}, 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}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|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}}, 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}}.
Gdy artykuł nie jest korzystany, tzn. z: {{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}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== 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}}, 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 zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona 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.
==== 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}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} 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}} 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}} w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego 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.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, 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}}, uruchamiana z pewnymi parametrami.
==== 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}}, 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}}, 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}}, 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}}, 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}}. 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.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
0l3liuzo5kody0m7urf5wzo9sxfrhpd
554504
554503
2026-09-05T16:07:05Z
Persino
2851
554504
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ę informacji 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:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - 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 parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
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}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - 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}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
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}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
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}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego 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.
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>
Dla elementu: {{Code|dane_analizy_stron}} {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{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.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, 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}}, nie istnieje.
=== {{Ś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 tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Ś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, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest inicjowany 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}}, jest wartością fałszywą, to iniciowaną tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{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}}.
Dla tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana 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 parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
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}} {{Patrz|tablica_ksiazki_strona}}, 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}} {{Patrz|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}}.
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ść: {{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}} {{LinPatrz|_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 kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{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 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:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}}, z: {{Code|tablica_ksiazki_stara}} {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{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 ======
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}}. 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.
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}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{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ść: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== 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 =====
A gdy przeciwnie dla: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, 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 i artykułu, 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:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, 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, lub gdy wartość: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{Code|wartosc_wyniku}} {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{Code|strona}} {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
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: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - 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:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - 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:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - 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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, 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}}}}. 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 '''Stronicowego Parsera''', czyli stronicowe. 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}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - 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:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Ś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.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== 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}}. 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}}, i zwracany jest wynik jak poprzednio.
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}}, 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}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. 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 parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{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}}. A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}. 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}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis: {{Code|spis}} {{LinkPatrz|spis}}, istnieje aktualnej książki, czyli zmienna: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku 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}}, 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}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} 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}}.
==== Przekierowania dla stron bez spisu ====
Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, 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}}.
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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== 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}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, 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 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}}''', 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}}, 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}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|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}}, 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}}.
Gdy artykuł nie jest korzystany, tzn. z: {{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}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== 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}}, 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 zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona 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.
==== 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}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} 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}} 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}} w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego 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.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, 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}}, uruchamiana z pewnymi parametrami.
==== 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}}, 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}}, 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}}, 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}}, 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}}. 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.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
lzrv3kyxq9qljf16u3d2mgk763sz5v0
554505
554504
2026-09-05T16:07:40Z
Persino
2851
/* Pierwsza anonimowa funkcja */
554505
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ę informacji 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:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - 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 parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
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}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - 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}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
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}}.
Funkcja zwraca kolejno elementy, jeśli klucz: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}}, istnieje, zatem:
<syntaxhighlight lang="lua">
return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany;
</syntaxhighlight>
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}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego 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.
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>
Dla elementu: {{Code|dane_analizy_stron}} {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{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.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, 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}}, nie istnieje.
=== {{Ś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 tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Ś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, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest inicjowany 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}}, jest wartością fałszywą, to iniciowaną tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{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}}.
Dla tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana 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 parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
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}} {{Patrz|tablica_ksiazki_strona}}, 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}}.
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ść: {{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}} {{LinPatrz|_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 kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{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 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:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}}, z: {{Code|tablica_ksiazki_stara}} {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{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 ======
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}}. 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.
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}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{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ść: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== 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 =====
A gdy przeciwnie dla: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, 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 i artykułu, 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:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, 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, lub gdy wartość: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{Code|wartosc_wyniku}} {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{Code|strona}} {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
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: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - 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:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - 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:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - 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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, 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}}}}. 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 '''Stronicowego Parsera''', czyli stronicowe. 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}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - 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:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Ś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.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== 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}}. 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}}, i zwracany jest wynik jak poprzednio.
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}}, 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}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. 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 parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{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}}. A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}. 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}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis: {{Code|spis}} {{LinkPatrz|spis}}, istnieje aktualnej książki, czyli zmienna: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku 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}}, 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}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} 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}}.
==== Przekierowania dla stron bez spisu ====
Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, 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}}.
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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== 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}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, 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 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}}''', 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}}, 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}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|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}}, 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}}.
Gdy artykuł nie jest korzystany, tzn. z: {{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}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== 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}}, 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 zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona 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.
==== 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}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} 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}} 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}} w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego 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.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, 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}}, uruchamiana z pewnymi parametrami.
==== 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}}, 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}}, 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}}, 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}}, 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}}. 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.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
0x9qkzy62nmhe3m1ahsl5ovhobu7dn7
554506
554505
2026-09-05T16:28:40Z
Persino
2851
/* {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} */
554506
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ę informacji 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:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - 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 parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
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}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - 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}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
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}}.
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>
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}}.
{{Tab}}Analiza dla artykułów niekorzystanych według parametru: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}:
Dla jeszcze raz analizowanego artykułu i aktualnego 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.
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>
Dla elementu: {{Code|dane_analizy_stron}} {{LinkPatrz|dane_analizy_stron}}, jeżeli dany artykuł był już rewidowany, to zwracane są elementy:
<syntaxhighlight lang="lua">
return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true;
</syntaxhighlight>
To: {{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.
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, 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}}, nie istnieje.
=== {{Ś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 tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Ś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, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest inicjowany 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}}, jest wartością fałszywą, to iniciowaną tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{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}}.
Dla tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana 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 parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
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}} {{Patrz|tablica_ksiazki_strona}}, 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}}.
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ść: {{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}} {{LinPatrz|_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 kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{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 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:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}}, z: {{Code|tablica_ksiazki_stara}} {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{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 ======
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}}. 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.
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}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{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ść: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== 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 =====
A gdy przeciwnie dla: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, 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 i artykułu, 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:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, 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, lub gdy wartość: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{Code|wartosc_wyniku}} {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{Code|strona}} {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
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: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - 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:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - 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:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - 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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, 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}}}}. 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 '''Stronicowego Parsera''', czyli stronicowe. 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}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - 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:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Ś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.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== 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}}. 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}}, i zwracany jest wynik jak poprzednio.
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}}, 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}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. 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 parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{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}}. A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}. 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}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis: {{Code|spis}} {{LinkPatrz|spis}}, istnieje aktualnej książki, czyli zmienna: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku 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}}, 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}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} 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}}.
==== Przekierowania dla stron bez spisu ====
Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, 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}}.
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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== 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}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, 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 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}}''', 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}}, 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}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|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}}, 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}}.
Gdy artykuł nie jest korzystany, tzn. z: {{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}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== 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}}, 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 zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona 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.
==== 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}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} 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}} 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}} w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego 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.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, 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}}, uruchamiana z pewnymi parametrami.
==== 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}}, 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}}, 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}}, 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}}, 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}}. 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.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
iz01fcya3ahpung56n9tg2rb3af4hxl
554507
554506
2026-09-05T17:03:32Z
Persino
2851
/* {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} */
554507
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ę informacji 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:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - 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 parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
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}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - 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}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
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}}.
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>
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}}.
==== Analiza artykułów niekorzystanych, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}}}, dla strony bieżącej ====
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}} {{Patrz|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}}.
==== 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 strony przeanalizowanej niebieżącej ====
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ż przeanalizowanego =====
Jeśli mamy stronę niekorzystaną, czyli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},jest fałsszywy, wtedy przy istnieniu funkcji element: {{Code|TOCSPIS_FUNCTION}} {{Patrz|TOCSPIS_FUNCTION}}, tabeli artykułu: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}}, ona jest uruchamiana, jeśli zwróci prawdziwa wartość, w takim wypadku jako element jest usuwany z tej tabeli.
===== Zwracane parametry dla strony niebieżącej =====
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}}.
===== Inne zwracane parametry =====
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, 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}}, nie istnieją.
=== {{Ś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 tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Ś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, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest inicjowany 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}}, jest wartością fałszywą, to iniciowaną tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{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}}.
Dla tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana 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 parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
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}} {{Patrz|tablica_ksiazki_strona}}, 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}}.
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ść: {{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}} {{LinPatrz|_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 kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{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 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:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}}, z: {{Code|tablica_ksiazki_stara}} {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{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 ======
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}}. 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.
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}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{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ść: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== 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 =====
A gdy przeciwnie dla: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, 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 i artykułu, 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:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, 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, lub gdy wartość: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{Code|wartosc_wyniku}} {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{Code|strona}} {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
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: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - 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:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - 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:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - 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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, 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}}}}. 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 '''Stronicowego Parsera''', czyli stronicowe. 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}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - 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:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Ś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.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== 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}}. 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}}, i zwracany jest wynik jak poprzednio.
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}}, 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}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. 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 parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{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}}. A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}. 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}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis: {{Code|spis}} {{LinkPatrz|spis}}, istnieje aktualnej książki, czyli zmienna: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku 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}}, 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}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} 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}}.
==== Przekierowania dla stron bez spisu ====
Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, 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}}.
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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== 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}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, 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 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}}''', 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}}, 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}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|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}}, 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}}.
Gdy artykuł nie jest korzystany, tzn. z: {{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}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== 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}}, 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 zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona 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.
==== 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}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} 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}} 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}} w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego 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.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, 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}}, uruchamiana z pewnymi parametrami.
==== 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}}, 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}}, 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}}, 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}}, 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}}. 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.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
afbrfnqz8j0ys8f8gzlspjj6g69s7jq
554508
554507
2026-09-05T17:04:43Z
Persino
2851
/* Zwracane parametry dla strony bieżącej analizowanej jako niebieżąca */
554508
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ę informacji 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:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - 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 parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
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}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - 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}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
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}}.
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>
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}}.
==== Analiza artykułów niekorzystanych, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}}}, dla strony bieżącej ====
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}}.
==== 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 strony przeanalizowanej niebieżącej ====
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ż przeanalizowanego =====
Jeśli mamy stronę niekorzystaną, czyli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},jest fałsszywy, wtedy przy istnieniu funkcji element: {{Code|TOCSPIS_FUNCTION}} {{Patrz|TOCSPIS_FUNCTION}}, tabeli artykułu: {{Code|tabela_artykul}} {{Patrz|tabela_artykul}}, ona jest uruchamiana, jeśli zwróci prawdziwa wartość, w takim wypadku jako element jest usuwany z tej tabeli.
===== Zwracane parametry dla strony niebieżącej =====
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}}.
===== Inne zwracane parametry =====
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, 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}}, nie istnieją.
=== {{Ś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 tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Ś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, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest inicjowany 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}}, jest wartością fałszywą, to iniciowaną tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{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}}.
Dla tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana 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 parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
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}} {{Patrz|tablica_ksiazki_strona}}, 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}}.
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ść: {{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}} {{LinPatrz|_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 kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{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 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:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}}, z: {{Code|tablica_ksiazki_stara}} {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{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 ======
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}}. 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.
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}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{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ść: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== 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 =====
A gdy przeciwnie dla: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, 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 i artykułu, 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:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, 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, lub gdy wartość: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{Code|wartosc_wyniku}} {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{Code|strona}} {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
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: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - 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:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - 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:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - 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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, 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}}}}. 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 '''Stronicowego Parsera''', czyli stronicowe. 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}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - 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:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Ś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.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== 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}}. 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}}, i zwracany jest wynik jak poprzednio.
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}}, 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}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. 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 parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{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}}. A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}. 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}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis: {{Code|spis}} {{LinkPatrz|spis}}, istnieje aktualnej książki, czyli zmienna: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku 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}}, 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}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} 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}}.
==== Przekierowania dla stron bez spisu ====
Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, 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}}.
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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== 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}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, 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 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}}''', 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}}, 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}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|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}}, 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}}.
Gdy artykuł nie jest korzystany, tzn. z: {{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}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== 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}}, 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 zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona 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.
==== 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}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} 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}} 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}} w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego 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.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, 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}}, uruchamiana z pewnymi parametrami.
==== 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}}, 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}}, 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}}, 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}}, 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}}. 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.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ior0zu5lj5qvagdjefble5rq8i5uci1
554509
554508
2026-09-05T17:05:23Z
Persino
2851
/* Analiza spisu treści artykułu już przeanalizowanego */
554509
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ę informacji 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:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - 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 parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
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}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - 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}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
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}}.
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>
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}}.
==== Analiza artykułów niekorzystanych, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}}}, dla strony bieżącej ====
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}}.
==== 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 strony przeanalizowanej niebieżącej ====
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ż przeanalizowanego =====
Jeśli mamy stronę niekorzystaną, czyli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},jest fałsszywy, wtedy przy istnieniu funkcji element: {{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 tej tabeli.
===== Zwracane parametry dla strony niebieżącej =====
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}}.
===== Inne zwracane parametry =====
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, 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}}, nie istnieją.
=== {{Ś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 tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Ś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, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest inicjowany 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}}, jest wartością fałszywą, to iniciowaną tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{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}}.
Dla tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana 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 parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
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}} {{Patrz|tablica_ksiazki_strona}}, 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}}.
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ść: {{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}} {{LinPatrz|_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 kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{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 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:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}}, z: {{Code|tablica_ksiazki_stara}} {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{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 ======
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}}. 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.
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}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{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ść: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== 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 =====
A gdy przeciwnie dla: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, 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 i artykułu, 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:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, 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, lub gdy wartość: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{Code|wartosc_wyniku}} {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{Code|strona}} {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
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: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - 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:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - 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:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - 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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, 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}}}}. 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 '''Stronicowego Parsera''', czyli stronicowe. 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}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - 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:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Ś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.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== 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}}. 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}}, i zwracany jest wynik jak poprzednio.
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}}, 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}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. 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 parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{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}}. A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}. 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}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis: {{Code|spis}} {{LinkPatrz|spis}}, istnieje aktualnej książki, czyli zmienna: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku 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}}, 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}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} 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}}.
==== Przekierowania dla stron bez spisu ====
Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, 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}}.
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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== 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}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, 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 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}}''', 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}}, 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}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|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}}, 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}}.
Gdy artykuł nie jest korzystany, tzn. z: {{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}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== 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}}, 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 zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona 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.
==== 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}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} 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}} 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}} w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego 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.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, 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}}, uruchamiana z pewnymi parametrami.
==== 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}}, 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}}, 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}}, 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}}, 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}}. 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.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
gjrktlamkbas0523odb5ocvcsezm68y
554510
554509
2026-09-05T17:06:41Z
Persino
2851
/* Inne zwracane parametry */
554510
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ę informacji 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:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - 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 parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
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}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - 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}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
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}}.
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>
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}}.
==== Analiza artykułów niekorzystanych, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}}}, dla strony bieżącej ====
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}}.
==== 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 strony przeanalizowanej niebieżącej ====
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ż przeanalizowanego =====
Jeśli mamy stronę niekorzystaną, czyli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},jest fałsszywy, wtedy przy istnieniu funkcji element: {{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 tej tabeli.
===== Zwracane parametry dla strony niebieżącej =====
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}}.
==== Inne zwracane parametry ====
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, 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}}, nie istnieją.
=== {{Ś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 tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Ś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, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest inicjowany 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}}, jest wartością fałszywą, to iniciowaną tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{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}}.
Dla tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana 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 parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
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}} {{Patrz|tablica_ksiazki_strona}}, 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}}.
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ść: {{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}} {{LinPatrz|_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 kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{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 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:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}}, z: {{Code|tablica_ksiazki_stara}} {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{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 ======
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}}. 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.
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}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{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ść: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== 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 =====
A gdy przeciwnie dla: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, 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 i artykułu, 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:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, 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, lub gdy wartość: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{Code|wartosc_wyniku}} {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{Code|strona}} {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
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: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - 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:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - 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:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - 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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, 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}}}}. 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 '''Stronicowego Parsera''', czyli stronicowe. 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}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - 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:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Ś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.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== 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}}. 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}}, i zwracany jest wynik jak poprzednio.
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}}, 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}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. 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 parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{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}}. A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}. 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}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis: {{Code|spis}} {{LinkPatrz|spis}}, istnieje aktualnej książki, czyli zmienna: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku 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}}, 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}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} 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}}.
==== Przekierowania dla stron bez spisu ====
Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, 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}}.
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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== 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}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, 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 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}}''', 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}}, 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}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|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}}, 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}}.
Gdy artykuł nie jest korzystany, tzn. z: {{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}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== 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}}, 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 zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona 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.
==== 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}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} 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}} 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}} w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego 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.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, 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}}, uruchamiana z pewnymi parametrami.
==== 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}}, 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}}, 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}}, 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}}, 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}}. 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.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
20j55snptlky1qg44lwkjz9qyiv1b81
554511
554510
2026-09-05T17:10:41Z
Persino
2851
/* Pobieranie elementów strony przeanalizowanej niebieżącej */
554511
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ę informacji 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:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - 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 parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
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}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - 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}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
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}}.
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>
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}}.
==== Analiza artykułów niekorzystanych, według zmiennej: {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}}}, dla strony bieżącej ====
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}}.
==== 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>
==== Strona niebieżąca ====
Przedstawiony jest tutaj przypadek pobierania zmiennych strony niebieżącej, ale niekorzystanej.
===== 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 dodattkowych elementów ======
Jeśli mamy stronę niekorzystaną, czyli parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},jest fałsszywy, wtedy przy istnieniu funkcji element: {{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 tej tabeli.
====== Zwracane parametry ======
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}}.
==== Inne zwracane parametry ====
Przeciwnie jest zwracane: {{Code|true}}, lub {{Code|nil}}, 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}}, nie istnieją.
=== {{Ś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 tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Ś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, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest inicjowany 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}}, jest wartością fałszywą, to iniciowaną tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{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}}.
Dla tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana 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 parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
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}} {{Patrz|tablica_ksiazki_strona}}, 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}}.
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ść: {{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}} {{LinPatrz|_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 kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{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 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:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}}, z: {{Code|tablica_ksiazki_stara}} {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{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 ======
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}}. 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.
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}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{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ść: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== 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 =====
A gdy przeciwnie dla: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, 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 i artykułu, 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:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, 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, lub gdy wartość: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{Code|wartosc_wyniku}} {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{Code|strona}} {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
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: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - 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:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - 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:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - 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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, 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}}}}. 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 '''Stronicowego Parsera''', czyli stronicowe. 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}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - 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:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Ś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.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== 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}}. 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}}, i zwracany jest wynik jak poprzednio.
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}}, 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}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. 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 parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{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}}. A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}. 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}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis: {{Code|spis}} {{LinkPatrz|spis}}, istnieje aktualnej książki, czyli zmienna: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku 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}}, 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}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} 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}}.
==== Przekierowania dla stron bez spisu ====
Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, 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}}.
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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== 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}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, 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 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}}''', 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}}, 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}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|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}}, 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}}.
Gdy artykuł nie jest korzystany, tzn. z: {{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}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== 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}}, 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 zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona 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.
==== 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}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} 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}} 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}} w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego 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.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, 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}}, uruchamiana z pewnymi parametrami.
==== 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}}, 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}}, 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}}, 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}}, 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}}. 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.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
rcaej6z92854gp8sx5nu175tihrvl93
554512
554511
2026-09-05T17:16:50Z
Persino
2851
/* {{Śródtytuł|__FUNKCJA_POBIERANIE}}{{Code|__FUNKCJA_POBIERANIE}} */
554512
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ę informacji 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:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - 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 parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
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}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - 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}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
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}}.
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>
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}}.
==== Strpna 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}}.
==== 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}},jest fałsszywy, wtedy przy istnieniu funkcji element: {{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 tej tabeli.
====== 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}}, lub {{Code|nil}}, 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}}, nie istnieją.
=== {{Ś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 tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Ś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, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest inicjowany 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}}, jest wartością fałszywą, to iniciowaną tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{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}}.
Dla tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana 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 parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
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}} {{Patrz|tablica_ksiazki_strona}}, 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}}.
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ść: {{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}} {{LinPatrz|_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 kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{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 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:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}}, z: {{Code|tablica_ksiazki_stara}} {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{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 ======
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}}. 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.
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}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{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ść: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== 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 =====
A gdy przeciwnie dla: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, 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 i artykułu, 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:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, 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, lub gdy wartość: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{Code|wartosc_wyniku}} {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{Code|strona}} {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
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: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - 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:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - 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:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - 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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, 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}}}}. 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 '''Stronicowego Parsera''', czyli stronicowe. 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}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - 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:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Ś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.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== 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}}. 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}}, i zwracany jest wynik jak poprzednio.
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}}, 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}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. 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 parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{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}}. A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}. 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}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis: {{Code|spis}} {{LinkPatrz|spis}}, istnieje aktualnej książki, czyli zmienna: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku 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}}, 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}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} 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}}.
==== Przekierowania dla stron bez spisu ====
Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, 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}}.
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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== 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}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, 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 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}}''', 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}}, 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}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|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}}, 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}}.
Gdy artykuł nie jest korzystany, tzn. z: {{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}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== 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}}, 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 zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona 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.
==== 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}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} 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}} 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}} w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego 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.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, 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}}, uruchamiana z pewnymi parametrami.
==== 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}}, 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}}, 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}}, 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}}, 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}}. 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.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
8dtvefh0ic8tknv2l0gic4ogohnqqyo
554513
554512
2026-09-05T17:18:20Z
Persino
2851
/* Strpna 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 */
554513
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ę informacji 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:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - 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 parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
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}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - 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}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
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}}.
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>
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}}.
==== 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}},jest fałsszywy, wtedy przy istnieniu funkcji element: {{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 tej tabeli.
====== 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}}, lub {{Code|nil}}, 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}}, nie istnieją.
=== {{Ś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 tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Ś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, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest inicjowany 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}}, jest wartością fałszywą, to iniciowaną tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{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}}.
Dla tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana 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 parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
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}} {{Patrz|tablica_ksiazki_strona}}, 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}}.
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ść: {{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}} {{LinPatrz|_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 kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{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 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:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}}, z: {{Code|tablica_ksiazki_stara}} {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{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 ======
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}}. 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.
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}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{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ść: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== 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 =====
A gdy przeciwnie dla: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, 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 i artykułu, 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:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, 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, lub gdy wartość: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{Code|wartosc_wyniku}} {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{Code|strona}} {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
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: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - 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:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - 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:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - 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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, 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}}}}. 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 '''Stronicowego Parsera''', czyli stronicowe. 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}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - 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:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Ś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.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== 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}}. 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}}, i zwracany jest wynik jak poprzednio.
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}}, 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}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. 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 parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{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}}. A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}. 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}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis: {{Code|spis}} {{LinkPatrz|spis}}, istnieje aktualnej książki, czyli zmienna: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku 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}}, 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}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} 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}}.
==== Przekierowania dla stron bez spisu ====
Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, 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}}.
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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== 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}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, 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 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}}''', 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}}, 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}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|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}}, 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}}.
Gdy artykuł nie jest korzystany, tzn. z: {{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}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== 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}}, 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 zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona 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.
==== 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}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} 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}} 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}} w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego 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.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, 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}}, uruchamiana z pewnymi parametrami.
==== 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}}, 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}}, 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}}, 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}}, 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}}. 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.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
b27x68vxla6k1jxaooczbpfd9fwb8v4
554514
554513
2026-09-05T17:19:37Z
Persino
2851
/* Zwracane parametry dla strony bieżącej analizowanej jako niebieżąca */
554514
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ę informacji 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:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - 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 parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
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}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - 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}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - nazwa artykułu w książce, bez pełnej nazwy książki.
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}}.
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>
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}},jest fałsszywy, wtedy przy istnieniu funkcji element: {{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 tej tabeli.
====== 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}}, lub {{Code|nil}}, 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}}, nie istnieją.
=== {{Ś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 tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Ś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, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest inicjowany 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}}, jest wartością fałszywą, to iniciowaną tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{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}}.
Dla tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana 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 parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
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}} {{Patrz|tablica_ksiazki_strona}}, 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}}.
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ść: {{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}} {{LinPatrz|_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 kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{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 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:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}}, z: {{Code|tablica_ksiazki_stara}} {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{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 ======
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}}. 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.
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}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{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ść: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== 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 =====
A gdy przeciwnie dla: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, 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 i artykułu, 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:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, 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, lub gdy wartość: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{Code|wartosc_wyniku}} {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{Code|strona}} {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
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: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - 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:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - 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:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - 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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, 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}}}}. 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 '''Stronicowego Parsera''', czyli stronicowe. 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}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - 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:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Ś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.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== 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}}. 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}}, i zwracany jest wynik jak poprzednio.
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}}, 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}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. 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 parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{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}}. A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}. 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}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis: {{Code|spis}} {{LinkPatrz|spis}}, istnieje aktualnej książki, czyli zmienna: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku 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}}, 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}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} 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}}.
==== Przekierowania dla stron bez spisu ====
Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, 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}}.
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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== 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}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, 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 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}}''', 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}}, 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}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|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}}, 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}}.
Gdy artykuł nie jest korzystany, tzn. z: {{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}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== 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}}, 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 zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona 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.
==== 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}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} 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}} 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}} w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego 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.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, 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}}, uruchamiana z pewnymi parametrami.
==== 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}}, 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}}, 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}}, 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}}, 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}}. 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.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
k1gorh8473l5h9dqirr2ck03dqgjrf3
554515
554514
2026-09-05T17:23:43Z
Persino
2851
/* {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} */
554515
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ę informacji 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:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - 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 parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
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}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - 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}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - 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.
===== 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}},jest fałsszywy, wtedy przy istnieniu funkcji element: {{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 tej tabeli.
====== 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}}, lub {{Code|nil}}, 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}}, nie istnieją.
=== {{Ś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 tej ostatniej zmiennej jest przydzielana wartość z funkcji: {{Code|{{sr|#p.AnalizaStronaSubst|p=StronicowyParser/StronaSubst}}}}.
=== {{Ś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, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest inicjowany 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}}, jest wartością fałszywą, to iniciowaną tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{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}}.
Dla tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana 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 parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
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}} {{Patrz|tablica_ksiazki_strona}}, 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}}.
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ść: {{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}} {{LinPatrz|_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 kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{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 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:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}}, z: {{Code|tablica_ksiazki_stara}} {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{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 ======
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}}. 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.
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}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{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ść: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== 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 =====
A gdy przeciwnie dla: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, 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 i artykułu, 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:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, 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, lub gdy wartość: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{Code|wartosc_wyniku}} {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{Code|strona}} {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
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: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - 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:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - 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:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - 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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, 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}}}}. 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 '''Stronicowego Parsera''', czyli stronicowe. 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}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - 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:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Ś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.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== 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}}. 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}}, i zwracany jest wynik jak poprzednio.
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}}, 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}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. 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 parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{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}}. A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}. 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}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis: {{Code|spis}} {{LinkPatrz|spis}}, istnieje aktualnej książki, czyli zmienna: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku 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}}, 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}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} 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}}.
==== Przekierowania dla stron bez spisu ====
Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, 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}}.
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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== 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}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, 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 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}}''', 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}}, 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}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|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}}, 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}}.
Gdy artykuł nie jest korzystany, tzn. z: {{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}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== 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}}, 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 zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona 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.
==== 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}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} 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}} 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}} w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego 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.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, 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}}, uruchamiana z pewnymi parametrami.
==== 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}}, 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}}, 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}}, 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}}, 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}}. 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.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
grlg4b8we9uq9dsdsqs36wb9pa03411
554516
554515
2026-09-05T17:27:47Z
Persino
2851
/* {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} */
554516
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ę informacji 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:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - 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 parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
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}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - 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}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - 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.
===== 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}},jest fałsszywy, wtedy przy istnieniu funkcji element: {{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 tej tabeli.
====== 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}}, lub {{Code|nil}}, 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}}, nie istnieją.
=== {{Ś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}} {{Patrz|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, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest inicjowany 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}}, jest wartością fałszywą, to iniciowaną tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{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}}.
Dla tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana 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 parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
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}} {{Patrz|tablica_ksiazki_strona}}, 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}}.
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ść: {{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}} {{LinPatrz|_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 kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{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 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:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}}, z: {{Code|tablica_ksiazki_stara}} {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{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 ======
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}}. 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.
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}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{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ść: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== 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 =====
A gdy przeciwnie dla: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, 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 i artykułu, 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:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, 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, lub gdy wartość: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{Code|wartosc_wyniku}} {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{Code|strona}} {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
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: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - 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:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - 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:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - 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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, 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}}}}. 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 '''Stronicowego Parsera''', czyli stronicowe. 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}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - 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:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Ś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.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== 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}}. 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}}, i zwracany jest wynik jak poprzednio.
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}}, 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}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. 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 parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{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}}. A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}. 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}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis: {{Code|spis}} {{LinkPatrz|spis}}, istnieje aktualnej książki, czyli zmienna: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku 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}}, 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}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} 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}}.
==== Przekierowania dla stron bez spisu ====
Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, 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}}.
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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== 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}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, 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 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}}''', 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}}, 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}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|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}}, 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}}.
Gdy artykuł nie jest korzystany, tzn. z: {{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}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== 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}}, 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 zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona 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.
==== 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}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} 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}} 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}} w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego 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.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, 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}}, uruchamiana z pewnymi parametrami.
==== 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}}, 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}}, 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}}, 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}}, 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}}. 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.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
dd91ek6v4wfxrkzvavgzd7xgk7lx51e
554517
554516
2026-09-05T17:28:18Z
Persino
2851
/* {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} */
554517
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ę informacji 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:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - 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 parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
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}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - 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}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - 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.
===== 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}},jest fałsszywy, wtedy przy istnieniu funkcji element: {{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 tej tabeli.
====== 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}}, lub {{Code|nil}}, 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}}, nie istnieją.
=== {{Ś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, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest inicjowany 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}}, jest wartością fałszywą, to iniciowaną tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{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}}.
Dla tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana 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 parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
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}} {{Patrz|tablica_ksiazki_strona}}, 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}}.
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ść: {{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}} {{LinPatrz|_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 kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{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 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:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}}, z: {{Code|tablica_ksiazki_stara}} {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{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 ======
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}}. 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.
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}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{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ść: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== 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 =====
A gdy przeciwnie dla: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, 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 i artykułu, 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:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, 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, lub gdy wartość: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{Code|wartosc_wyniku}} {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{Code|strona}} {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
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: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - 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:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - 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:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - 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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, 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}}}}. 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 '''Stronicowego Parsera''', czyli stronicowe. 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}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - 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:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Ś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.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== 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}}. 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}}, i zwracany jest wynik jak poprzednio.
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}}, 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}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. 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 parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{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}}. A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}. 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}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis: {{Code|spis}} {{LinkPatrz|spis}}, istnieje aktualnej książki, czyli zmienna: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku 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}}, 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}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} 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}}.
==== Przekierowania dla stron bez spisu ====
Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, 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}}.
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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== 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}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, 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 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}}''', 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}}, 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}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|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}}, 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}}.
Gdy artykuł nie jest korzystany, tzn. z: {{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}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== 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}}, 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 zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona 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.
==== 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}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} 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}} 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}} w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego 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.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, 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}}, uruchamiana z pewnymi parametrami.
==== 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}}, 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}}, 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}}, 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}}, 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}}. 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.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
enl7ygw2odmqxzrdqb7q0ktyxjpzh6c
554518
554517
2026-09-05T17:30:30Z
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 */
554518
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ę informacji 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:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - 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 parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
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}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - 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}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - 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.
===== 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}},jest fałsszywy, wtedy przy istnieniu funkcji element: {{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 tej tabeli.
====== 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}}, nie istnieją.
=== {{Ś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, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest inicjowany 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}}, jest wartością fałszywą, to iniciowaną tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{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}}.
Dla tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana 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 parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
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}} {{Patrz|tablica_ksiazki_strona}}, 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}}.
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ść: {{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}} {{LinPatrz|_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 kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{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 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:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}}, z: {{Code|tablica_ksiazki_stara}} {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{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 ======
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}}. 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.
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}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{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ść: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== 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 =====
A gdy przeciwnie dla: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, 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 i artykułu, 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:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, 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, lub gdy wartość: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{Code|wartosc_wyniku}} {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{Code|strona}} {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
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: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - 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:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - 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:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - 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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, 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}}}}. 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 '''Stronicowego Parsera''', czyli stronicowe. 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}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - 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:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Ś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.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== 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}}. 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}}, i zwracany jest wynik jak poprzednio.
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}}, 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}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. 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 parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{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}}. A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}. 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}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis: {{Code|spis}} {{LinkPatrz|spis}}, istnieje aktualnej książki, czyli zmienna: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku 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}}, 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}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} 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}}.
==== Przekierowania dla stron bez spisu ====
Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, 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}}.
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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== 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}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, 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 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}}''', 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}}, 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}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|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}}, 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}}.
Gdy artykuł nie jest korzystany, tzn. z: {{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}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== 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}}, 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 zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona 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.
==== 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}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} 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}} 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}} w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego 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.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, 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}}, uruchamiana z pewnymi parametrami.
==== 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}}, 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}}, 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}}, 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}}, 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}}. 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.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
b1w5989g3lldrbdnrjfd34p6eznko2p
554519
554518
2026-09-05T17:33:12Z
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 */
554519
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ę informacji 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:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - 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 parametrami wielowymiarowej tej tabeli, a jeżeli owe pośrednie, i nie tylko, istnieją, to te tabele są zwracane lub nowo są tworzone.
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}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - 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}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - 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.
===== 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}},jest fałsszywy, wtedy przy istnieniu funkcji element: {{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 tej tabeli.
====== 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, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest inicjowany 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}}, jest wartością fałszywą, to iniciowaną tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{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}}.
Dla tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana 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 parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
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}} {{Patrz|tablica_ksiazki_strona}}, 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}}.
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ść: {{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}} {{LinPatrz|_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 kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{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 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:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}}, z: {{Code|tablica_ksiazki_stara}} {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{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 ======
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}}. 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.
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}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{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ść: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== 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 =====
A gdy przeciwnie dla: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, 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 i artykułu, 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:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, 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, lub gdy wartość: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{Code|wartosc_wyniku}} {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{Code|strona}} {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
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: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - 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:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - 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:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - 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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, 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}}}}. 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 '''Stronicowego Parsera''', czyli stronicowe. 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}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - 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:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Ś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.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== 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}}. 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}}, i zwracany jest wynik jak poprzednio.
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}}, 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}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. 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 parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{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}}. A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}. 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}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis: {{Code|spis}} {{LinkPatrz|spis}}, istnieje aktualnej książki, czyli zmienna: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku 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}}, 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}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} 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}}.
==== Przekierowania dla stron bez spisu ====
Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, 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}}.
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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== 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}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, 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 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}}''', 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}}, 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}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|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}}, 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}}.
Gdy artykuł nie jest korzystany, tzn. z: {{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}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== 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}}, 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 zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona 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.
==== 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}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} 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}} 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}} w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego 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.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, 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}}, uruchamiana z pewnymi parametrami.
==== 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}}, 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}}, 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}}, 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}}, 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}}. 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.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
2pn6oqlqhjj2p02y7jrr3caf56rygqg
554520
554519
2026-09-05T17:57:35Z
Persino
2851
/* {{Śródtytuł|__FUNKCJA_ARTYKULU}}{{Code|__FUNKCJA_ARTYKULU}} */
554520
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ę informacji 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:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - 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}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - 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}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - 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}},jest fałsszywy, wtedy przy istnieniu funkcji element: {{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 tej tabeli.
====== 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, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{Patrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest inicjowany 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}}, jest wartością fałszywą, to iniciowaną tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{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}}.
Dla tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana 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 parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
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}} {{Patrz|tablica_ksiazki_strona}}, 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}}.
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ść: {{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}} {{LinPatrz|_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 kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{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 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:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}}, z: {{Code|tablica_ksiazki_stara}} {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{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 ======
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}}. 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.
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}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{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ść: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== 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 =====
A gdy przeciwnie dla: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, 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 i artykułu, 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:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, 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, lub gdy wartość: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{Code|wartosc_wyniku}} {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{Code|strona}} {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
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: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - 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:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - 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:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - 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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, 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}}}}. 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 '''Stronicowego Parsera''', czyli stronicowe. 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}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - 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:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Ś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.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== 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}}. 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}}, i zwracany jest wynik jak poprzednio.
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}}, 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}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. 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 parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{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}}. A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}. 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}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis: {{Code|spis}} {{LinkPatrz|spis}}, istnieje aktualnej książki, czyli zmienna: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku 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}}, 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}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} 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}}.
==== Przekierowania dla stron bez spisu ====
Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, 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}}.
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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== 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}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, 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 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}}''', 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}}, 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}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|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}}, 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}}.
Gdy artykuł nie jest korzystany, tzn. z: {{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}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== 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}}, 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 zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona 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.
==== 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}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} 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}} 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}} w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego 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.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, 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}}, uruchamiana z pewnymi parametrami.
==== 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}}, 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}}, 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}}, 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}}, 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}}. 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.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
86lj0vemlnxb97vqzdandgiaachvh9r
554521
554520
2026-09-05T17:58:44Z
Persino
2851
/* {{Śródtytuł|__FUNKCJA_SPISU}}{{Code|__FUNKCJA_SPISU}} */
554521
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ę informacji 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:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - 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}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - 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}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - 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}},jest fałsszywy, wtedy przy istnieniu funkcji element: {{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 tej tabeli.
====== 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, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest inicjowany 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}}, jest wartością fałszywą, to iniciowaną tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{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}}.
Dla tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana 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 parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
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}} {{Patrz|tablica_ksiazki_strona}}, 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}}.
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ść: {{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}} {{LinPatrz|_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 kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{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 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:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}}, z: {{Code|tablica_ksiazki_stara}} {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{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 ======
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}}. 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.
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}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{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ść: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== 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 =====
A gdy przeciwnie dla: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, 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 i artykułu, 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:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, 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, lub gdy wartość: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{Code|wartosc_wyniku}} {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{Code|strona}} {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
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: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - 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:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - 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:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - 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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, 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}}}}. 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 '''Stronicowego Parsera''', czyli stronicowe. 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}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - 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:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Ś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.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== 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}}. 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}}, i zwracany jest wynik jak poprzednio.
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}}, 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}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. 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 parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{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}}. A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}. 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}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis: {{Code|spis}} {{LinkPatrz|spis}}, istnieje aktualnej książki, czyli zmienna: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku 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}}, 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}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} 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}}.
==== Przekierowania dla stron bez spisu ====
Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, 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}}.
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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== 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}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{Patrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, 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 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}}''', 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}}, 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}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|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}}, 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}}.
Gdy artykuł nie jest korzystany, tzn. z: {{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}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== 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}}, 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 zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona 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.
==== 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}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} 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}} 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}} w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego 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.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, 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}}, uruchamiana z pewnymi parametrami.
==== 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}}, 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}}, 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}}, 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}}, 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}}. 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.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
0fi8r2ta5kafo0d74a859p5klti9ntw
554522
554521
2026-09-05T17:59:40Z
Persino
2851
/* Dane artykułu i książki, bieżącej */
554522
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ę informacji 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:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - 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}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - 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}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - 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}},jest fałsszywy, wtedy przy istnieniu funkcji element: {{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 tej tabeli.
====== 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, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest inicjowany 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}}, jest wartością fałszywą, to iniciowaną tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{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}}.
Dla tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana 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 parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
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}} {{Patrz|tablica_ksiazki_strona}}, 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}}.
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ść: {{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}} {{LinPatrz|_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 kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{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 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:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}}, z: {{Code|tablica_ksiazki_stara}} {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{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 ======
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}}. 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.
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}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{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ść: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== 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 =====
A gdy przeciwnie dla: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, 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 i artykułu, 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:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, 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, lub gdy wartość: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{Code|wartosc_wyniku}} {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{Code|strona}} {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
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: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - 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:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - 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:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - 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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, 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}}}}. 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 '''Stronicowego Parsera''', czyli stronicowe. 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}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - 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:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Ś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.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== 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}}. 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}}, i zwracany jest wynik jak poprzednio.
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}}, 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}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. 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 parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{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}}. A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}. 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}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis: {{Code|spis}} {{LinkPatrz|spis}}, istnieje aktualnej książki, czyli zmienna: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku 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}}, 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}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} 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}}.
==== Przekierowania dla stron bez spisu ====
Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, 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}}.
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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== 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}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{LinkPatrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, 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 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}}''', 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}}, 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}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|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}}, 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}}.
Gdy artykuł nie jest korzystany, tzn. z: {{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}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== 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}}, 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 zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona 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.
==== 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}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} 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}} 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}} w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego 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.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, 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}}, uruchamiana z pewnymi parametrami.
==== 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}}, 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}}, 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}}, 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}}, 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}}. 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.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
i51kdf5x975r1kbg548og9929erttci
554523
554522
2026-09-05T18:07:11Z
Persino
2851
/* Analiza spisu treści artykułu już tego sprawdzonego ze zebranymi informacjami o niej, zbieranie dodatkowych elementów */
554523
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ę informacji 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:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - 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}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - 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}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - 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, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest inicjowany 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}}, jest wartością fałszywą, to iniciowaną tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{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}}.
Dla tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana 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 parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
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}} {{Patrz|tablica_ksiazki_strona}}, 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}}.
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ść: {{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}} {{LinPatrz|_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 kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{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 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:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}}, z: {{Code|tablica_ksiazki_stara}} {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{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 ======
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}}. 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.
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}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{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ść: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== 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 =====
A gdy przeciwnie dla: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, 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 i artykułu, 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:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, 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, lub gdy wartość: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{Code|wartosc_wyniku}} {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{Code|strona}} {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
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: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - 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:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - 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:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - 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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, 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}}}}. 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 '''Stronicowego Parsera''', czyli stronicowe. 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}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - 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:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Ś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.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== 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}}. 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}}, i zwracany jest wynik jak poprzednio.
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}}, 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}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. 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 parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{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}}. A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}. 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}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis: {{Code|spis}} {{LinkPatrz|spis}}, istnieje aktualnej książki, czyli zmienna: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku 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}}, 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}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} 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}}.
==== Przekierowania dla stron bez spisu ====
Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, 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}}.
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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== 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}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{LinkPatrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, 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 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}}''', 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}}, 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}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|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}}, 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}}.
Gdy artykuł nie jest korzystany, tzn. z: {{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}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== 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}}, 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 zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona 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.
==== 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}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} 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}} 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}} w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego 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.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, 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}}, uruchamiana z pewnymi parametrami.
==== 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}}, 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}}, 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}}, 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}}, 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}}. 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.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
m0dquneynwekz9s5vl4yxojxpmc6diz
554524
554523
2026-09-05T18:11:35Z
Persino
2851
/* {{Śródtytuł|StronaSubstFunkcja}}{{Code|StronaSubstFunkcja}} */
554524
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ę informacji 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:
* {{Code|self}} - {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} - 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}},
* {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} - 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}}:
* {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} - 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}},
* {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} - 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, aktualnego artykułu, uzyskanych z ich analizy.
Definicja skrotowa funkcji:
<syntaxhighlight lang="lua">
local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}} - tablica dla analizowanej książki,
* {{Code|czy_podac_adres}} {{Patrz|czy_podac_adres}} - czy podać adres bazowego woluminu.
Tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest inicjowany 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}}, jest wartością fałszywą, to iniciowaną tablicy: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, jest parametr o kluczu: {{Code|licencja}} {{Patrz|licencja}}, tabelą: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}.
Dalej kolejno elementy: {{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}}.
Dla tabeli: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, o kluczu w nim: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, ona jest przyrównywana 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 parametr: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wtedy jest przy istnieniu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, jest ustawiany w nim element: {{Code|CzyArtykułKsiążki}} {{Patrz|CzyArtykułKsiążki}}, z wartością na {{Code|tak}}.
Gdy już spis jeszcze nie analizowano, a jeżeli juz został zanalizowany, to sprawdzany jest: {{Code|czy_spis_analizowano}}, tablicy: {{LinkPatrz|tablica_ksiazki}}.
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}} {{Patrz|tablica_ksiazki_strona}}, 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}}.
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ść: {{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}} {{LinPatrz|_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 kodu: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, zgłaszany jest kod: {{Code|korzystana strona główna nie istnieje}}.
{{Tab}}Przeciwnie przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}, ustawiany jest kod: {{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 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:
{{Tab}}Dalej jest tworzony element: {{Code|tablica_ksiazki_stara}} {{Patrz|tablica_ksiazki_stara}}, z: {{Code|tablica_ksiazki_stara}} {{LinkPatrz|tablica_ksiazki_stara}}.
{{Tab}}Uruchamiana jest: {{LinkŚródtytuł|__FUNKCJA_SPISU}}, z drugą wartością: {{Code|true}}.
Dalej przy pomocy funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, uzyskiwany jest jego odpowiedniek nieprzekierowaniowy {{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 ======
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}}. 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.
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}}. N asamym końcu zwracana jest wartość, z dwoma wartościami: {{Code|nil}}, dalej z wartościami: {{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ść: {{LinkPatrz|adres_ksiazki_glownego_spisu_tresci}}, nie istnieje, wtedy jest tylko wywoływana funkcja: {{LinkŚródtytuł|__FUNKCJA_SPISU}}.
===== 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 =====
A gdy przeciwnie dla: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, 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 i artykułu, 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:
{{Tab}}Jest liczone przekierowanie na jąką stronę przekierowuje, czyli: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}}, w takim razie, 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, lub gdy wartość: {{Code|tabela_artykul}} {{LinkPatrz|tabela_artykul}}, przybiera wartość niefałszywą, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|StronaSubstFunkcja}}, ze zwracaną wartością: {{Code|wartosc_wyniku}} {{LinkPatrz|wartosc_wyniku}}. Jeżeli ten warunek ostatni nie jest spełniony, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}, do tworzenia tabel przy pomocy tej funkcji.
{{Tab}}Liczona jest nazwa strony, na który wskazuje przekierowanie, czyli: {{Code|strona}} {{LinkPatrz|strona}}, i dzięki niej przyrównywany jest wartości: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
=== {{Śródtytuł|StronaZbiorcza}}{{Code|StronaZbiorcza}} ===
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: {{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:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa danego szablonu,
* {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tabela modyfikatorów szablonu,
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} {{Patrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - kod danego szablonu,
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|tab_numer}} - 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:
* {{Code|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}} - jak w: {{LinkPatrz|uzyskano_w_wyniku_parsowania_wywolanie_szablonu}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/ZbieranieDanychStron/Tom V}},
* {{Code|kod}} - 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:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}},
* {{Code|tab_numer}} - 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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jak jest prawdziwy, 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}}}}. 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 '''Stronicowego Parsera''', czyli stronicowe. 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}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}:
* {{Code|numeracja_aktualna}} {{Patrz|numeracja_aktualna}} - uchwyt szablonu nagłówka,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - 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:
* jak w: {{LinkZobaczTeż|KtorySzablonMaZwracacKategorieNaglowek-parametry}}.
=== {{Ś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.
=== Dalszy opis funkcji ===
Dalszy opis funkcji: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}.
==== 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}}. 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}}, i zwracany jest wynik jak poprzednio.
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}}, 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}}, dla tego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jednej ze zmiennych jest: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}.
==== Spisy książki ====
Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki}}. 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 parametrem, jeżeli jego pierwsza wartość istnieje. Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}}, który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}. Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}}, mówiący, jaki jest artykuł bazowy danego przekierowania.
==== Spis główny książki do spisu głónego bieżącego podręcznika ====
Jeżeli: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy}}, zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, ale wartość: {{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}, istnieje, wtedy zmienne: {{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}}. A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}. 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}}, czyli jest to tabela nazw adresu spisu głównego książki, na który wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny.
==== Operowanie na tabicy spisu książki ====
Gdy spis: {{Code|spis}} {{LinkPatrz|spis}}, istnieje aktualnej książki, czyli zmienna: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, liczymy artykuł i kod wyniku 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}}, 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}}, dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU}}. A na samym końcu po tych instrukcjach warunkowych liczymy {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku}}.
==== Tworzenie nazwy modułu ====
Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}} 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}}.
==== Przekierowania dla stron bez spisu ====
Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne}}, 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}}.
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: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest o wartości odpowiadającej prawdziwej, i zmienne nazw odpowadającej książki bieżącego artykułu dla książki rozważanej nie istnieją, to są one tworzone.
==== 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}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}.
==== Dane artykułu i książki, bieżącej ====
Dalej dla strony bieżącej, według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{LinkPatrz|artykul_analizowany}}, jest dawana jej wartość {{Code|true}}, tzn. czy dany artykuł jest zbieżący. A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki}}, 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 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}}''', 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}}, 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}}.
==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ====
Gdy to nie jest strona '''spis''', to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|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}}, 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}}.
Gdy artykuł nie jest korzystany, tzn. z: {{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}}, przeciwnie, jest tak samo, z dodatkiem ze dla {{LinkPatrz|strona_zbiorcza}}, jest liczona zmienna {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza.
==== 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}}, 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 zmiennej o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane}}, dla strona 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.
==== 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}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu}}, którego pierwszym parametrem jest ten tekst.
==== Wystawienie do struktury tablic z danymi informacji o artykule ====
Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}} ze zmiennej {{LinkPatrz|tablica_danych_nazwy_artykulu}} z kluczem {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu}} 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}} 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}} w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}.
==== Kod wikidanych rozważanego artykułu ====
Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jego 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.
==== Rozważania nad adresem artykułu bieżącego, czy nie ====
Gdy strona jest równa bieżącej ze zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}.
==== Szablony tekstu ====
Dla artykułu korzystanego uruchamiamy dwie tutaj funkcje, tzn. pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne zbierania artykułów ze zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}}, druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}.
==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ====
Dla zmiennej dla strony korzystanej {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Tom I}}, gdy chcemy liczyć spis, to musi być ustawiona zmienna z: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} o kluczu {{LinkPatrz|analiza_spis_tresci_korzystane}}, przyjmującej ten parametr wartość prawdziwą, lub przeciwnie dla klucza z: {{LinkPatrz|analiza_spis_tresci_doloczone}}, wtedy przygotuwujemy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, 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}}, uruchamiana z pewnymi parametrami.
==== 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}}, 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}}, 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}}, 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}}, 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}}. 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.
==== Zwracane wartości i ich opis ====
Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego w sposób:
<syntaxhighlight lang="lua">
return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true;
</syntaxhighlight>
Parametry zwracane:
* {{Code|self.tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}},
* {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Tom I}},
* {{Code|true}} - wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
54ccwtt99jkong5d29cmfm1uins9i7b
Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom II
4
63917
554540
553011
2026-09-05T19:39:37Z
Persino
2851
554540
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu {{Code|SZABLON}}, linkuje do artykułu w książce, lub obiekt {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika. Robi to przy pomocy funkcji {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to zależy od tego od definicji, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę za podręcznik, jeżeli jest spełnione {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez mechanizm '''MediaWiki''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów,
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artyluły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, dla innej wartości funkcja zzucza wartości: {{Code|return nil,false;}}, a dla tego pierwszego dzięki tej zmiennej: {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za pożliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}. Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i na podstawie: {{Code|LINKW}}, jako normalne linki wewnętrzne. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli jest, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{Patrz|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}},
* Dla szablonu {{LinkPatrz|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta pierwsza funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego, w tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}.
Parametrami zwracanymi przez funkcję są we wskazaniu wartości zwracane przez tą ostatnią wpomnianą procedurę:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły inną funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}. Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, lub znalazła okładkę, bądź artykuł glówny, lub inny podobny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii lub elementami początku i końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzny: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
** Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn.one muszą być w kodzie tekstu {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ickpnwsewt97z20ljdtfyvaqilluabk
554554
554540
2026-09-05T21:15:08Z
Persino
2851
554554
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu {{Code|SZABLON}}, linkuje do artykułu w książce, lub obiekt {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika. Robi to przy pomocy funkcji {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to zależy od tego od definicji, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę za podręcznik, jeżeli jest spełnione {{Code|czy_podrecznik}} {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez mechanizm '''MediaWiki''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów,
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artyluły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, dla innej wartości funkcja zzucza wartości: {{Code|return nil,false;}}, a dla tego pierwszego dzięki tej zmiennej: {{Code|czy_podrecznik}} {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za pożliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}. Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i na podstawie: {{Code|LINKW}}, jako normalne linki wewnętrzne. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli jest, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}},
* Dla szablonu {{s|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta pierwsza funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego, w tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}.
Parametrami zwracanymi przez funkcję są we wskazaniu wartości zwracane przez tą ostatnią wpomnianą procedurę:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły inną funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}. Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, lub znalazła okładkę, bądź artykuł glówny, lub inny podobny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii lub elementami początku i końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzny: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
** Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn.one muszą być w kodzie tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
4mzefm0v4b6imnoe2ld9rgj1fwyj86n
554568
554554
2026-09-06T08:42:23Z
Persino
2851
/* {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} */
554568
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu {{Code|SZABLON}}, linkują do artykułu w książce, lub obiekt {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika, wtedy {{Code|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}. Dla innej wartości tej zmiennej, też jest sprawdzane, czy to jest w ogóle link. Ona robi to przy pomocy funkcji {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja dla podstrony książki, też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to zależy od tego od definicji, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę, która jest podstroną podręcznika, za podręcznik, jeżeli jest spełnione {{Code|czy_podrecznik}} {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez mechanizm '''MediaWiki''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów,
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artykuły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, i nie tylko. Gdy strona nie jest linkiem, wtedy funkcja zrzucza wartości: {{Code|return nil,false;}}. A dla tego pierwszego dzięki tej zmiennej: {{Code|czy_podrecznik}} {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za możliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}. Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i na podstawie: {{Code|LINKW}}, jako normalne linki wewnętrzne. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli jest, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}},
* Dla szablonu {{s|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta pierwsza funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego, w tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}.
Parametrami zwracanymi przez funkcję są we wskazaniu wartości zwracane przez tą ostatnią wpomnianą procedurę:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły inną funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}. Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, lub znalazła okładkę, bądź artykuł glówny, lub inny podobny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii lub elementami początku i końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzny: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
** Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn.one muszą być w kodzie tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
76o2xgfxddg6s4s9tbwuzdv0wvc08wj
554569
554568
2026-09-06T08:45:24Z
Persino
2851
/* {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} */
554569
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu {{Code|SZABLON}}, linkują do artykułu w książce, lub obiekt {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika, wtedy {{Code|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}. Dla innej wartości tej zmiennej, dla tych samych obiektów, też jest sprawdzane, czy to jest w ogóle link. Ona robi to przy pomocy funkcji {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja dla podstrony książki, też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to zależy od tego od definicji, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę, która jest podstroną podręcznika, za podręcznik, jeżeli jest spełnione {{Code|czy_podrecznik}} {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez mechanizm '''MediaWiki''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów,
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artykuły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, i nie tylko. Gdy strona nie jest linkiem, wtedy funkcja zrzucza wartości: {{Code|return nil,false;}}. A dla tego pierwszego, dzięki tej zmiennej: {{Code|czy_podrecznik}} {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za możliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}. Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i na podstawie: {{Code|LINKW}}, jako normalne linki wewnętrzne. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli jest, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}},
* Dla szablonu {{s|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta pierwsza funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego, w tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}.
Parametrami zwracanymi przez funkcję są we wskazaniu wartości zwracane przez tą ostatnią wpomnianą procedurę:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły inną funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}. Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, lub znalazła okładkę, bądź artykuł glówny, lub inny podobny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii lub elementami początku i końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzny: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
** Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn.one muszą być w kodzie tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
tkhf377gr04vsj2ucj59slj20cbf1y9
554570
554569
2026-09-06T08:49:50Z
Persino
2851
/* {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} */
554570
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu {{Code|SZABLON}}, linkują do artykułu w książce, lub obiekt {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika, wtedy {{Code|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}. Dla innej wartości tej zmiennej, dla tych samych obiektów, też jest sprawdzane, czy to jest w ogóle link. Ona robi to przy pomocy funkcji {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja dla podstrony książki, też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to zależy od tego od definicji, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę, która jest podstroną podręcznika, za podręcznik, jeżeli jest spełnione {{Code|czy_podrecznik}} {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez mechanizm '''MediaWiki''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów,
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artykuły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, i nie tylko. Gdy strona nie jest linkiem, wtedy funkcja zrzucza wartości: {{Code|return nil,false;}}. A dla tego pierwszego, dzięki tej zmiennej: {{Code|czy_podrecznik}} {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za możliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące spisowe linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}. Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i linki wewnętrzne: {{Code|LINKW}}, jako normalne. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli są, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}},
* Dla szablonu {{s|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta pierwsza funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego, w tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}.
Parametrami zwracanymi przez funkcję są we wskazaniu wartości zwracane przez tą ostatnią wpomnianą procedurę:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły inną funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}. Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, lub znalazła okładkę, bądź artykuł glówny, lub inny podobny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii lub elementami początku i końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzny: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
** Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn.one muszą być w kodzie tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
8o97kcc8klq4khpyld48d8z0w9gi918
554571
554570
2026-09-06T08:52:01Z
Persino
2851
/* {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} */
554571
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu {{Code|SZABLON}}, linkują do artykułu w książce, lub obiekt {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika, wtedy {{Code|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}. Dla innej wartości tej zmiennej, dla tych samych obiektów, też jest sprawdzane, czy to jest w ogóle link. Ona robi to przy pomocy funkcji {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja dla podstrony książki, też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to zależy od tego od definicji, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę, która jest podstroną podręcznika, za podręcznik, jeżeli jest spełnione {{Code|czy_podrecznik}} {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez mechanizm '''MediaWiki''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów,
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artykuły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, i nie tylko. Gdy strona nie jest linkiem, wtedy funkcja zrzucza wartości: {{Code|return nil,false;}}. A dla tego pierwszego, dzięki tej zmiennej: {{Code|czy_podrecznik}} {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za możliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące spisowe linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}. Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i linki wewnętrzne: {{Code|LINKW}}, jako normalne. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli są, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}},
* Dla szablonu {{s|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta poprzednia funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego. W tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}.
Parametrami zwracanymi przez funkcję są we wskazaniu wartości zwracane przez tą ostatnią wpomnianą procedurę:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły inną funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}. Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, lub znalazła okładkę, bądź artykuł glówny, lub inny podobny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii lub elementami początku i końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzny: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
** Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn.one muszą być w kodzie tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
24jm4azapiwo73qif4149757j8p4gbu
554572
554571
2026-09-06T09:01:49Z
Persino
2851
/* {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} */
554572
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu {{Code|SZABLON}}, linkują do artykułu w książce, lub obiekt {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika, wtedy {{Code|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}. Dla innej wartości tej zmiennej, dla tych samych obiektów, też jest sprawdzane, czy to jest w ogóle link. Ona robi to przy pomocy funkcji {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja dla podstrony książki, też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to zależy od tego od definicji, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę, która jest podstroną podręcznika, za podręcznik, jeżeli jest spełnione {{Code|czy_podrecznik}} {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez mechanizm '''MediaWiki''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów,
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artykuły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, i nie tylko. Gdy strona nie jest linkiem, wtedy funkcja zrzucza wartości: {{Code|return nil,false;}}. A dla tego pierwszego, dzięki tej zmiennej: {{Code|czy_podrecznik}} {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za możliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące spisowe linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}. Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i linki wewnętrzne: {{Code|LINKW}}, jako normalne. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli są, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}},
* Dla szablonu {{s|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta poprzednia funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego. W tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}.
Parametrami zwracanymi przez funkcję są we wskazaniu wartości zwracane przez tą ostatnią wpomnianą procedurę:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}.
Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, ale znalazła okładkę, bądź artykuł glówny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii lub elementami początku i końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzny: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
** Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn.one muszą być w kodzie tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
l119r5rzhrvl5r13qm88sv7kttiwayu
554573
554572
2026-09-06T09:04:52Z
Persino
2851
/* {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} */
554573
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu {{Code|SZABLON}}, linkują do artykułu w książce, lub obiekt {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika, wtedy {{Code|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}. Dla innej wartości tej zmiennej, dla tych samych obiektów, też jest sprawdzane, czy to jest w ogóle link. Ona robi to przy pomocy funkcji {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja dla podstrony książki, też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to zależy od tego od definicji, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę, która jest podstroną podręcznika, za podręcznik, jeżeli jest spełnione {{Code|czy_podrecznik}} {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez mechanizm '''MediaWiki''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów,
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artykuły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, i nie tylko. Gdy strona nie jest linkiem, wtedy funkcja zrzucza wartości: {{Code|return nil,false;}}. A dla tego pierwszego, dzięki tej zmiennej: {{Code|czy_podrecznik}} {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za możliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące spisowe linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}. Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i linki wewnętrzne: {{Code|LINKW}}, jako normalne. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli są, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}},
* Dla szablonu {{s|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta poprzednia funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego. W tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}.
Parametrami zwracanymi przez funkcję są we wskazaniu wartości zwracane przez tą ostatnią wpomnianą procedurę:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}.
Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, ale znalazła okładkę, bądź artykuł glówny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii lub elementami początku i końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzne: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
** Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn. one muszą być w kodzie tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
3wdwll2mnbd24nzy20iouxcfle5yjvq
554574
554573
2026-09-06T09:17:06Z
Persino
2851
/* {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} */
554574
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu {{Code|SZABLON}}, linkują do artykułu w książce, lub obiekt {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika, wtedy {{Code|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}. Dla innej wartości tej zmiennej, dla tych samych obiektów, też jest sprawdzane, czy to jest w ogóle link. Ona robi to przy pomocy funkcji {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja dla podstrony książki, też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to zależy od tego od definicji, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę, która jest podstroną podręcznika, za podręcznik, jeżeli jest spełnione {{Code|czy_podrecznik}} {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez mechanizm '''MediaWiki''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów,
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artykuły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, i nie tylko. Gdy strona nie jest linkiem, wtedy funkcja zrzucza wartości: {{Code|return nil,false;}}. A dla tego pierwszego, dzięki tej zmiennej: {{Code|czy_podrecznik}} {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za możliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące spisowe linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}. Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i linki wewnętrzne: {{Code|LINKW}}, jako normalne. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli są, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}},
* Dla szablonu {{s|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta poprzednia funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego. W tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}.
Parametrami zwracanymi przez funkcję są we wskazaniu wartości zwracane przez tą ostatnią wpomnianą procedurę:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}.
Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, ale znalazła okładkę, bądź artykuł glówny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii lub elementami początku i końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzne: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
; Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}{{dk}}
* Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
* Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
* Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
* {{Code|czy_wszystkie_linki}} - czy ma wszystkie linki uwzględniać, do wartości zwracanej przez tą funkcję {{Code|true}},
* {{Code|czy_okladka}} - bez artykułów, ksiązki, będących okładkami,
* {{Code|bez_innych_stron}} - bez stron będących nieartykułami danej książki.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn. one muszą być w kodzie tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
cryiewufahk80hot7gb2jqv0y7daigk
554575
554574
2026-09-06T09:19:17Z
Persino
2851
/* {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} */
554575
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu {{Code|SZABLON}}, linkują do artykułu w książce, lub obiekt {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika, wtedy {{Code|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}. Dla innej wartości tej zmiennej, dla tych samych obiektów, też jest sprawdzane, czy to jest w ogóle link. Ona robi to przy pomocy funkcji {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja dla podstrony książki, też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to zależy od tego od definicji, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę, która jest podstroną podręcznika, za podręcznik, jeżeli jest spełnione {{Code|czy_podrecznik}} {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez mechanizm '''MediaWiki''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów.
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artykuły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, i nie tylko. Gdy strona nie jest linkiem, wtedy funkcja zrzucza wartości: {{Code|return nil,false;}}. A dla tego pierwszego, dzięki tej zmiennej: {{Code|czy_podrecznik}} {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za możliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące spisowe linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}. Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i linki wewnętrzne: {{Code|LINKW}}, jako normalne. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli są, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}},
* Dla szablonu {{s|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta poprzednia funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego. W tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}.
Parametrami zwracanymi przez funkcję są we wskazaniu wartości zwracane przez tą ostatnią wpomnianą procedurę:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}.
Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, ale znalazła okładkę, bądź artykuł glówny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii lub elementami początku i końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzne: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
; Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}{{dk}}
* Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
* Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
* Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
* {{Code|czy_wszystkie_linki}} - czy ma wszystkie linki uwzględniać, do wartości zwracanej przez tą funkcję {{Code|true}},
* {{Code|czy_okladka}} - bez artykułów, ksiązki, będących okładkami,
* {{Code|bez_innych_stron}} - bez stron będących nieartykułami danej książki.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn. one muszą być w kodzie tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
azdk8r4lexwzq0s94c5ul0t2ql027ro
554576
554575
2026-09-06T09:21:42Z
Persino
2851
/* {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} */
554576
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu {{Code|SZABLON}}, linkują do artykułu w książce, lub obiekt {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika, wtedy {{Code|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}. Dla innej wartości tej zmiennej, tzn. {{Code|<nowiki>> 1</nowiki>}}, dla tych samych typów obiektów, też jest sprawdzane, czy to jest w ogóle link. Ona robi to przy pomocy funkcji {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja dla podstrony książki, też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to zależy od tego od definicji, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę, która jest podstroną podręcznika, za podręcznik, jeżeli jest spełnione {{Code|czy_podrecznik}} {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez mechanizm '''MediaWiki''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów.
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artykuły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, i nie tylko. Gdy strona nie jest linkiem, wtedy funkcja zrzucza wartości: {{Code|return nil,false;}}. A dla tego pierwszego, dzięki tej zmiennej: {{Code|czy_podrecznik}} {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za możliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące spisowe linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}. Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i linki wewnętrzne: {{Code|LINKW}}, jako normalne. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli są, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}},
* Dla szablonu {{s|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta poprzednia funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego. W tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}.
Parametrami zwracanymi przez funkcję są we wskazaniu wartości zwracane przez tą ostatnią wpomnianą procedurę:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}.
Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, ale znalazła okładkę, bądź artykuł glówny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii lub elementami początku i końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzne: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
; Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}{{dk}}
* Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
* Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
* Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
* {{Code|czy_wszystkie_linki}} - czy ma wszystkie linki uwzględniać, do wartości zwracanej przez tą funkcję {{Code|true}},
* {{Code|czy_okladka}} - bez artykułów, ksiązki, będących okładkami,
* {{Code|bez_innych_stron}} - bez stron będących nieartykułami danej książki.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn. one muszą być w kodzie tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
5d6kn346o7vqx20v2z8lme0g49p2l7m
554577
554576
2026-09-06T09:23:38Z
Persino
2851
/* {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} */
554577
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu {{Code|SZABLON}}, linkują do artykułu w książce, lub obiekt {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika, wtedy {{Code|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}. Dla innej wartości tej zmiennej, tzn. {{Code|<nowiki>> 1</nowiki>}}, dla tych samych typów obiektów, też jest sprawdzane, czy to jest w ogóle link. Ona robi to przy pomocy funkcji {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja dla podstrony książki, też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to zależy od tego od definicji, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę, która jest podstroną podręcznika, za podręcznik, jeżeli jest spełnione {{Code|czy_podrecznik}} {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez mechanizm '''MediaWiki''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów.
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artykuły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, i nie tylko. Gdy strona nie jest linkiem, wtedy funkcja zrzucza wartości: {{Code|return nil,false;}}. A dla tego pierwszego, dzięki tej zmiennej: {{Code|czy_podrecznik}} {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za możliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące spisowe linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}. Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i linki wewnętrzne: {{Code|LINKW}}, jako normalne. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli są, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}},
* Dla szablonu {{s|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta poprzednia funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego. W tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}.
Parametrami zwracanymi przez funkcję są we wskazaniu wartości zwracane przez tą ostatnią wpomnianą procedurę:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}.
Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, ale znalazła okładkę, bądź artykuł glówny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii, elementami początku lub końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzne: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
; Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}{{dk}}
* Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
* Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
* Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
* {{Code|czy_wszystkie_linki}} - czy ma wszystkie linki uwzględniać, do wartości zwracanej przez tą funkcję {{Code|true}},
* {{Code|czy_okladka}} - bez artykułów, ksiązki, będących okładkami,
* {{Code|bez_innych_stron}} - bez stron będących nieartykułami danej książki.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn. one muszą być w kodzie tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
td2rsfx6v8cjbeob0y9jhdassn1qt6i
554578
554577
2026-09-06T09:25:51Z
Persino
2851
/* {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} */
554578
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu {{Code|SZABLON}}, linkują do artykułu w książce, lub obiekt {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika, wtedy {{Code|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}. Dla innej wartości tej zmiennej, tzn. {{Code|<nowiki>> 1</nowiki>}}, dla tych samych typów obiektów, też jest sprawdzane, czy to jest w ogóle link. Ona robi to przy pomocy funkcji {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja dla podstrony książki, też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to zależy od tego od definicji, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę, która jest podstroną podręcznika, za podręcznik, jeżeli jest spełnione {{Code|czy_podrecznik}} {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez mechanizm '''MediaWiki''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów.
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artykuły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, i nie tylko. Gdy strona nie jest linkiem, wtedy funkcja zrzucza wartości: {{Code|return nil,false;}}. A dla tego pierwszego, dzięki tej zmiennej: {{Code|czy_podrecznik}} {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za możliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące spisowe linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}. Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i linki wewnętrzne: {{Code|LINKW}}, jako normalne. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli są, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}},
* Dla szablonu {{s|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta poprzednia funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego. W tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}, te szablony są opisane tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}.
Parametrami zwracanymi przez funkcję są we wskazaniu wartości zwracane przez tą ostatnią wpomnianą procedurę:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}.
Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, ale znalazła okładkę, bądź artykuł glówny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii, elementami początku lub końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzne: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
; Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}{{dk}}
* Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
* Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
* Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
* {{Code|czy_wszystkie_linki}} - czy ma wszystkie linki uwzględniać, do wartości zwracanej przez tą funkcję {{Code|true}},
* {{Code|czy_okladka}} - bez artykułów, ksiązki, będących okładkami,
* {{Code|bez_innych_stron}} - bez stron będących nieartykułami danej książki.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn. one muszą być w kodzie tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
lpo088z6dq2s32lh7vsrmumkyu3w3ei
554579
554578
2026-09-06T09:28:45Z
Persino
2851
/* {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} */
554579
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu {{Code|SZABLON}}, linkują do artykułu w książce, lub obiekt {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika, wtedy {{Code|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}. Dla innej wartości tej zmiennej, tzn. {{Code|<nowiki>> 1</nowiki>}}, dla tych samych typów obiektów, też jest sprawdzane, czy to jest w ogóle link. Ona robi to przy pomocy funkcji {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja dla podstrony książki, też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to zależy od tego od definicji, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę, która jest podstroną podręcznika, za podręcznik, jeżeli jest spełnione {{Code|czy_podrecznik}} {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez mechanizm '''MediaWiki''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów.
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artykuły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, i nie tylko. Gdy strona nie jest linkiem, wtedy funkcja zrzucza wartości: {{Code|return nil,false;}}. A dla tego pierwszego, dzięki tej zmiennej: {{Code|czy_podrecznik}} {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za możliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące spisowe linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}. Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i linki wewnętrzne: {{Code|LINKW}}, jako normalne. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli są, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}},
* Dla szablonu {{s|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta poprzednia funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego. W tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same wartości zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}.
Zwracane parametry przez funkcję:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}.
Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, ale znalazła okładkę, bądź artykuł glówny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii, elementami początku lub końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzne: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
; Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}{{dk}}
* Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
* Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
* Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
* {{Code|czy_wszystkie_linki}} - czy ma wszystkie linki uwzględniać, do wartości zwracanej przez tą funkcję {{Code|true}},
* {{Code|czy_okladka}} - bez artykułów, ksiązki, będących okładkami,
* {{Code|bez_innych_stron}} - bez stron będących nieartykułami danej książki.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn. one muszą być w kodzie tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
2lyp4wde9i9i7topth9b5d8p9eazzxc
554580
554579
2026-09-06T09:32:39Z
Persino
2851
/* {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} */
554580
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu {{Code|SZABLON}}, linkują do artykułu w książce, lub obiekt {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika, wtedy {{Code|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}. Dla innej wartości tej zmiennej, tzn. {{Code|<nowiki>> 1</nowiki>}}, dla tych samych typów obiektów, też jest sprawdzane, czy to jest w ogóle link. Ona robi to przy pomocy funkcji {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja dla podstrony książki, też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to zależy od tego od definicji, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę, która jest podstroną podręcznika, za podręcznik, jeżeli jest spełnione {{Code|czy_podrecznik}} {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez mechanizm '''MediaWiki''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów.
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artykuły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, i nie tylko, tzn. dla: {{Code|<nowiki>> 1</nowiki>}}, lub dla wartości {{Code|nil}}.
Gdy strona nie jest linkiem, wtedy funkcja zrzucza wartości: {{Code|return nil,false;}}.
A dla tego pierwszego, dzięki tej zmiennej: {{Code|czy_podrecznik}} {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za możliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące spisowe linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}. Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i linki wewnętrzne: {{Code|LINKW}}, jako normalne. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli są, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}},
* Dla szablonu {{s|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta poprzednia funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego. W tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same wartości zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}.
Zwracane parametry przez funkcję:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}.
Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, ale znalazła okładkę, bądź artykuł glówny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii, elementami początku lub końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzne: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
; Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}{{dk}}
* Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
* Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
* Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
* {{Code|czy_wszystkie_linki}} - czy ma wszystkie linki uwzględniać, do wartości zwracanej przez tą funkcję {{Code|true}},
* {{Code|czy_okladka}} - bez artykułów, ksiązki, będących okładkami,
* {{Code|bez_innych_stron}} - bez stron będących nieartykułami danej książki.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn. one muszą być w kodzie tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
csfhybu65115wuoie8k81k4rujfxbbs
554581
554580
2026-09-06T09:34:06Z
Persino
2851
/* {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} */
554581
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu {{Code|SZABLON}}, linkują do artykułu w książce, lub obiekt {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika, wtedy {{Code|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, lub dla innej wartości tej zmiennej, tzn., wtedy: {{Code|<nowiki>> 1</nowiki>}}. Dla tych samych typów obiektów, też jest sprawdzane, czy to jest w ogóle link. Ona robi to przy pomocy funkcji {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja dla podstrony książki, też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to zależy od tego od definicji, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę, która jest podstroną podręcznika, za podręcznik, jeżeli jest spełnione {{Code|czy_podrecznik}} {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez mechanizm '''MediaWiki''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów.
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artykuły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, i nie tylko, tzn. dla: {{Code|<nowiki>> 1</nowiki>}}, lub dla wartości {{Code|nil}}.
Gdy strona nie jest linkiem, wtedy funkcja zrzucza wartości: {{Code|return nil,false;}}.
A dla tego pierwszego, dzięki tej zmiennej: {{Code|czy_podrecznik}} {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za możliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące spisowe linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}. Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i linki wewnętrzne: {{Code|LINKW}}, jako normalne. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli są, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}},
* Dla szablonu {{s|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta poprzednia funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego. W tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same wartości zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}.
Zwracane parametry przez funkcję:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}.
Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, ale znalazła okładkę, bądź artykuł glówny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii, elementami początku lub końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzne: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
; Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}{{dk}}
* Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
* Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
* Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
* {{Code|czy_wszystkie_linki}} - czy ma wszystkie linki uwzględniać, do wartości zwracanej przez tą funkcję {{Code|true}},
* {{Code|czy_okladka}} - bez artykułów, ksiązki, będących okładkami,
* {{Code|bez_innych_stron}} - bez stron będących nieartykułami danej książki.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn. one muszą być w kodzie tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
hp73zc4mdag67ayfqpgsm8b0zdrbhn7
554582
554581
2026-09-06T09:36:04Z
Persino
2851
/* {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} */
554582
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu {{Code|SZABLON}}, linkują do artykułu w książce, lub obiekt {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika, wtedy {{Code|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, lub dla innej wartości tej zmiennej, tzn., wtedy: {{Code|<nowiki>> 1</nowiki>}}. Dla tych samych typów obiektów, też jest sprawdzane, czy to jest w ogóle link. Ona robi to przy pomocy funkcji {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja dla podstrony książki, też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę, która jest podstroną podręcznika, za podręcznik, jeżeli jest spełnione {{Code|czy_podrecznik}} {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez '''mechanizm {{NS|l=tak|k=w|w=tak}}''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów.
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artykuły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, i nie tylko, tzn. dla: {{Code|<nowiki>> 1</nowiki>}}, lub dla wartości {{Code|nil}}.
Gdy strona nie jest linkiem, wtedy funkcja zrzucza wartości: {{Code|return nil,false;}}.
A dla tego pierwszego, dzięki tej zmiennej: {{Code|czy_podrecznik}} {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za możliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące spisowe linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}. Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i linki wewnętrzne: {{Code|LINKW}}, jako normalne. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli są, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}},
* Dla szablonu {{s|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta poprzednia funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego. W tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same wartości zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}.
Zwracane parametry przez funkcję:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}.
Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, ale znalazła okładkę, bądź artykuł glówny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii, elementami początku lub końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzne: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
; Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}{{dk}}
* Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
* Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
* Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
* {{Code|czy_wszystkie_linki}} - czy ma wszystkie linki uwzględniać, do wartości zwracanej przez tą funkcję {{Code|true}},
* {{Code|czy_okladka}} - bez artykułów, ksiązki, będących okładkami,
* {{Code|bez_innych_stron}} - bez stron będących nieartykułami danej książki.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn. one muszą być w kodzie tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
1uco9raovayakk9ubgoj3mpnscib577
554583
554582
2026-09-06T09:36:53Z
Persino
2851
/* {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} */
554583
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu {{Code|SZABLON}}, linkują do artykułu w książce, lub obiekt {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika, wtedy {{Code|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, lub dla innej wartości tej zmiennej, tzn., wtedy: {{Code|<nowiki>> 1</nowiki>}}. Dla tych samych typów obiektów, też jest sprawdzane, czy to jest w ogóle link. Ona robi to przy pomocy funkcji {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja dla podstrony książki, też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę, która jest podstroną podręcznika, za podręcznik, jeżeli jest spełnione {{Code|czy_podrecznik}} {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez '''mechanizm {{NS|l=tak|k=mw|w=tak}}''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów.
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artykuły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, i nie tylko, tzn. dla: {{Code|<nowiki>> 1</nowiki>}}, lub dla wartości {{Code|nil}}.
Gdy strona nie jest linkiem, wtedy funkcja zrzucza wartości: {{Code|return nil,false;}}.
A dla tego pierwszego, dzięki tej zmiennej: {{Code|czy_podrecznik}} {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za możliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące spisowe linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}. Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i linki wewnętrzne: {{Code|LINKW}}, jako normalne. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli są, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}},
* Dla szablonu {{s|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta poprzednia funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego. W tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same wartości zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}.
Zwracane parametry przez funkcję:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}.
Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, ale znalazła okładkę, bądź artykuł glówny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii, elementami początku lub końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzne: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
; Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}{{dk}}
* Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
* Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
* Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
* {{Code|czy_wszystkie_linki}} - czy ma wszystkie linki uwzględniać, do wartości zwracanej przez tą funkcję {{Code|true}},
* {{Code|czy_okladka}} - bez artykułów, ksiązki, będących okładkami,
* {{Code|bez_innych_stron}} - bez stron będących nieartykułami danej książki.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn. one muszą być w kodzie tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
4z2hlit0zh8vbdp023jdv1cjk7impak
554584
554583
2026-09-06T09:39:38Z
Persino
2851
/* {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} */
554584
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu {{Code|SZABLON}}, linkują do artykułu w książce, lub obiekt {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika, wtedy {{Code|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, lub dla innej wartości tej zmiennej, tzn., wtedy: {{Code|<nowiki>> 1</nowiki>}}. Dla tych samych typów obiektów, też jest sprawdzane, czy to jest w ogóle link. Ona robi to przy pomocy funkcji {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja dla podstrony książki, też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę, która jest podstroną podręcznika, za podręcznik, jeżeli jest spełnione {{Code|czy_podrecznik}} {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez '''mechanizm {{NS|l=tak|k=mw|w=tak}}''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów.
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artykuły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, i nie tylko, tzn. dla: {{Code|<nowiki>> 1</nowiki>}}, lub dla wartości {{Code|nil}}.
Gdy strona nie jest linkiem, wtedy funkcja zrzucza wartości: {{Code|return nil,false;}}.
A dla tego pierwszego, dzięki tej zmiennej: {{Code|czy_podrecznik}} {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za możliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące spisowe linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}.
Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i linki wewnętrzne: {{Code|LINKW}}, jako normalne. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli są, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}},
* Dla szablonu {{s|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta poprzednia funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego. W tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same wartości zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}.
Zwracane parametry przez funkcję:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}.
Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, ale znalazła okładkę, bądź artykuł glówny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii, elementami początku lub końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzne: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
; Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}{{dk}}
* Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
* Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
* Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
* {{Code|czy_wszystkie_linki}} - czy ma wszystkie linki uwzględniać, do wartości zwracanej przez tą funkcję {{Code|true}},
* {{Code|czy_okladka}} - bez artykułów, ksiązki, będących okładkami,
* {{Code|bez_innych_stron}} - bez stron będących nieartykułami danej książki.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn. one muszą być w kodzie tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
pzfaiftzhba5mrjqncmubl659pp4hh8
554585
554584
2026-09-06T09:41:03Z
Persino
2851
/* {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} */
554585
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu {{Code|SZABLON}}, linkują do artykułu w książce, lub obiekt {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika, wtedy {{Code|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, lub dla innej wartości tej zmiennej, tzn., wtedy: {{Code|<nowiki>> 1</nowiki>}}. Dla tych samych typów obiektów, też jest sprawdzane, czy to jest w ogóle link. Ona robi to przy pomocy funkcji {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja dla podstrony książki, też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę, która jest podstroną podręcznika, za podręcznik, jeżeli jest spełnione {{Code|czy_podrecznik}} {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez '''mechanizm {{NS|l=tak|k=mw|w=tak}}''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów.
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artykuły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, i nie tylko, tzn. dla: {{Code|<nowiki>> 1</nowiki>}}, lub dla wartości {{Code|nil}}.
Gdy strona nie jest linkiem, wtedy funkcja zrzucza wartości: {{Code|return nil,false;}}.
A dla tego pierwszego, dzięki tej zmiennej: {{Code|czy_podrecznik}} {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za możliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące spisowe linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}.
Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i linki wewnętrzne: {{Code|LINKW}}, jako normalne, jak i również zewnętrzne: {{Code|LINKZ}}. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli są, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}},
* Dla szablonu {{s|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta poprzednia funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego. W tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same wartości zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}.
Zwracane parametry przez funkcję:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}.
Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, ale znalazła okładkę, bądź artykuł glówny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii, elementami początku lub końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzne: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
; Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}{{dk}}
* Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
* Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
* Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
* {{Code|czy_wszystkie_linki}} - czy ma wszystkie linki uwzględniać, do wartości zwracanej przez tą funkcję {{Code|true}},
* {{Code|czy_okladka}} - bez artykułów, ksiązki, będących okładkami,
* {{Code|bez_innych_stron}} - bez stron będących nieartykułami danej książki.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn. one muszą być w kodzie tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
7ih04m84ys93rwjyf24c3trxxqxi9ij
554586
554585
2026-09-06T09:47:04Z
Persino
2851
554586
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu: {{Code|SZABLON}}, linkują do artykułu w książce, lub obiekt: {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika, wtedy: {{Code|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}. Dla tych samych typów obiektów, plus typ: {{Code|LINKZ}}, też jest sprawdzane, czy to jest w ogóle link, wtedy mamy: {{Code|numer_rodzaju_artykulu}} {{Code|<nowiki>></nowiki>}} {{Code|1}}, lub to nie jest link, wtedy ta wartość wskazuje na {{Code|nil}}.
Ona robi to, analizuje to, przy pomocy funkcji: {{LinkŚródtytuł|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, która sprawdza, czy to jest link, i zwraca jego pewne parametry.
Funkcja dla podstrony książki, też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę, która jest podstroną podręcznika, za podręcznik, jeżeli jest spełnione {{Code|czy_podrecznik}} {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez '''mechanizm {{NS|l=tak|k=mw|w=tak}}''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów.
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artykuły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, i nie tylko, tzn. dla: {{Code|<nowiki>> 1</nowiki>}}, lub dla wartości {{Code|nil}}.
Gdy strona nie jest linkiem, wtedy funkcja zrzucza wartości: {{Code|return nil,false;}}.
A dla tego pierwszego, dzięki tej zmiennej: {{Code|czy_podrecznik}} {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za możliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące spisowe linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}.
Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i linki wewnętrzne: {{Code|LINKW}}, jako normalne, jak i również zewnętrzne: {{Code|LINKZ}}. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli są, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}},
* Dla szablonu {{s|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta poprzednia funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego. W tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same wartości zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}.
Zwracane parametry przez funkcję:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}.
Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, ale znalazła okładkę, bądź artykuł glówny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii, elementami początku lub końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzne: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
; Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}{{dk}}
* Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
* Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
* Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
* {{Code|czy_wszystkie_linki}} - czy ma wszystkie linki uwzględniać, do wartości zwracanej przez tą funkcję {{Code|true}},
* {{Code|czy_okladka}} - bez artykułów, ksiązki, będących okładkami,
* {{Code|bez_innych_stron}} - bez stron będących nieartykułami danej książki.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn. one muszą być w kodzie tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
4yheaak2o4pcj0y8zmeus4f6gtshtdz
554587
554586
2026-09-06T09:47:37Z
Persino
2851
554587
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu: {{Code|SZABLON}}, linkują do artykułu w książce, lub obiekt: {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika, wtedy: {{Code|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}. Dla tych samych typów obiektów, plus typ: {{Code|LINKZ}}, też jest sprawdzane, czy to jest w ogóle link, wtedy mamy: {{Code|numer_rodzaju_artykulu}} {{Code|<nowiki>></nowiki>}} {{Code|1}}, lub to nie jest link, wtedy ta wartość wskazuje na {{Code|nil}}.
Ona robi to, analizuje to, przy pomocy funkcji: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, która sprawdza, czy to jest link, i zwraca jego pewne parametry.
Funkcja dla podstrony książki, też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę, która jest podstroną podręcznika, za podręcznik, jeżeli jest spełnione {{Code|czy_podrecznik}} {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez '''mechanizm {{NS|l=tak|k=mw|w=tak}}''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów.
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artykuły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, i nie tylko, tzn. dla: {{Code|<nowiki>> 1</nowiki>}}, lub dla wartości {{Code|nil}}.
Gdy strona nie jest linkiem, wtedy funkcja zrzucza wartości: {{Code|return nil,false;}}.
A dla tego pierwszego, dzięki tej zmiennej: {{Code|czy_podrecznik}} {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za możliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące spisowe linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}.
Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i linki wewnętrzne: {{Code|LINKW}}, jako normalne, jak i również zewnętrzne: {{Code|LINKZ}}. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli są, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}},
* Dla szablonu {{s|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta poprzednia funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego. W tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same wartości zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}.
Zwracane parametry przez funkcję:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}.
Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, ale znalazła okładkę, bądź artykuł glówny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii, elementami początku lub końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzne: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
; Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}{{dk}}
* Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
* Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
* Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
* {{Code|czy_wszystkie_linki}} - czy ma wszystkie linki uwzględniać, do wartości zwracanej przez tą funkcję {{Code|true}},
* {{Code|czy_okladka}} - bez artykułów, ksiązki, będących okładkami,
* {{Code|bez_innych_stron}} - bez stron będących nieartykułami danej książki.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn. one muszą być w kodzie tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
5tk5rku7cod886hlwe59cdbi3m6r2m0
554588
554587
2026-09-06T09:48:48Z
Persino
2851
554588
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu: {{Code|SZABLON}}, linkują do artykułu w książce, lub obiekt: {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika, wtedy: {{Code|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}. Dla tych samych typów obiektów, plus typ: {{Code|LINKZ}}, też jest sprawdzane, czy to jest w ogóle link, wtedy mamy: {{Code|numer_rodzaju_artykulu}} {{Code|<nowiki>></nowiki>}} {{Code|1}}, lub to nie jest link, wtedy ta wartość wskazuje na {{Code|nil}}.
Ona robi to, analizuje to, przy pomocy funkcji: {{LinkPatrz|#p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, która sprawdza, czy to jest link, i zwraca jego pewne parametry.
Funkcja dla podstrony książki, też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę, która jest podstroną podręcznika, za podręcznik, jeżeli jest spełnione {{Code|czy_podrecznik}} {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez '''mechanizm {{NS|l=tak|k=mw|w=tak}}''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów.
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artykuły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, i nie tylko, tzn. dla: {{Code|<nowiki>> 1</nowiki>}}, lub dla wartości {{Code|nil}}.
Gdy strona nie jest linkiem, wtedy funkcja zrzucza wartości: {{Code|return nil,false;}}.
A dla tego pierwszego, dzięki tej zmiennej: {{Code|czy_podrecznik}} {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za możliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące spisowe linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}.
Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i linki wewnętrzne: {{Code|LINKW}}, jako normalne, jak i również zewnętrzne: {{Code|LINKZ}}. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli są, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}},
* Dla szablonu {{s|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta poprzednia funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego. W tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same wartości zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}.
Zwracane parametry przez funkcję:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}.
Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, ale znalazła okładkę, bądź artykuł glówny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii, elementami początku lub końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzne: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
; Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}{{dk}}
* Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
* Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
* Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
* {{Code|czy_wszystkie_linki}} - czy ma wszystkie linki uwzględniać, do wartości zwracanej przez tą funkcję {{Code|true}},
* {{Code|czy_okladka}} - bez artykułów, ksiązki, będących okładkami,
* {{Code|bez_innych_stron}} - bez stron będących nieartykułami danej książki.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn. one muszą być w kodzie tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
fx36hgobvva9c4pbqzyave6vrkbp9q4
554589
554588
2026-09-06T09:49:41Z
Persino
2851
/* {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} */
554589
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyElementSpisuRzeczy}}{{Code|p.CzyElementSpisuRzeczy}} ==
Funkcja sprawdza, czy wywołanie szablonowe, obiekty typu: {{Code|SZABLON}}, linkują do artykułu w książce, lub obiekt: {{Code|LINKW}}, też musi być linkiem do artykułu (podstrony) tego podręcznika, wtedy: {{Code|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}. Dla tych samych typów obiektów, plus typ: {{Code|LINKZ}}, też jest sprawdzane, czy to jest w ogóle link, wtedy mamy: {{Code|numer_rodzaju_artykulu}} {{Code|<nowiki>></nowiki>}} {{Code|1}}, lub to nie jest link, wtedy ta wartość wskazuje na {{Code|nil}}.
Ona robi to, analizuje to, przy pomocy funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, która sprawdza, czy to jest link, i zwraca jego pewne parametry.
Funkcja dla podstrony książki, też sprawdza, czy ten tam artykuł nie jest artykułem okładką, czy artykułem niedozwolonym, to jest robione i sprawdzane tablicą {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}} {{Patrz|p.artykularne_niespisowe}}, którego określenie:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Funkcja traktuje stronę, która jest podstroną podręcznika, za podręcznik, jeżeli jest spełnione {{Code|czy_podrecznik}} {{Patrz|czy_podrecznik}}:
<syntaxhighlight lang="lua">
local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s"))));
</syntaxhighlight>
Artykuł książki powinien zaczynać się od dużej litery oraz nie powinien mieć po małej literze dużą lub w sobie powinien mieć dowolne dozwolone, przez '''mechanizm {{NS|l=tak|k=mw|w=tak}}''', znaki odstępu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry funkcji spisu artykularnego}}:
* Parametry z sekcji, są to elementy:
** {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}} - złożone z rodzaju kodu i jego numeru,
** {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}} - kodowania kodów różnych obiektów.
* Parametry z sekcji przeróżnych zmiennych, np. tabel, charakteryzujących tekst zakodowany:
** {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}} - parametry zakodowanego spisu.
* Inne parametry:
** {{Code|czy_usun_okladka}} {{Patrz|czy_usun_okladka}} - uważaj artykuły wszystkie, nawet okładki i inne tego typu, jako spisowe, traktuj ją jako artykuł spisowy,
** {{Code|czy_glowny_spis_tresci}} {{Patrz|czy_glowny_spis_tresci}} - uważaj artykuł główny podręcznika za dozwoloną stronę jego główną, w przeciwnie jest traktowany jako artykuł spisowy, przy ustawionej zmiennej: {{LinkPatrz|czy_usun_okladka}}, na wartość prawdziwą, ale przy innej wartości logicznej tego parametru, taki artykuł zostaje uznany za niedozwolony.
Funkcja zwraca, zrzucane przez tę funkcję, dane w postaci {{ZobaczTeż|parametry zwracane spisu artykularnego}}:
<syntaxhighlight lang="lua">
return czy_artykul_nieglowny,numer_rodzaju_artykulu,czy_podrecznik,czy_artykuly_niespisowe;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych {{ZobaczTeż|opis parametrów spisu artykularnego}}:
* {{Code|czy_artykul_nieglowny}} {{Patrz|czy_artykul_nieglowny}} - czy artykuł niegłówny,
* {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}} - poziom artykułu w podręczniku, zwracany, jako drugi parametr funkcji: {{LinkPatrz|p.AnalizujLinkSzablonyOrazLinki|StronicowyParser/AnalizaSpisuRzeczy}}, parsujących szablony i linki wewnętrzne, z artykułami, i wyciagający z nich wioski, i zaliczający je do pewnych kategorii,
* {{Code|czy_podrecznik}} - jak w: {{LinkPatrz|czy_podrecznik}}, czyli czy to jest prawdziwy artykuł podręcznika, a nie udawany,
* {{Code|czy_artykuly_niedozwolone}} {{Patrz|czy_artykuly_niedozwolone}} - czy artykuł uznać w linku za niedozwolony dla {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}} {{Code|{{=}}}} {{Code|1}}, artykuły o innej wartości o tej zmiennej poziomu są odrazu uznane za dozwolone.
Funkcja oznacza artykuły określane zmienną: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, równą: {{Code|1}}, i nie tylko, tzn. dla: {{Code|<nowiki>> 1</nowiki>}}, lub dla wartości {{Code|nil}}.
Gdy strona nie jest linkiem, wtedy funkcja zrzucza wartości: {{Code|return nil,false;}}.
A dla tego pierwszego, dzięki tej zmiennej: {{Code|czy_podrecznik}} {{LinkPatrz|czy_podrecznik}}, funkcja oznacza artykuły za możliwie podręcznikowe, jeśli ona przyjmuje wartość prawdziwą, jeśli nie, to one są możliwie niepodręcznikowe.
== {{Śródtytuł|p.CzySpecjalnyElementSpisuRzeczy}}{{Code|p.CzySpecjalnyElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję. Funkcja rozważa artykuły znajdujące się w definicji szablonu {{s|SpisTreści}} {{Patrz|SpisTreści}}, które są na pewno artykułami książki, bo taka jest definicja tego szablonu.
We pozostałych przypadkach funkcja sprawdza szablony, a w nich linki, zdefiniowane przez tabelę {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Ta tablica przedstawia klucze i ich wartości charakteryzujące spisowe linki, w przypadku tego pierwszego, czyli {{s|SpisPozycja}}, parametrem szukanym z linkami jest: {{Parametr|numer_link|tyt}}, a w tym drugim, czyli: {{s|SpisZw}}, jest: {{Parametr|link|2}}.
Wartości tych parametrów w tabeli parametrów szablonów o tych nazwach parametrów (kluczy) przedstawiają dowolny tekst, a w tym możliwie znajdujące się linki szablonów inteligetnych według obiektu: {{Code|SZABLON}}, jak i linki wewnętrzne: {{Code|LINKW}}, jako normalne, jak i również zewnętrzne: {{Code|LINKZ}}. A tam szukamy linków, określonych w tej wypowiedzi, znajdujemy, jeśli są, pierwszego takiego linku, jak znajdziemy, to z wyniku funkcji: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}}, zrzucamy wynik do funkcji w nagłówku, którego pierwszy argument ma wartość prawdziwą, i zakańczamy natychmiast tą funkcję.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same parametry zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}},
* Dla szablonu {{s|SpisTreści}}, funkcja zrzuca zmienne, które da się jeszcze wytłumaczyć według {{LinkZobaczTeż|opis parametrów spisu artykularnego}}, co do dwóch pierwszych parametrów:
<syntaxhighlight lang="lua">
return true,1;
</syntaxhighlight>
Dla pozostałych obsługiwanych szablonów przez tę funkcję, parametrami zwracanymi przez nią, są we wskazaniu wartości zwracane przez funkcję użytą przez procedurę używaną w jego definicji, jest to funkcja wspomniana w opisie:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez nią:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}{{Code|p.CzyGeneralnieElementSpisuRzeczy}} ==
Funkcja ma ten sam opis, co: {{LinkŚródtytuł|p.CzyElementSpisuRzeczy}} - ta funkcja zostanie uruchomiona w pierwszej kolejności, lub: {{LinkŚródtytuł|p.CzySpecjalnyElementSpisuRzeczy}} - jeżeli ta poprzednia funkcja nie zrzuci treściwych wyników, to zostanie wywołana ta druga, jaka z nich funkcja zostanie uruchomiona ze zwróconymi jej parametrami zależy od rodzaju wywołania szablonowego. W tej funkcji są te same znaczenia parametrów przyjmowanych i zwracanych przez funkcję, co wspomnianych dwóch.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}.
Funkcja zwraca, zrzucane przez tę funkcję, dane parametry w postaci:
* Są te same wartości zwracane, co dla: {{LinkZobaczTeż|parametry zwracane spisu artykularnego}}.
Zwracane parametry przez funkcję:
<syntaxhighlight lang="lua">
return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych:
* To samo wytłumaczenie, co dla: {{LinkZobaczTeż|opis parametrów spisu artykularnego}}.
== {{Śródtytuł|p.CzyTamElementyNieSpisoweArtykularne}}{{Code|p.CzyTamElementyNieSpisoweArtykularne}} ==
Funkcja szuka pierwszego spisowego artykularnego dozwolonego, czyli nieokładkowego (dozwolonego), niegłównego w podręczniku, artykułu w linii {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wyszukuje takie artykuły funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, w wyniku iterowania po podanym parametrze zakodowanym przy pomocy funkcji z: {{Code|{{m|Szablonowe}}}}.
Gdy funkcja znalazła taki artykuł, ale nie artykuł główny, ale nie okładkę, lub dozwolony artykuł, to zwraca {{Code|true}}, jak ona nie znalazła żadnego takiego artykułu, ale znalazła okładkę, bądź artykuł glówny, to zwraca {{Code|false}}, a w przypadku tylko elementów niespisowych funkcja zwraca zawsze wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}},
** Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/AnalizaSpisuRzeczy}} - jest to pojedyncza linia pomiędzy znakami noych linii, elementami początku lub końca tekstu,
** Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}}.
== {{Śródtytuł|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}}{{Code|p.SzukajObiektuArtykularnegoWeElemencieTekstowym}} ==
Funnkcja szuka, czy są linki szablonowe: {{Code|SZABLON}} - z tego tylko linki szablonowe, linki wewnętrzne: {{Code|LINW}}, i linki zewnętrzne: {{Code|LINKZ}}, w podanym zakodowanym tekście, przeszukiwanym przez funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a sprawdzanym, czy to jest to, przez inną: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy}}, jeżeli według tej funkcji, to jest link, to funkcja w nagłówku zwraca wartość prawdziwą, a jeżeli nie ma takiego linku, lub dane się skończyły, to funkcja wtedy nic nie zwraca, tylko się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
; Są te same parametry, co dla: {{LinkZobaczTeż|parametry funkcji spisu artykularnego}}{{dk}}
* Zamiast pierwszych trzech parametrów, tzn.: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, jest: {{Code|tekst}} {{Patrz|tekst}} - jest to przeszukiwana linia,
* Ona nie ma w sobie, w swojej definicji, końcowych parametrów, tzn. {{Code|czy_usun_okladka}} {{LinkPatrz|czy_usun_okladka}} i {{Code|czy_glowny_spis_tresci}} {{LinkPatrz|czy_glowny_spis_tresci}},
* Ma w sobie drugi parametr, który jest wzorem, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, kodu przeszukiwanego tekstu, czyli jest to wzor: {{Code|szablon_normy_kodowania_szablonu}} {{Patrz|szablon_normy_kodowania_szablonu}}.
* {{Code|czy_wszystkie_linki}} - czy ma wszystkie linki uwzględniać, do wartości zwracanej przez tą funkcję {{Code|true}},
* {{Code|czy_okladka}} - bez artykułów, ksiązki, będących okładkami,
* {{Code|bez_innych_stron}} - bez stron będących nieartykułami danej książki.
Wartość zwracana:
* Wartość prawdziwa: {{Code|true}}, w przypadku wykrycia takiego linki, w przeciwnym wypadku: {{Code|false}}, w przypadku niepowodzenia.
Funkcja bezpośrednio szuka w tekście zakodowanym różnych typów linków, tzn. one muszą być w kodzie tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
k8nnjkji7khxrvo43261zvfhagjejgc
Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom I
4
63918
554539
552671
2026-09-05T19:36:41Z
Persino
2851
554539
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.SzukanieNaPodstawieWzoru}}{{Code|p.SzukanieNaPodstawieWzoru}} ==
Funkcja do przeszukiwania ciągu: {{Code|tekst}} {{LinkPatrz|tekst}}, od znaku: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}, według wzoru {{Code|wzor}} {{LinkPatrz|wzor}}.
Funkcja umożliwa ustawienie trybu znajdowania ciągów: {{Code|jak}} {{LinkPatrz|jak}}, który przyjmuje wartości logiczne lub wartość nilową albo tej wartości można nie podawać, bo ostatni parametr. Można przeszukiwać ciąg tekstowy od tyłu przy wartości odpowiadającej prawdziwej, czyli parametr: {{Code|czy_od_tylu}} {{LinkPatrz|czy_od_tylu}}, przy przeciwnej wartości ono przeszukuje podciąg od natomiast do przodu.
Funkcja zwraca dwie pierwsze liczby oznaczające początek i koniec dopasowania według wzoru: {{LinkPatrz|wzor}}, i co najwyżej dziewięć dalszych elementów przychwytywanych przez nią.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieNaPodstawieWzoru(tekst,wzor,liczba_od,liczba_do,czy_od_tylu,jak)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|Parametry-SzukanieNaPodstawieWzoru}}:
* {{Code|tekst}} {{Patrz|tekst}} - tekst do przeszukania według wzoru,
* {{Code|wzor}} {{Patrz|wzor}} - wzor do przeszukiwania tekstu,
* Zmienne oznaczające numer znaku, w tekście {{LinkPatrz|tekst}}:
** {{Code|liczba_od}} {{Patrz|liczba_od}} - od którego ma być przeszukiwany ciąg,
** {{Code|liczba_do}} {{Patrz|liczba_do}} - do którego ma być przeszukiwany ciąg,
* {{Code|czy_od_tylu}} {{Patrz|czy_od_tylu}} - czy przeszukiwanie ma się odbyć od tyłu,
* {{Code|jak}} {{Patrz|jak}} - gdy {{Code|true}}, to wyszukiwanie ciągu tekstowego {{LinkPatrz|tekst}} ma się mieścić najbliżej odstatniego znaku {{LinkPatrz|liczba_do}}, a jeśli przyjmuje on wartość przeciwną, to najbliżej początku {{LinkPatrz|liczba_od}}, ale musi mieścić się we wskazanym przedziale, bo przeciwnie funkcja zrzuca wartość nilową, jeśli wyszukany ciąg nie składa się z jednego znaku, a jeśli tak, to wyszukiwanie odbywa się znak po znaku, ale też w tym zakresie, ale też musi być to spełnione, jak dla wwielu znaku.
Jest to ogólna funkcja do znajdowania podciągów znaków, używa funkcji: {{LzLua|mw.ustring.find}} {{Patrz|mw.ustring.find}}, która ona nie dość, że przechytuje ciągu znakowe, ale też podaje, od którego, do którego, ten wyszukany ciąg wyszukał w podanym we wzorze.
Przypadku wyszukiwania od przodu musi zachodzi wniosek: {{Code|liczba_od}} {{LinkPatrz|liczba_od}} {{Code|≤}} {{Code|liczba_do}} {{LinkPatrz|liczba_do}}, a od tyłu: {{Code|liczba_od}} {{LinkPatrz|liczba_od}} {{Code|≥}} {{Code|liczba_do}} {{LinkPatrz|liczba_do}}, w innych przypadkach, gdyby ten warunek nie był spełniony, to ta funkcja zwraca wartość nilową.
Dopasowanie do przodu, nie jest uruchamiane w żadnej petli, jeżeli to dopasowanie nie znalazło się w dozwolonych granicach dopasowania, to funkcja zwraca wartość {{Code|nil}}, w przypadku przeciwnym to ona zrzuca wartości przez nią zwrócone, tzn. przez: {{LinkPatrz|mw.ustring.find}}.
W przypadku wyszukiwania od tyłu funkcja znajduje najbliższe dopasowanie najbliższe znaku o numerze: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}, czyli równe ostatniemu takiemu dopasowaniu. To dopasowania jest uruchamiane w pętli nieskończonej, która jest przerywana, gdy funkcja nie znalazła zadnego dalszego znaku, lub uzyskano dopasowanie, którego numer znaku końcowego ciągu w podciągu, jest większy niż {{LinkPatrz|liczba_do}}. Funkcja zwraca ostatnie dopasowanie, to znaczy wartości zwrócone przez: {{LinkPatrz|mw.ustring.find}}, spełniający nasze przedziały, jeżeli byłoby, a jeśli nie znalazła takiego, to ona zwraca wynik {{Code|nil}}.
== {{Śródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii}}{{Code|p.SzukanieNaPodstawieWzoruElementuLinii}} ==
Ta funkcja robi dokładnie to samo, co: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru}} {{Patrz|p.SzukanieNaPodstawieWzoru}}, która dotyczy przeszukiwanego tekstu, tylko z tym wyjątkiem, że funkcja w nagłówku służy do przeszukiwania każdej linii, niezależnie jak została umiejscowiona.
Do wzoru: {{Code|wzor_linia}} {{LinkPatrz|wzor_linia}}, we wnętrzu tego wzoru dla linii charakteryzujcych właśnie nią zostają dodane elementu początku i końca linii, czyli znaki ze zbioru: {{Code|<nowiki>[^$\n]</nowiki>}} {{Patrz|elementy końca linii}}, w ten sposób jest tworzony wzor: {{Code|wzor}} {{LinkPatrz|wzor}}, we wnętrzu linii, by później można było go wykorzystać we funkcji: {{LinkPatrz|p.SzukanieNaPodstawieWzoru}}. Wzor: {{Code|wzor_linia}} {{LinkPatrz|wzor_linia}}, nie powinien zawierać w sobie znaków: {{LinkPatrz|elementy końca linii}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieNaPodstawieWzoruElementuLinii(tekst,wzor_linia,liczba_od,liczba_do,czy_od_tylu)...end;
</syntaxhighlight>
Parametry funkcji:
* Są takie same parametry jak w: {{LinkZobaczTeż|Parametry-SzukanieNaPodstawieWzoru}}, oprócz parametru: {{Code|jak}} {{LinkPatrz|jak}}, a zamiast wzoru: {{Code|wzor}} {{LinkPatrz|wzor}}, jest: {{Code|wzor_linia}} {{Patrz|wzor_linia}}.
Funkcja zwraca parametry uzyskane z funkcji: {{LinkPatrz|p.SzukanieNaPodstawieWzoru}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
sufe6p1vsc3r29ken8fct9izi6u96xq
554553
554539
2026-09-05T21:07:43Z
Persino
2851
554553
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.SzukanieNaPodstawieWzoru}}{{Code|p.SzukanieNaPodstawieWzoru}} ==
Funkcja do przeszukiwania ciągu: {{Code|tekst}} {{LinkPatrz|tekst}}, od znaku: {{Code|liczba_od}} {{LinkPatrz|liczba_od}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}, według wzoru {{Code|wzor}} {{LinkPatrz|wzor}}.
Funkcja umożliwa ustawienie trybu znajdowania ciągów: {{Code|jak}} {{LinkPatrz|jak}}, który przyjmuje wartości logiczne lub wartość nilową albo tej wartości można nie podawać, bo ostatni parametr. Można przeszukiwać ciąg tekstowy od tyłu przy wartości odpowiadającej prawdziwej, czyli parametr: {{Code|czy_od_tylu}} {{LinkPatrz|czy_od_tylu}}, przy przeciwnej wartości ono przeszukuje podciąg od natomiast do przodu.
Funkcja zwraca dwie pierwsze liczby oznaczające początek i koniec dopasowania według wzoru: {{Code|wzor}} {{LinkPatrz|wzor}}, i co najwyżej dziewięć dalszych elementów przychwytywanych przez nią.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieNaPodstawieWzoru(tekst,wzor,liczba_od,liczba_do,czy_od_tylu,jak)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|Parametry-SzukanieNaPodstawieWzoru}}:
* {{Code|tekst}} {{Patrz|tekst}} - tekst do przeszukania według wzoru,
* {{Code|wzor}} {{Patrz|wzor}} - wzor do przeszukiwania tekstu,
* Zmienne oznaczające numer znaku, w tekście {{LinkPatrz|tekst}}:
** {{Code|liczba_od}} {{Patrz|liczba_od}} - od którego ma być przeszukiwany ciąg,
** {{Code|liczba_do}} {{Patrz|liczba_do}} - do którego ma być przeszukiwany ciąg,
* {{Code|czy_od_tylu}} {{Patrz|czy_od_tylu}} - czy przeszukiwanie ma się odbyć od tyłu,
* {{Code|jak}} {{Patrz|jak}} - gdy {{Code|true}}, to wyszukiwanie ciągu tekstowego {{LinkPatrz|tekst}} ma się mieścić najbliżej odstatniego znaku {{LinkPatrz|liczba_do}}, a jeśli przyjmuje on wartość przeciwną, to najbliżej początku {{LinkPatrz|liczba_od}}, ale musi mieścić się we wskazanym przedziale, bo przeciwnie funkcja zrzuca wartość nilową, jeśli wyszukany ciąg nie składa się z jednego znaku, a jeśli tak, to wyszukiwanie odbywa się znak po znaku, ale też w tym zakresie, ale też musi być to spełnione, jak dla wwielu znaku.
Jest to ogólna funkcja do znajdowania podciągów znaków, używa funkcji: {{LzLua|mw.ustring.find}}, która ona nie dość, że przechytuje ciągu znakowe, ale też podaje, od którego, do którego, ten wyszukany ciąg wyszukał w podanym we wzorze.
Przypadku wyszukiwania od przodu musi zachodzi wniosek: {{Code|liczba_od}} {{LinkPatrz|liczba_od}} {{Code|≤}} {{Code|liczba_do}} {{LinkPatrz|liczba_do}}, a od tyłu: {{Code|liczba_od}} {{LinkPatrz|liczba_od}} {{Code|≥}} {{Code|liczba_do}} {{LinkPatrz|liczba_do}}, w innych przypadkach, gdyby ten warunek nie był spełniony, to ta funkcja zwraca wartość nilową.
Dopasowanie do przodu, nie jest uruchamiane w żadnej petli, jeżeli to dopasowanie nie znalazło się w dozwolonych granicach dopasowania, to funkcja zwraca wartość {{Code|nil}}, w przypadku przeciwnym to ona zrzuca wartości przez nią zwrócone, tzn. przez: {{LzLua|mw.ustring.find}}.
W przypadku wyszukiwania od tyłu funkcja znajduje najbliższe dopasowanie najbliższe znaku o numerze: {{Code|liczba_do}} {{LinkPatrz|liczba_do}}, czyli równe ostatniemu takiemu dopasowaniu. To dopasowania jest uruchamiane w pętli nieskończonej, która jest przerywana, gdy funkcja nie znalazła zadnego dalszego znaku, lub uzyskano dopasowanie, którego numer znaku końcowego ciągu w podciągu, jest większy niż {{Code|liczba_do}} {{LinkPatrz|liczba_do}}. Funkcja zwraca ostatnie dopasowanie, to znaczy wartości zwrócone przez: {{LzLua|mw.ustring.find}}, spełniający nasze przedziały, jeżeli byłoby, a jeśli nie znalazła takiego, to ona zwraca wynik {{Code|nil}}.
== {{Śródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii}}{{Code|p.SzukanieNaPodstawieWzoruElementuLinii}} ==
Ta funkcja robi dokładnie to samo, co: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru}} {{Patrz|p.SzukanieNaPodstawieWzoru}}, która dotyczy przeszukiwanego tekstu, tylko z tym wyjątkiem, że funkcja w nagłówku służy do przeszukiwania każdej linii, niezależnie jak została umiejscowiona.
Do wzoru: {{Code|wzor_linia}} {{LinkPatrz|wzor_linia}}, we wnętrzu tego wzoru dla linii charakteryzujcych właśnie nią zostają dodane elementu początku i końca linii, czyli znaki ze zbioru: {{Code|<nowiki>[^$\n]</nowiki>}} {{Patrz|elementy końca linii}}, w ten sposób jest tworzony wzor: {{Code|wzor}} {{LinkPatrz|wzor}}, we wnętrzu linii, by później można było go wykorzystać we funkcji: {{LinkPatrz|p.SzukanieNaPodstawieWzoru}}. Wzor: {{Code|wzor_linia}} {{LinkPatrz|wzor_linia}}, nie powinien zawierać w sobie znaków: {{LinkPatrz|elementy końca linii}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieNaPodstawieWzoruElementuLinii(tekst,wzor_linia,liczba_od,liczba_do,czy_od_tylu)...end;
</syntaxhighlight>
Parametry funkcji:
* Są takie same parametry jak w: {{LinkZobaczTeż|Parametry-SzukanieNaPodstawieWzoru}}, oprócz parametru: {{Code|jak}} {{LinkPatrz|jak}}, a zamiast wzoru: {{Code|wzor}} {{LinkPatrz|wzor}}, jest: {{Code|wzor_linia}} {{Patrz|wzor_linia}}.
Funkcja zwraca parametry uzyskane z funkcji: {{LinkPatrz|p.SzukanieNaPodstawieWzoru}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
mz0w0xxstg8xjjnd9aqajze67ofneir
Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom IV
4
63919
554527
553005
2026-09-05T18:45:17Z
Persino
2851
/* {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} */
554527
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
Funkcja wyszukuje w: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, najbliższy rozdział do przodu lub od tyłu w zależności od podanego parametru: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, w zakresach od: {{Code|liczba_od}} {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Funkcja znajdująca uwzględnia, że tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, może być zakodowany w bazie kodów: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, a części jego bazy mogą być w postaci przeanalizowanej w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja przeszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, linie rodziałów zakodowanych, a dla rozdziału dodatniego równaniowego wykorzystuje natomiast funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
Funkcja {{ZobaczTeż|rozdziały}} wyszukuje rozdziały, dodatnie równaniowe, centrowane szablonowo lub znacznikowo i nagłówkowe - poprzez szablony, czy znaczniki nagłówków.
* Rozdziały równaniowe, to są rozdziały otoczone wokół stron linii tekstu znakami {{Code|{{=}}}}, przykład: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}},
* Rozdziały, oczywiście, że dodatnie, nagłówkowe, to te: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{tag|h6}},
** Lub przez użycie szablonu: {{s|HNumer}}, do generowania sztucznego nagłówka, ta funkcja generuje powyższe nagłówki, przy pomocy zachowania zgodności z rozdziałami dodatnimi rówaniowo, nawet gdy po lewej i poprawej, liczba {{Code|{{=}}}}, jest większa niż: {{Code|6}}, co normalnie jest niedozwolone, w jego pierwszy parametrze, który symbolizuje pewien rozdział dodatni równaniowo,
* Centrowane szablonowo, oznaczone są szablonami: {{s|Ce}}, {{s|Centruj}} i {{s|Center}},
* Centrowane znacznikowo, oznaczone są znacznikami: {{Tag|center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Definicja skrótowa funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}} - tekst artykułu zakodowanego, w którym wyszukuje się rozdziały dodatnie,
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_od_tylu}} - jak w: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_spis_tresci}} {{Patrz|czy_spis_tresci}} - funkcja sprawdza, czy nagłówek spisu, jeśli istnieje, spełnia ściśle określone kryteria, jest to policzony nagłówek z funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}, z tego samego nagłówka, przed transformacją, z przechwyconego z elementu, w którym jest właśnie to,
* Paraametry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
=== {{Śródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}{{Code|RozpatrywanieNapisoweWprowadzeniaTekstu}} ===
Fukcja ogólna do przeszukiwania kolejnych elementów według wzoru i wskazywania ich pozycji początkowej, czy końcowej, i elementów przechwytywanych.
Funkcja została skonstrułowana, by wyszukiwała kolejne rozdziały różnych typów, tzn.: {{Code|SZABLON}}, {{Code|ZNACZNIK}} i trzeciego nieokreślonej żadnym kodem, w postaci trzech konstrukcji szczególnych wykorzystujących tą funkcję, w ogólnej funkcji, aby uzyskać pewne zmienne, by później je wykorzystać w funkcji {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}} do zwracania danych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozpatrywanieNapisoweWprowadzeniaTekstu(wzor,czy_rozdzial_rownaniowy_dodatni,__FUNKCJA1,__FUNKCJA2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzor}} - wzór dla tekstu, który przeszukujemy,
* {{Code|czy_rozdzial_rownaniowy_dodatni}} - czy to jest rozdział dadatni równaniowy, wtedy ona przyjmuje wartość prawdziwą, w przeciwnym wypadku fałszywą, wtedy mamy, to dla nagłówków zapisanych w postaci kodów, jak rozdziały centrowania szablonowe i znacznikowe, sztuczne nagłówki napisu wprowadzenia tekstu, czy znaczniki nagłówków,
* {{Code|__FUNKCJA1}} - funkcja do uzyskiwania danych z przechwytywanego ciągu wsadzanych jako parametr, i zwracania ich w postaci, co najwyżej dwóh kolejnych elementów, np. szablon i znumerowany kod danej bazy kodów tekstu zakodowanego, czy też może jako jedyny parametr nagłówek,
* {{Code|__FUNKCJA2}} - funkcja do przetwarzania kolejno elementów, i do sterowania pętlą, aby nie zawsze ona się zatrzymywała, funkcja te parametry zwracane przez pierwszą funkcję są wsadzane jako parametry do tej funkcji, wraz z trzecią funkcją, której wynik zwracamy bezpośrednią z tej funkcji.
=== Funkcja zwracająca parametry ===
Opis funkcji zwracającej parametry, która jest potrzebna właśnie do tego.
Do tej funkcji są wykorzystywane dane zwrcócone bezpośrednio z funkcji: {{LinkŚródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}, dla trzech różnych prrzypadków nagłówków, tzn. nagłówków zapisanych w postaci szablonów, znaczników i rozdziałów równaniowych, wtedy drugi parametr tej funkcji jest prawdziwy.
==== {{Śródtytuł|ParametryNapisuWprowadzeniaTekstu}}{{Code|ParametryNapisuWprowadzeniaTekstu}} ====
Funkcja przyjmuje i przygotowuje parametry do zwrócenia.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParametryNapisuWprowadzeniaTekstu(liczba_start,liczba_koniec,spis_naglowka_stare,spis_naglowka,spis_naglowka_poziom)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - początek i koniec danego typu napisu wprowadzenia tekstu, tych typów jest wiele,
* {{Code|spis_naglowka_stare}} {{Patrz|spis_naglowka_stare}}, spis przed analizą {{LinkZobaczTeż|spis_naglowka}},
* {{Code|spis_naglowka}} {{Patrz|spis_naglowka}} - spis {{ZobaczTeż|spis_naglowka}} przeanalizowany przez funkcję: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}, a później przez: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, jeżeli parametr: {{LinkPatrz|czy_spis_tresci}}, istnieje, jest to robione poza tą funkcją, możliwe, że ta wartość nie istnieje,
* {{Code|spis_naglowka_poziom}} {{Patrz|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych, dla pozostałych nagłówków nie istnieje.
Funcja zwraca parametry napisane ogólnie według kodu dla każdego rodzaju napisu wprowadzenia tekstu:
<syntaxhighlight lang="lua">
return liczba_start,liczba_koniec,spis_naglowka,spis_naglowka_stare,spis_naglowka_poziom;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez ten obiekt dla danego rodzaju rozdziału:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - jest to powtórzenie parametrów dwóch pierwszych z parametrów tej funkcji,
* {{Code|spis_naglowka}} - ten parametr jest liczony dla nieistniejącego parametru: {{LinkPatrz|czy_spis_tresci}}, są robione podobne operacje, jak w punkcie: {{LinkZobaczTeż|spis_naglowka}}, a jeżeli ten wpomniany parametr istnieje, to to nie jest robione w tej funkcji,
* {{Code|spis_naglowka_stare}} - spis przed analizą, po którym ten parametr zamienia się w ten powyższy ostatni element, możliwe, że ten parametr nie istnieje, wtedy jest brany z: {{LinkPatrz|spis_naglowka}},
* {{Code|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych.
==== Dalszy opis funkcji ====
Funkcja w nagłówku zwraca parametry bezpośrednio z: {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}}, w postaci, np. dla rozdziału dodatniego równaniowego:
<syntaxhighlight lang="lua">
return ParametryNapisuWprowadzeniaTekstu(liczba_start_dodatni,liczba_koniec_dodatni,spis_naglowka_dodatni_stare,spis_naglowka_dodatni,spis_naglowka_dodatni_poziom);
</syntaxhighlight>
Dla innych typów nagłówków jest zamiast: {{Code|dodatni}}, w zmiennych w powyższym przykładzie jest: {{Code|szablon}} - dla rozdziałów szablonowych, czy {{Code|znacznik}} - znacznikowych.
Funkcja wybiera, jakiego typy nagłówków z zakresu wykrytych różnego typu, ma obsłużyć, i wtedy odpowiednio ustawia funkcję parametrów, wskazaną jak w powyższym przykładzie, względem maksymalnych, w wyszukiwaniu do tyłu, lub minimalnych, w wyszukiwanych do przodu, nagłówkach, lewych pozycji wartości uzyskanych ze wszystkich nagłówków, sprawdzając, czy to się zgadza, z którymiś pozycjami lewymi tych nagłówków trzech typów.
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
Funkcja uwzględnia nagłówki według {{LinkZobaczTeż|rozdziały}}, oprócz nagłówków równaniowych. Zawartością w nagłówkach centrowania, jest to wartość pierwszego parametru, a też w szablonie w sztucznych napisach wprowadzenia tekstu {{s|HNumer}}, jego zawartość to pierwszy jego argument, ale pomiędzy taką samą maksymalną liczbą znaków {{Code|{{=}}}} w nim, i jeszcze w jego wersji strimowanej.
; Uzyskanie elementów parametrów kodu bazy{{dk}}
* Funkcja wyszukuje pierwszego dozwolonego linku w tekście, w elemencie całkowitej zawartości: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, którym są te wywołania tych nagłówków, uzyskanego z dwóch elementów, z tablicy wielowymiarowej, czyli: {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}} - nagłówki szablonowe, lub {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}} - nagłówki znacznikowe, i numeru w postaci numeru szablonu tego poszczególnego typu w bazie kodów, więc: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}.
* Zawartość uzyskujemy z dwóch poprzednich z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
; Wyszukiwane trzy elementy zawartości obiektu{{dk}}
* Wyszukuje on w tak uzyskanej zawartości tego elementu, linki różnego typu, tzn. {{Code|LINKW}}, {{Code|LINKZ}} i linki szablonowe, i uzyskuje z tego trzy elementy, w nim, charakteryzujące kod: {{Code|{{m|Szablonowe}}}}, bazy kodów, a także wyszukuje w nim jego dalszy tekst, w nagłówku, po którym jest do końca jego zawartości, a jeżeli je znalazł, to to zwraca, te trzy zmienne i dalszy tekst.
* A jeżeli nie znalazł takiego linku, przy pierwszym kodzie, to wyszukuje dalej w tej zawartości, aż skończą się w tym zasoby danych, a jeśli się da, to je zwraca, w tak wytłumaczonej komplecie zmiennych, lub nic nie zrzuca, żadnego kompletu żadnych zmiennych.
Tam jakiś pierwszy linki musi być zakodowany bezpośrednio w takiej zawartości, aby je wykrył i zwrócił w takiej postaci, jak opisano. A jeżeli nie, to te trzy parametry zrzuci, a tego trzeciego już nie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji {{Patrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}:
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Paramtry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Opis parametrów zwracanych dokończające jego dokumentację:
* Parametry z sekcji {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, mozliwe wartości: {{Code|SZABLON}} (linku szablonowe), {{Code|LINKW}} (linki wewnętrzne)i i {{Code|LINKZ}} (linki zewnętrzne),
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Inne parametry:
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy zwracany tekst w napisie wprowadzenia tekstu, po zwracanym jako jego parametry tej funkcji, czyli dalszego tekstu.
Kod zwracanych parametrów funkcji:
<syntaxhighlight lang="lua">
return szablon,obiekt,kod,dalszy_tekst;
</syntaxhighlight>
; Wykrywane linki różnego typu{{dk}}
* Funkcja wyszukuje rozdziały, a w nich pierwsze zarejestrowane linki, którymi są zakodowane linki wewnętrzne lub zewnętrzne, lub linku szablonowe, nawet inteligentne, którego nazwy są zakatologowane w tablicach, te linki mogą być inne, niż linki standardowe inteligentne, czyli: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.linki_szablony_elementy_spisu_rzeczy={
["SpisTreści"]=true,
["Sekcja referencyjna"]=true,
["Sr"]=true,
["Link wewnętrzny"]=true,
["Ly"]=true,
["LinkOgólne"]=true,
["Lo"]=true,
}
</syntaxhighlight>
* Inne linki mogące być uzyte w rozdziałach zdefiniowane są w punkcie: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}. Jeszcze są wspomniane linki, to tzw. linki inteligentne standardowe, w przeciwieństwie do powyższych, ale nie do końca, można sprawdzić przez funkcję: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}} {{Patrz|p.PodzielNaElementyNazwowyWikiLinkInteligentny}}, czy są takie.
; Przykład wywołania fukcji {{dk}}
Przykład wywołania funkcji wraz z jego udokumentowanymi parametrami z: {{LinkPatrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}, czyli:
<syntaxhighlight lang="lua">
local szablon,obiekt,kod,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
i912amcrcb5fuqqx52w71qkj0k5whx8
554528
554527
2026-09-05T18:46:05Z
Persino
2851
/* {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} */
554528
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
Funkcja wyszukuje w: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, najbliższy rozdział do przodu lub od tyłu w zależności od podanego parametru: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, w zakresach od: {{Code|liczba_od}} {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Funkcja znajdująca uwzględnia, że tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, może być zakodowany w bazie kodów: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, a części jego bazy mogą być w postaci przeanalizowanej w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja przeszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, linie rodziałów zakodowanych, a dla rozdziału dodatniego równaniowego wykorzystuje natomiast funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
Funkcja {{ZobaczTeż|rozdziały}} wyszukuje rozdziały, dodatnie równaniowe, centrowane szablonowo lub znacznikowo i nagłówkowe - poprzez szablony, czy znaczniki nagłówków.
* Rozdziały równaniowe, to są rozdziały otoczone wokół stron linii tekstu znakami {{Code|{{=}}}}, przykład: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}},
* Rozdziały, oczywiście, że dodatnie, nagłówkowe, to te: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{tag|h6}},
** Lub przez użycie szablonu: {{s|HNumer}}, do generowania sztucznego nagłówka, ta funkcja generuje powyższe nagłówki, przy pomocy zachowania zgodności z rozdziałami dodatnimi rówaniowo, nawet gdy po lewej i poprawej, liczba {{Code|{{=}}}}, jest większa niż: {{Code|6}}, co normalnie jest niedozwolone, w jego pierwszy parametrze, który symbolizuje pewien rozdział dodatni równaniowo,
* Centrowane szablonowo, oznaczone są szablonami: {{s|Ce}}, {{s|Centruj}} i {{s|Center}},
* Centrowane znacznikowo, oznaczone są znacznikami: {{Tag|center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Definicja skrótowa funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}} - tekst artykułu zakodowanego, w którym wyszukuje się rozdziały dodatnie,
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_od_tylu}} - jak w: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_spis_tresci}} {{Patrz|czy_spis_tresci}} - funkcja sprawdza, czy nagłówek spisu, jeśli istnieje, spełnia ściśle określone kryteria, jest to policzony nagłówek z funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}, z tego samego nagłówka, przed transformacją, z przechwyconego z elementu, w którym jest właśnie to,
* Paraametry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
=== {{Śródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}{{Code|RozpatrywanieNapisoweWprowadzeniaTekstu}} ===
Fukcja ogólna do przeszukiwania kolejnych elementów według wzoru i wskazywania ich pozycji początkowej, czy końcowej, i elementów przechwytywanych.
Funkcja została skonstrułowana, by wyszukiwała kolejne rozdziały różnych typów, tzn.: {{Code|SZABLON}}, {{Code|ZNACZNIK}} i trzeciego nieokreślonej żadnym kodem, w postaci trzech konstrukcji szczególnych wykorzystujących tą funkcję, w ogólnej funkcji, aby uzyskać pewne zmienne, by później je wykorzystać w funkcji {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}} do zwracania danych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozpatrywanieNapisoweWprowadzeniaTekstu(wzor,czy_rozdzial_rownaniowy_dodatni,__FUNKCJA1,__FUNKCJA2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzor}} - wzór dla tekstu, który przeszukujemy,
* {{Code|czy_rozdzial_rownaniowy_dodatni}} - czy to jest rozdział dadatni równaniowy, wtedy ona przyjmuje wartość prawdziwą, w przeciwnym wypadku fałszywą, wtedy mamy, to dla nagłówków zapisanych w postaci kodów, jak rozdziały centrowania szablonowe i znacznikowe, sztuczne nagłówki napisu wprowadzenia tekstu, czy znaczniki nagłówków,
* {{Code|__FUNKCJA1}} - funkcja do uzyskiwania danych z przechwytywanego ciągu wsadzanych jako parametr, i zwracania ich w postaci, co najwyżej dwóh kolejnych elementów, np. szablon i znumerowany kod danej bazy kodów tekstu zakodowanego, czy też może jako jedyny parametr nagłówek,
* {{Code|__FUNKCJA2}} - funkcja do przetwarzania kolejno elementów, i do sterowania pętlą, aby nie zawsze ona się zatrzymywała, funkcja te parametry zwracane przez pierwszą funkcję są wsadzane jako parametry do tej funkcji, wraz z trzecią funkcją, której wynik zwracamy bezpośrednią z tej funkcji.
=== Funkcja zwracająca parametry ===
Opis funkcji zwracającej parametry, która jest potrzebna właśnie do tego.
Do tej funkcji są wykorzystywane dane zwrcócone bezpośrednio z funkcji: {{LinkŚródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}, dla trzech różnych prrzypadków nagłówków, tzn. nagłówków zapisanych w postaci szablonów, znaczników i rozdziałów równaniowych, wtedy drugi parametr tej funkcji jest prawdziwy.
==== {{Śródtytuł|ParametryNapisuWprowadzeniaTekstu}}{{Code|ParametryNapisuWprowadzeniaTekstu}} ====
Funkcja przyjmuje i przygotowuje parametry do zwrócenia.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParametryNapisuWprowadzeniaTekstu(liczba_start,liczba_koniec,spis_naglowka_stare,spis_naglowka,spis_naglowka_poziom)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - początek i koniec danego typu napisu wprowadzenia tekstu, tych typów jest wiele,
* {{Code|spis_naglowka_stare}} {{Patrz|spis_naglowka_stare}}, spis przed analizą {{LinkZobaczTeż|spis_naglowka}},
* {{Code|spis_naglowka}} {{Patrz|spis_naglowka}} - spis {{ZobaczTeż|spis_naglowka}} przeanalizowany przez funkcję: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}, a później przez: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, jeżeli parametr: {{LinkPatrz|czy_spis_tresci}}, istnieje, jest to robione poza tą funkcją, możliwe, że ta wartość nie istnieje,
* {{Code|spis_naglowka_poziom}} {{Patrz|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych, dla pozostałych nagłówków nie istnieje.
Funcja zwraca parametry napisane ogólnie według kodu dla każdego rodzaju napisu wprowadzenia tekstu:
<syntaxhighlight lang="lua">
return liczba_start,liczba_koniec,spis_naglowka,spis_naglowka_stare,spis_naglowka_poziom;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez ten obiekt dla danego rodzaju rozdziału:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - jest to powtórzenie parametrów dwóch pierwszych z parametrów tej funkcji,
* {{Code|spis_naglowka}} - ten parametr jest liczony dla nieistniejącego parametru: {{LinkPatrz|czy_spis_tresci}}, są robione podobne operacje, jak w punkcie: {{LinkZobaczTeż|spis_naglowka}}, a jeżeli ten wpomniany parametr istnieje, to to nie jest robione w tej funkcji,
* {{Code|spis_naglowka_stare}} - spis przed analizą, po którym ten parametr zamienia się w ten powyższy ostatni element, możliwe, że ten parametr nie istnieje, wtedy jest brany z: {{LinkPatrz|spis_naglowka}},
* {{Code|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych.
==== Dalszy opis funkcji ====
Funkcja w nagłówku zwraca parametry bezpośrednio z: {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}}, w postaci, np. dla rozdziału dodatniego równaniowego:
<syntaxhighlight lang="lua">
return ParametryNapisuWprowadzeniaTekstu(liczba_start_dodatni,liczba_koniec_dodatni,spis_naglowka_dodatni_stare,spis_naglowka_dodatni,spis_naglowka_dodatni_poziom);
</syntaxhighlight>
Dla innych typów nagłówków jest zamiast: {{Code|dodatni}}, w zmiennych w powyższym przykładzie jest: {{Code|szablon}} - dla rozdziałów szablonowych, czy {{Code|znacznik}} - znacznikowych.
Funkcja wybiera, jakiego typy nagłówków z zakresu wykrytych różnego typu, ma obsłużyć, i wtedy odpowiednio ustawia funkcję parametrów, wskazaną jak w powyższym przykładzie, względem maksymalnych, w wyszukiwaniu do tyłu, lub minimalnych, w wyszukiwanych do przodu, nagłówkach, lewych pozycji wartości uzyskanych ze wszystkich nagłówków, sprawdzając, czy to się zgadza, z którymiś pozycjami lewymi tych nagłówków trzech typów.
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
Funkcja uwzględnia nagłówki według {{LinkZobaczTeż|rozdziały}}, oprócz nagłówków równaniowych. Zawartością w nagłówkach centrowania, jest to wartość pierwszego parametru, a też w szablonie w sztucznych napisach wprowadzenia tekstu {{s|HNumer}}, jego zawartość to pierwszy jego argument, ale pomiędzy taką samą maksymalną liczbą znaków {{Code|{{=}}}} w nim, i jeszcze w jego wersji strimowanej.
; Uzyskanie elementów parametrów kodu bazy{{dk}}
* Funkcja wyszukuje pierwszego dozwolonego linku w tekście, w elemencie całkowitej zawartości: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, którym są te wywołania tych nagłówków, uzyskanego z dwóch elementów, z tablicy wielowymiarowej, czyli: {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}} - nagłówki szablonowe, lub {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}} - nagłówki znacznikowe, i numeru w postaci numeru szablonu tego poszczególnego typu w bazie kodów, więc: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}.
* Wnętrze uzyskujemy z dwóch poprzednich parametrów z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
; Wyszukiwane trzy elementy zawartości obiektu{{dk}}
* Wyszukuje on w tak uzyskanej zawartości tego elementu, linki różnego typu, tzn. {{Code|LINKW}}, {{Code|LINKZ}} i linki szablonowe, i uzyskuje z tego trzy elementy, w nim, charakteryzujące kod: {{Code|{{m|Szablonowe}}}}, bazy kodów, a także wyszukuje w nim jego dalszy tekst, w nagłówku, po którym jest do końca jego zawartości, a jeżeli je znalazł, to to zwraca, te trzy zmienne i dalszy tekst.
* A jeżeli nie znalazł takiego linku, przy pierwszym kodzie, to wyszukuje dalej w tej zawartości, aż skończą się w tym zasoby danych, a jeśli się da, to je zwraca, w tak wytłumaczonej komplecie zmiennych, lub nic nie zrzuca, żadnego kompletu żadnych zmiennych.
Tam jakiś pierwszy linki musi być zakodowany bezpośrednio w takiej zawartości, aby je wykrył i zwrócił w takiej postaci, jak opisano. A jeżeli nie, to te trzy parametry zrzuci, a tego trzeciego już nie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji {{Patrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}:
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Paramtry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Opis parametrów zwracanych dokończające jego dokumentację:
* Parametry z sekcji {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, mozliwe wartości: {{Code|SZABLON}} (linku szablonowe), {{Code|LINKW}} (linki wewnętrzne)i i {{Code|LINKZ}} (linki zewnętrzne),
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Inne parametry:
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy zwracany tekst w napisie wprowadzenia tekstu, po zwracanym jako jego parametry tej funkcji, czyli dalszego tekstu.
Kod zwracanych parametrów funkcji:
<syntaxhighlight lang="lua">
return szablon,obiekt,kod,dalszy_tekst;
</syntaxhighlight>
; Wykrywane linki różnego typu{{dk}}
* Funkcja wyszukuje rozdziały, a w nich pierwsze zarejestrowane linki, którymi są zakodowane linki wewnętrzne lub zewnętrzne, lub linku szablonowe, nawet inteligentne, którego nazwy są zakatologowane w tablicach, te linki mogą być inne, niż linki standardowe inteligentne, czyli: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.linki_szablony_elementy_spisu_rzeczy={
["SpisTreści"]=true,
["Sekcja referencyjna"]=true,
["Sr"]=true,
["Link wewnętrzny"]=true,
["Ly"]=true,
["LinkOgólne"]=true,
["Lo"]=true,
}
</syntaxhighlight>
* Inne linki mogące być uzyte w rozdziałach zdefiniowane są w punkcie: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}. Jeszcze są wspomniane linki, to tzw. linki inteligentne standardowe, w przeciwieństwie do powyższych, ale nie do końca, można sprawdzić przez funkcję: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}} {{Patrz|p.PodzielNaElementyNazwowyWikiLinkInteligentny}}, czy są takie.
; Przykład wywołania fukcji {{dk}}
Przykład wywołania funkcji wraz z jego udokumentowanymi parametrami z: {{LinkPatrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}, czyli:
<syntaxhighlight lang="lua">
local szablon,obiekt,kod,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
5t2wpbxwomrn0ndmjn3ibbcijya4q3z
554529
554528
2026-09-05T18:51:21Z
Persino
2851
/* {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} */
554529
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
Funkcja wyszukuje w: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, najbliższy rozdział do przodu lub od tyłu w zależności od podanego parametru: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, w zakresach od: {{Code|liczba_od}} {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Funkcja znajdująca uwzględnia, że tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, może być zakodowany w bazie kodów: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, a części jego bazy mogą być w postaci przeanalizowanej w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja przeszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, linie rodziałów zakodowanych, a dla rozdziału dodatniego równaniowego wykorzystuje natomiast funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
Funkcja {{ZobaczTeż|rozdziały}} wyszukuje rozdziały, dodatnie równaniowe, centrowane szablonowo lub znacznikowo i nagłówkowe - poprzez szablony, czy znaczniki nagłówków.
* Rozdziały równaniowe, to są rozdziały otoczone wokół stron linii tekstu znakami {{Code|{{=}}}}, przykład: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}},
* Rozdziały, oczywiście, że dodatnie, nagłówkowe, to te: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{tag|h6}},
** Lub przez użycie szablonu: {{s|HNumer}}, do generowania sztucznego nagłówka, ta funkcja generuje powyższe nagłówki, przy pomocy zachowania zgodności z rozdziałami dodatnimi rówaniowo, nawet gdy po lewej i poprawej, liczba {{Code|{{=}}}}, jest większa niż: {{Code|6}}, co normalnie jest niedozwolone, w jego pierwszy parametrze, który symbolizuje pewien rozdział dodatni równaniowo,
* Centrowane szablonowo, oznaczone są szablonami: {{s|Ce}}, {{s|Centruj}} i {{s|Center}},
* Centrowane znacznikowo, oznaczone są znacznikami: {{Tag|center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Definicja skrótowa funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}} - tekst artykułu zakodowanego, w którym wyszukuje się rozdziały dodatnie,
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_od_tylu}} - jak w: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_spis_tresci}} {{Patrz|czy_spis_tresci}} - funkcja sprawdza, czy nagłówek spisu, jeśli istnieje, spełnia ściśle określone kryteria, jest to policzony nagłówek z funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}, z tego samego nagłówka, przed transformacją, z przechwyconego z elementu, w którym jest właśnie to,
* Paraametry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
=== {{Śródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}{{Code|RozpatrywanieNapisoweWprowadzeniaTekstu}} ===
Fukcja ogólna do przeszukiwania kolejnych elementów według wzoru i wskazywania ich pozycji początkowej, czy końcowej, i elementów przechwytywanych.
Funkcja została skonstrułowana, by wyszukiwała kolejne rozdziały różnych typów, tzn.: {{Code|SZABLON}}, {{Code|ZNACZNIK}} i trzeciego nieokreślonej żadnym kodem, w postaci trzech konstrukcji szczególnych wykorzystujących tą funkcję, w ogólnej funkcji, aby uzyskać pewne zmienne, by później je wykorzystać w funkcji {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}} do zwracania danych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozpatrywanieNapisoweWprowadzeniaTekstu(wzor,czy_rozdzial_rownaniowy_dodatni,__FUNKCJA1,__FUNKCJA2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzor}} - wzór dla tekstu, który przeszukujemy,
* {{Code|czy_rozdzial_rownaniowy_dodatni}} - czy to jest rozdział dadatni równaniowy, wtedy ona przyjmuje wartość prawdziwą, w przeciwnym wypadku fałszywą, wtedy mamy, to dla nagłówków zapisanych w postaci kodów, jak rozdziały centrowania szablonowe i znacznikowe, sztuczne nagłówki napisu wprowadzenia tekstu, czy znaczniki nagłówków,
* {{Code|__FUNKCJA1}} - funkcja do uzyskiwania danych z przechwytywanego ciągu wsadzanych jako parametr, i zwracania ich w postaci, co najwyżej dwóh kolejnych elementów, np. szablon i znumerowany kod danej bazy kodów tekstu zakodowanego, czy też może jako jedyny parametr nagłówek,
* {{Code|__FUNKCJA2}} - funkcja do przetwarzania kolejno elementów, i do sterowania pętlą, aby nie zawsze ona się zatrzymywała, funkcja te parametry zwracane przez pierwszą funkcję są wsadzane jako parametry do tej funkcji, wraz z trzecią funkcją, której wynik zwracamy bezpośrednią z tej funkcji.
=== Funkcja zwracająca parametry ===
Opis funkcji zwracającej parametry, która jest potrzebna właśnie do tego.
Do tej funkcji są wykorzystywane dane zwrcócone bezpośrednio z funkcji: {{LinkŚródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}, dla trzech różnych prrzypadków nagłówków, tzn. nagłówków zapisanych w postaci szablonów, znaczników i rozdziałów równaniowych, wtedy drugi parametr tej funkcji jest prawdziwy.
==== {{Śródtytuł|ParametryNapisuWprowadzeniaTekstu}}{{Code|ParametryNapisuWprowadzeniaTekstu}} ====
Funkcja przyjmuje i przygotowuje parametry do zwrócenia.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParametryNapisuWprowadzeniaTekstu(liczba_start,liczba_koniec,spis_naglowka_stare,spis_naglowka,spis_naglowka_poziom)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - początek i koniec danego typu napisu wprowadzenia tekstu, tych typów jest wiele,
* {{Code|spis_naglowka_stare}} {{Patrz|spis_naglowka_stare}}, spis przed analizą {{LinkZobaczTeż|spis_naglowka}},
* {{Code|spis_naglowka}} {{Patrz|spis_naglowka}} - spis {{ZobaczTeż|spis_naglowka}} przeanalizowany przez funkcję: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}, a później przez: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, jeżeli parametr: {{LinkPatrz|czy_spis_tresci}}, istnieje, jest to robione poza tą funkcją, możliwe, że ta wartość nie istnieje,
* {{Code|spis_naglowka_poziom}} {{Patrz|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych, dla pozostałych nagłówków nie istnieje.
Funcja zwraca parametry napisane ogólnie według kodu dla każdego rodzaju napisu wprowadzenia tekstu:
<syntaxhighlight lang="lua">
return liczba_start,liczba_koniec,spis_naglowka,spis_naglowka_stare,spis_naglowka_poziom;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez ten obiekt dla danego rodzaju rozdziału:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - jest to powtórzenie parametrów dwóch pierwszych z parametrów tej funkcji,
* {{Code|spis_naglowka}} - ten parametr jest liczony dla nieistniejącego parametru: {{LinkPatrz|czy_spis_tresci}}, są robione podobne operacje, jak w punkcie: {{LinkZobaczTeż|spis_naglowka}}, a jeżeli ten wpomniany parametr istnieje, to to nie jest robione w tej funkcji,
* {{Code|spis_naglowka_stare}} - spis przed analizą, po którym ten parametr zamienia się w ten powyższy ostatni element, możliwe, że ten parametr nie istnieje, wtedy jest brany z: {{LinkPatrz|spis_naglowka}},
* {{Code|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych.
==== Dalszy opis funkcji ====
Funkcja w nagłówku zwraca parametry bezpośrednio z: {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}}, w postaci, np. dla rozdziału dodatniego równaniowego:
<syntaxhighlight lang="lua">
return ParametryNapisuWprowadzeniaTekstu(liczba_start_dodatni,liczba_koniec_dodatni,spis_naglowka_dodatni_stare,spis_naglowka_dodatni,spis_naglowka_dodatni_poziom);
</syntaxhighlight>
Dla innych typów nagłówków jest zamiast: {{Code|dodatni}}, w zmiennych w powyższym przykładzie jest: {{Code|szablon}} - dla rozdziałów szablonowych, czy {{Code|znacznik}} - znacznikowych.
Funkcja wybiera, jakiego typy nagłówków z zakresu wykrytych różnego typu, ma obsłużyć, i wtedy odpowiednio ustawia funkcję parametrów, wskazaną jak w powyższym przykładzie, względem maksymalnych, w wyszukiwaniu do tyłu, lub minimalnych, w wyszukiwanych do przodu, nagłówkach, lewych pozycji wartości uzyskanych ze wszystkich nagłówków, sprawdzając, czy to się zgadza, z którymiś pozycjami lewymi tych nagłówków trzech typów.
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
Funkcja uwzględnia nagłówki według {{LinkZobaczTeż|rozdziały}}, oprócz nagłówków równaniowych. Zawartością w nagłówkach centrowania, jest to wartość pierwszego parametru, a też w szablonie w sztucznych napisach wprowadzenia tekstu {{s|HNumer}}, jego zawartość to pierwszy jego argument, ale pomiędzy taką samą maksymalną liczbą znaków {{Code|{{=}}}} w nim, i jeszcze w jego wersji strimowanej.
; Uzyskanie elementów parametrów kodu bazy{{dk}}
* Funkcja wyszukuje pierwszego dozwolonego linku w tekście, w elemencie całkowitej zawartości: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, którym są te wywołania tych nagłówków, uzyskanego z dwóch elementów, z tablicy wielowymiarowej, czyli: {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}} - nagłówki szablonowe, lub {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}} - nagłówki znacznikowe, i numeru w postaci numeru szablonu tego poszczególnego typu w bazie kodów, więc: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}.
* Wnętrze uzyskujemy z dwóch poprzednich parametrów z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
; Wyszukiwane trzy elementy zawartości obiektu{{dk}}
* Wyszukuje on w tak uzyskanej zawartości tego elementu, linki różnego typu, tzn. {{Code|LINKW}}, {{Code|LINKZ}} i linki szablonowe, i uzyskuje z tego trzy elementy, w nim, charakteryzujące kod: {{Code|{{m|Szablonowe}}}}, bazy kodów, a także wyszukuje w nim jego dalszy tekst, w nagłówku, po którym jest do końca jego zawartości, a jeżeli je znalazł, to to zwraca, te trzy zmienne i dalszy tekst.
* A jeżeli nie znalazł takiego linku, przy pierwszym kodzie, to wyszukuje dalej w tej zawartości, aż skończą się w tym zasoby danych, a jeśli się da, to je zwraca, w tak wytłumaczonej komplecie zmiennych, lub nic nie zrzuca, żadnego kompletu żadnych zmiennych.
; Zrzucane przez funkcje parametry{{dk}}
* Tam jakiś pierwszy link musi być zakodowany bezpośrednio w takiej zawartości, aby je wykrył i zwrócił w takiej postaci, jak opisano. A jeżeli nie, to te trzy parametry zrzuci, jeżeli link jest bezpostrednio w zawartości wnętrza, a jeśli nie, to ten trzeci już nie ma wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji {{Patrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}:
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Paramtry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Opis parametrów zwracanych dokończające jego dokumentację:
* Parametry z sekcji {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, mozliwe wartości: {{Code|SZABLON}} (linku szablonowe), {{Code|LINKW}} (linki wewnętrzne)i i {{Code|LINKZ}} (linki zewnętrzne),
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Inne parametry:
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy zwracany tekst w napisie wprowadzenia tekstu, po zwracanym jako jego parametry tej funkcji, czyli dalszego tekstu.
Kod zwracanych parametrów funkcji:
<syntaxhighlight lang="lua">
return szablon,obiekt,kod,dalszy_tekst;
</syntaxhighlight>
; Wykrywane linki różnego typu{{dk}}
* Funkcja wyszukuje rozdziały, a w nich pierwsze zarejestrowane linki, którymi są zakodowane linki wewnętrzne lub zewnętrzne, lub linku szablonowe, nawet inteligentne, którego nazwy są zakatologowane w tablicach, te linki mogą być inne, niż linki standardowe inteligentne, czyli: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.linki_szablony_elementy_spisu_rzeczy={
["SpisTreści"]=true,
["Sekcja referencyjna"]=true,
["Sr"]=true,
["Link wewnętrzny"]=true,
["Ly"]=true,
["LinkOgólne"]=true,
["Lo"]=true,
}
</syntaxhighlight>
* Inne linki mogące być uzyte w rozdziałach zdefiniowane są w punkcie: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}. Jeszcze są wspomniane linki, to tzw. linki inteligentne standardowe, w przeciwieństwie do powyższych, ale nie do końca, można sprawdzić przez funkcję: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}} {{Patrz|p.PodzielNaElementyNazwowyWikiLinkInteligentny}}, czy są takie.
; Przykład wywołania fukcji {{dk}}
Przykład wywołania funkcji wraz z jego udokumentowanymi parametrami z: {{LinkPatrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}, czyli:
<syntaxhighlight lang="lua">
local szablon,obiekt,kod,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
34f5m9esnjgnqsrq92xtnukb02vxuz0
554530
554529
2026-09-05T18:57:11Z
Persino
2851
554530
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
Funkcja wyszukuje w: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, najbliższy rozdział do przodu lub od tyłu w zależności od podanego parametru: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, w zakresach od: {{Code|liczba_od}} {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Funkcja znajdująca uwzględnia, że tekst {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, może być zakodowany w bazie kodów: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, a części jego bazy mogą być w postaci przeanalizowanej w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja przeszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, linie rodziałów zakodowanych, a dla rozdziału dodatniego równaniowego wykorzystuje natomiast funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
Funkcja {{ZobaczTeż|rozdziały}} wyszukuje rozdziały, dodatnie równaniowe, centrowane szablonowo lub znacznikowo i nagłówkowe - poprzez szablony, czy znaczniki nagłówków.
* Rozdziały równaniowe, to są rozdziały otoczone wokół stron linii tekstu znakami {{Code|{{=}}}}, przykład: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}},
* Rozdziały, oczywiście, że dodatnie, nagłówkowe, to te: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{tag|h6}},
** Lub przez użycie szablonu: {{s|HNumer}}, do generowania sztucznego nagłówka, ta funkcja generuje powyższe nagłówki, przy pomocy zachowania zgodności z rozdziałami dodatnimi rówaniowo, nawet gdy po lewej i poprawej, liczba {{Code|{{=}}}}, jest większa niż: {{Code|6}}, co normalnie jest niedozwolone, w jego pierwszy parametrze, który symbolizuje pewien rozdział dodatni równaniowo,
* Centrowane szablonowo, oznaczone są szablonami: {{s|Ce}}, {{s|Centruj}} i {{s|Center}},
* Centrowane znacznikowo, oznaczone są znacznikami: {{Tag|center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Definicja skrótowa funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}} - tekst artykułu zakodowanego, w którym wyszukuje się rozdziały dodatnie,
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_od_tylu}} - jak w: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_spis_tresci}} {{Patrz|czy_spis_tresci}} - funkcja sprawdza, czy nagłówek spisu, jeśli istnieje, spełnia ściśle określone kryteria, jest to policzony nagłówek z funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}, z tego samego nagłówka, przed transformacją, z przechwyconego z elementu, w którym jest właśnie to,
* Paraametry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
=== {{Śródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}{{Code|RozpatrywanieNapisoweWprowadzeniaTekstu}} ===
Fukcja ogólna do przeszukiwania kolejnych elementów według wzoru i wskazywania ich pozycji początkowej, czy końcowej, i elementów przechwytywanych.
Funkcja została skonstrułowana, by wyszukiwała kolejne rozdziały różnych typów, tzn.: {{Code|SZABLON}}, {{Code|ZNACZNIK}} i trzeciego nieokreślonej żadnym kodem, w postaci trzech konstrukcji szczególnych wykorzystujących tą funkcję, w ogólnej funkcji, aby uzyskać pewne zmienne, by później je wykorzystać w funkcji {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}} do zwracania danych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozpatrywanieNapisoweWprowadzeniaTekstu(wzor,czy_rozdzial_rownaniowy_dodatni,__FUNKCJA1,__FUNKCJA2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzor}} - wzór dla tekstu, który przeszukujemy,
* {{Code|czy_rozdzial_rownaniowy_dodatni}} - czy to jest rozdział dadatni równaniowy, wtedy ona przyjmuje wartość prawdziwą, w przeciwnym wypadku fałszywą, wtedy mamy, to dla nagłówków zapisanych w postaci kodów, jak rozdziały centrowania szablonowe i znacznikowe, sztuczne nagłówki napisu wprowadzenia tekstu, czy znaczniki nagłówków,
* {{Code|__FUNKCJA1}} - funkcja do uzyskiwania danych z przechwytywanego ciągu wsadzanych jako parametr, i zwracania ich w postaci, co najwyżej dwóh kolejnych elementów, np. szablon i znumerowany kod danej bazy kodów tekstu zakodowanego, czy też może jako jedyny parametr nagłówek,
* {{Code|__FUNKCJA2}} - funkcja do przetwarzania kolejno elementów, i do sterowania pętlą, aby nie zawsze ona się zatrzymywała, funkcja te parametry zwracane przez pierwszą funkcję są wsadzane jako parametry do tej funkcji, wraz z trzecią funkcją, której wynik zwracamy bezpośrednią z tej funkcji.
=== Funkcja zwracająca parametry ===
Opis funkcji zwracającej parametry, która jest potrzebna właśnie do tego.
Do tej funkcji są wykorzystywane dane zwrcócone bezpośrednio z funkcji: {{LinkŚródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}, dla trzech różnych prrzypadków nagłówków, tzn. nagłówków zapisanych w postaci szablonów, znaczników i rozdziałów równaniowych, wtedy drugi parametr tej funkcji jest prawdziwy.
==== {{Śródtytuł|ParametryNapisuWprowadzeniaTekstu}}{{Code|ParametryNapisuWprowadzeniaTekstu}} ====
Funkcja przyjmuje i przygotowuje parametry do zwrócenia.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParametryNapisuWprowadzeniaTekstu(liczba_start,liczba_koniec,spis_naglowka_stare,spis_naglowka,spis_naglowka_poziom)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - początek i koniec danego typu napisu wprowadzenia tekstu, tych typów jest wiele,
* {{Code|spis_naglowka_stare}} {{Patrz|spis_naglowka_stare}}, spis przed analizą {{LinkZobaczTeż|spis_naglowka}},
* {{Code|spis_naglowka}} {{Patrz|spis_naglowka}} - spis {{ZobaczTeż|spis_naglowka}} przeanalizowany przez funkcję: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}, a później przez: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, jeżeli parametr: {{LinkPatrz|czy_spis_tresci}}, istnieje, jest to robione poza tą funkcją, możliwe, że ta wartość nie istnieje,
* {{Code|spis_naglowka_poziom}} {{Patrz|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych, dla pozostałych nagłówków nie istnieje.
Funcja zwraca parametry napisane ogólnie według kodu dla każdego rodzaju napisu wprowadzenia tekstu:
<syntaxhighlight lang="lua">
return liczba_start,liczba_koniec,spis_naglowka,spis_naglowka_stare,spis_naglowka_poziom;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez ten obiekt dla danego rodzaju rozdziału:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - jest to powtórzenie parametrów dwóch pierwszych z parametrów tej funkcji,
* {{Code|spis_naglowka}} - ten parametr jest liczony dla nieistniejącego parametru: {{Code|czy_spis_tresci}} {{LinkPatrz|czy_spis_tresci}}, są robione podobne operacje, jak w punkcie: {{LinkZobaczTeż|spis_naglowka}}, a jeżeli ten wpomniany parametr istnieje, to to nie jest robione w tej funkcji,
* {{Code|spis_naglowka_stare}} - spis przed analizą, po którym ten parametr zamienia się w ten powyższy ostatni element, możliwe, że ten parametr nie istnieje, wtedy jest brany z: {{Code|spis_naglowka}} {{LinkPatrz|spis_naglowka}},
* {{Code|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych.
==== Dalszy opis funkcji ====
Funkcja w nagłówku zwraca parametry bezpośrednio z: {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}}, w postaci, np. dla rozdziału dodatniego równaniowego:
<syntaxhighlight lang="lua">
return ParametryNapisuWprowadzeniaTekstu(liczba_start_dodatni,liczba_koniec_dodatni,spis_naglowka_dodatni_stare,spis_naglowka_dodatni,spis_naglowka_dodatni_poziom);
</syntaxhighlight>
Dla innych typów nagłówków jest zamiast: {{Code|dodatni}}, w zmiennych w powyższym przykładzie jest: {{Code|szablon}} - dla rozdziałów szablonowych, czy {{Code|znacznik}} - znacznikowych.
Funkcja wybiera, jakiego typy nagłówków z zakresu wykrytych różnego typu, ma obsłużyć, i wtedy odpowiednio ustawia funkcję parametrów, wskazaną jak w powyższym przykładzie, względem maksymalnych, w wyszukiwaniu do tyłu, lub minimalnych, w wyszukiwanych do przodu, nagłówkach, lewych pozycji wartości uzyskanych ze wszystkich nagłówków, sprawdzając, czy to się zgadza, z którymiś pozycjami lewymi tych nagłówków trzech typów.
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
Funkcja uwzględnia nagłówki według {{LinkZobaczTeż|rozdziały}}, oprócz nagłówków równaniowych. Zawartością w nagłówkach centrowania, jest to wartość pierwszego parametru, a też w szablonie w sztucznych napisach wprowadzenia tekstu {{s|HNumer}}, jego zawartość to pierwszy jego argument, ale pomiędzy taką samą maksymalną liczbą znaków {{Code|{{=}}}} w nim, i jeszcze w jego wersji strimowanej.
; Uzyskanie elementów parametrów kodu bazy{{dk}}
* Funkcja wyszukuje pierwszego dozwolonego linku w tekście, w elemencie całkowitej zawartości: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, którym są te wywołania tych nagłówków, uzyskanego z dwóch elementów, z tablicy wielowymiarowej, czyli: {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}} - nagłówki szablonowe, lub {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}} - nagłówki znacznikowe, i numeru w postaci numeru szablonu tego poszczególnego typu w bazie kodów, więc: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}.
* Wnętrze uzyskujemy z dwóch poprzednich parametrów z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
; Wyszukiwane trzy elementy zawartości obiektu{{dk}}
* Wyszukuje on w tak uzyskanej zawartości tego elementu, linki różnego typu, tzn. {{Code|LINKW}}, {{Code|LINKZ}} i linki szablonowe, i uzyskuje z tego trzy elementy, w nim, charakteryzujące kod: {{Code|{{m|Szablonowe}}}}, bazy kodów, a także wyszukuje w nim jego dalszy tekst, w nagłówku, po którym jest do końca jego zawartości, a jeżeli je znalazł, to to zwraca, te trzy zmienne i dalszy tekst.
* A jeżeli nie znalazł takiego linku, przy pierwszym kodzie, to wyszukuje dalej w tej zawartości, aż skończą się w tym zasoby danych, a jeśli się da, to je zwraca, w tak wytłumaczonej komplecie zmiennych, lub nic nie zrzuca, żadnego kompletu żadnych zmiennych.
; Zrzucane przez funkcje parametry{{dk}}
* Tam jakiś pierwszy link musi być zakodowany bezpośrednio w takiej zawartości, aby je wykrył i zwrócił w takiej postaci, jak opisano. A jeżeli nie, to te trzy parametry zrzuci, jeżeli link jest bezpostrednio w zawartości wnętrza, a jeśli nie, to ten trzeci już nie ma wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji {{Patrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}:
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Paramtry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Opis parametrów zwracanych dokończające jego dokumentację:
* Parametry z sekcji {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, mozliwe wartości: {{Code|SZABLON}} (linku szablonowe), {{Code|LINKW}} (linki wewnętrzne)i i {{Code|LINKZ}} (linki zewnętrzne),
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Inne parametry:
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy zwracany tekst w napisie wprowadzenia tekstu, po zwracanym jako jego parametry tej funkcji, czyli dalszego tekstu.
Kod zwracanych parametrów funkcji:
<syntaxhighlight lang="lua">
return szablon,obiekt,kod,dalszy_tekst;
</syntaxhighlight>
; Wykrywane linki różnego typu{{dk}}
* Funkcja wyszukuje rozdziały, a w nich pierwsze zarejestrowane linki, którymi są zakodowane linki wewnętrzne lub zewnętrzne, lub linku szablonowe, nawet inteligentne, którego nazwy są zakatologowane w tablicach, te linki mogą być inne, niż linki standardowe inteligentne, czyli: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.linki_szablony_elementy_spisu_rzeczy={
["SpisTreści"]=true,
["Sekcja referencyjna"]=true,
["Sr"]=true,
["Link wewnętrzny"]=true,
["Ly"]=true,
["LinkOgólne"]=true,
["Lo"]=true,
}
</syntaxhighlight>
* Inne linki mogące być uzyte w rozdziałach zdefiniowane są w punkcie: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}. Jeszcze są wspomniane linki, to tzw. linki inteligentne standardowe, w przeciwieństwie do powyższych, ale nie do końca, można sprawdzić przez funkcję: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}} {{Patrz|p.PodzielNaElementyNazwowyWikiLinkInteligentny}}, czy są takie.
; Przykład wywołania fukcji {{dk}}
Przykład wywołania funkcji wraz z jego udokumentowanymi parametrami z: {{LinkPatrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}, czyli:
<syntaxhighlight lang="lua">
local szablon,obiekt,kod,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
5b33irb2i84mfctkny3p5brys7l5iuh
554531
554530
2026-09-05T18:57:51Z
Persino
2851
/* {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} */
554531
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
Funkcja wyszukuje w: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, najbliższy rozdział do przodu lub od tyłu w zależności od podanego parametru: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, w zakresach od: {{Code|liczba_od}} {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Funkcja znajdująca uwzględnia, że tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, może być zakodowany w bazie kodów: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, a części jego bazy mogą być w postaci przeanalizowanej w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja przeszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, linie rodziałów zakodowanych, a dla rozdziału dodatniego równaniowego wykorzystuje natomiast funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
Funkcja {{ZobaczTeż|rozdziały}} wyszukuje rozdziały, dodatnie równaniowe, centrowane szablonowo lub znacznikowo i nagłówkowe - poprzez szablony, czy znaczniki nagłówków.
* Rozdziały równaniowe, to są rozdziały otoczone wokół stron linii tekstu znakami {{Code|{{=}}}}, przykład: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}},
* Rozdziały, oczywiście, że dodatnie, nagłówkowe, to te: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{tag|h6}},
** Lub przez użycie szablonu: {{s|HNumer}}, do generowania sztucznego nagłówka, ta funkcja generuje powyższe nagłówki, przy pomocy zachowania zgodności z rozdziałami dodatnimi rówaniowo, nawet gdy po lewej i poprawej, liczba {{Code|{{=}}}}, jest większa niż: {{Code|6}}, co normalnie jest niedozwolone, w jego pierwszy parametrze, który symbolizuje pewien rozdział dodatni równaniowo,
* Centrowane szablonowo, oznaczone są szablonami: {{s|Ce}}, {{s|Centruj}} i {{s|Center}},
* Centrowane znacznikowo, oznaczone są znacznikami: {{Tag|center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Definicja skrótowa funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}} - tekst artykułu zakodowanego, w którym wyszukuje się rozdziały dodatnie,
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_od_tylu}} - jak w: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_spis_tresci}} {{Patrz|czy_spis_tresci}} - funkcja sprawdza, czy nagłówek spisu, jeśli istnieje, spełnia ściśle określone kryteria, jest to policzony nagłówek z funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}, z tego samego nagłówka, przed transformacją, z przechwyconego z elementu, w którym jest właśnie to,
* Paraametry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
=== {{Śródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}{{Code|RozpatrywanieNapisoweWprowadzeniaTekstu}} ===
Fukcja ogólna do przeszukiwania kolejnych elementów według wzoru i wskazywania ich pozycji początkowej, czy końcowej, i elementów przechwytywanych.
Funkcja została skonstrułowana, by wyszukiwała kolejne rozdziały różnych typów, tzn.: {{Code|SZABLON}}, {{Code|ZNACZNIK}} i trzeciego nieokreślonej żadnym kodem, w postaci trzech konstrukcji szczególnych wykorzystujących tą funkcję, w ogólnej funkcji, aby uzyskać pewne zmienne, by później je wykorzystać w funkcji {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}} do zwracania danych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozpatrywanieNapisoweWprowadzeniaTekstu(wzor,czy_rozdzial_rownaniowy_dodatni,__FUNKCJA1,__FUNKCJA2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzor}} - wzór dla tekstu, który przeszukujemy,
* {{Code|czy_rozdzial_rownaniowy_dodatni}} - czy to jest rozdział dadatni równaniowy, wtedy ona przyjmuje wartość prawdziwą, w przeciwnym wypadku fałszywą, wtedy mamy, to dla nagłówków zapisanych w postaci kodów, jak rozdziały centrowania szablonowe i znacznikowe, sztuczne nagłówki napisu wprowadzenia tekstu, czy znaczniki nagłówków,
* {{Code|__FUNKCJA1}} - funkcja do uzyskiwania danych z przechwytywanego ciągu wsadzanych jako parametr, i zwracania ich w postaci, co najwyżej dwóh kolejnych elementów, np. szablon i znumerowany kod danej bazy kodów tekstu zakodowanego, czy też może jako jedyny parametr nagłówek,
* {{Code|__FUNKCJA2}} - funkcja do przetwarzania kolejno elementów, i do sterowania pętlą, aby nie zawsze ona się zatrzymywała, funkcja te parametry zwracane przez pierwszą funkcję są wsadzane jako parametry do tej funkcji, wraz z trzecią funkcją, której wynik zwracamy bezpośrednią z tej funkcji.
=== Funkcja zwracająca parametry ===
Opis funkcji zwracającej parametry, która jest potrzebna właśnie do tego.
Do tej funkcji są wykorzystywane dane zwrcócone bezpośrednio z funkcji: {{LinkŚródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}, dla trzech różnych prrzypadków nagłówków, tzn. nagłówków zapisanych w postaci szablonów, znaczników i rozdziałów równaniowych, wtedy drugi parametr tej funkcji jest prawdziwy.
==== {{Śródtytuł|ParametryNapisuWprowadzeniaTekstu}}{{Code|ParametryNapisuWprowadzeniaTekstu}} ====
Funkcja przyjmuje i przygotowuje parametry do zwrócenia.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParametryNapisuWprowadzeniaTekstu(liczba_start,liczba_koniec,spis_naglowka_stare,spis_naglowka,spis_naglowka_poziom)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - początek i koniec danego typu napisu wprowadzenia tekstu, tych typów jest wiele,
* {{Code|spis_naglowka_stare}} {{Patrz|spis_naglowka_stare}}, spis przed analizą {{LinkZobaczTeż|spis_naglowka}},
* {{Code|spis_naglowka}} {{Patrz|spis_naglowka}} - spis {{ZobaczTeż|spis_naglowka}} przeanalizowany przez funkcję: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}, a później przez: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, jeżeli parametr: {{LinkPatrz|czy_spis_tresci}}, istnieje, jest to robione poza tą funkcją, możliwe, że ta wartość nie istnieje,
* {{Code|spis_naglowka_poziom}} {{Patrz|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych, dla pozostałych nagłówków nie istnieje.
Funcja zwraca parametry napisane ogólnie według kodu dla każdego rodzaju napisu wprowadzenia tekstu:
<syntaxhighlight lang="lua">
return liczba_start,liczba_koniec,spis_naglowka,spis_naglowka_stare,spis_naglowka_poziom;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez ten obiekt dla danego rodzaju rozdziału:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - jest to powtórzenie parametrów dwóch pierwszych z parametrów tej funkcji,
* {{Code|spis_naglowka}} - ten parametr jest liczony dla nieistniejącego parametru: {{Code|czy_spis_tresci}} {{LinkPatrz|czy_spis_tresci}}, są robione podobne operacje, jak w punkcie: {{LinkZobaczTeż|spis_naglowka}}, a jeżeli ten wpomniany parametr istnieje, to to nie jest robione w tej funkcji,
* {{Code|spis_naglowka_stare}} - spis przed analizą, po którym ten parametr zamienia się w ten powyższy ostatni element, możliwe, że ten parametr nie istnieje, wtedy jest brany z: {{Code|spis_naglowka}} {{LinkPatrz|spis_naglowka}},
* {{Code|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych.
==== Dalszy opis funkcji ====
Funkcja w nagłówku zwraca parametry bezpośrednio z: {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}}, w postaci, np. dla rozdziału dodatniego równaniowego:
<syntaxhighlight lang="lua">
return ParametryNapisuWprowadzeniaTekstu(liczba_start_dodatni,liczba_koniec_dodatni,spis_naglowka_dodatni_stare,spis_naglowka_dodatni,spis_naglowka_dodatni_poziom);
</syntaxhighlight>
Dla innych typów nagłówków jest zamiast: {{Code|dodatni}}, w zmiennych w powyższym przykładzie jest: {{Code|szablon}} - dla rozdziałów szablonowych, czy {{Code|znacznik}} - znacznikowych.
Funkcja wybiera, jakiego typy nagłówków z zakresu wykrytych różnego typu, ma obsłużyć, i wtedy odpowiednio ustawia funkcję parametrów, wskazaną jak w powyższym przykładzie, względem maksymalnych, w wyszukiwaniu do tyłu, lub minimalnych, w wyszukiwanych do przodu, nagłówkach, lewych pozycji wartości uzyskanych ze wszystkich nagłówków, sprawdzając, czy to się zgadza, z którymiś pozycjami lewymi tych nagłówków trzech typów.
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
Funkcja uwzględnia nagłówki według {{LinkZobaczTeż|rozdziały}}, oprócz nagłówków równaniowych. Zawartością w nagłówkach centrowania, jest to wartość pierwszego parametru, a też w szablonie w sztucznych napisach wprowadzenia tekstu {{s|HNumer}}, jego zawartość to pierwszy jego argument, ale pomiędzy taką samą maksymalną liczbą znaków {{Code|{{=}}}} w nim, i jeszcze w jego wersji strimowanej.
; Uzyskanie elementów parametrów kodu bazy{{dk}}
* Funkcja wyszukuje pierwszego dozwolonego linku w tekście, w elemencie całkowitej zawartości: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, którym są te wywołania tych nagłówków, uzyskanego z dwóch elementów, z tablicy wielowymiarowej, czyli: {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}} - nagłówki szablonowe, lub {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}} - nagłówki znacznikowe, i numeru w postaci numeru szablonu tego poszczególnego typu w bazie kodów, więc: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}.
* Wnętrze uzyskujemy z dwóch poprzednich parametrów z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
; Wyszukiwane trzy elementy zawartości obiektu{{dk}}
* Wyszukuje on w tak uzyskanej zawartości tego elementu, linki różnego typu, tzn. {{Code|LINKW}}, {{Code|LINKZ}} i linki szablonowe, i uzyskuje z tego trzy elementy, w nim, charakteryzujące kod: {{Code|{{m|Szablonowe}}}}, bazy kodów, a także wyszukuje w nim jego dalszy tekst, w nagłówku, po którym jest do końca jego zawartości, a jeżeli je znalazł, to to zwraca, te trzy zmienne i dalszy tekst.
* A jeżeli nie znalazł takiego linku, przy pierwszym kodzie, to wyszukuje dalej w tej zawartości, aż skończą się w tym zasoby danych, a jeśli się da, to je zwraca, w tak wytłumaczonej komplecie zmiennych, lub nic nie zrzuca, żadnego kompletu żadnych zmiennych.
; Zrzucane przez funkcje parametry{{dk}}
* Tam jakiś pierwszy link musi być zakodowany bezpośrednio w takiej zawartości, aby je wykrył i zwrócił w takiej postaci, jak opisano. A jeżeli nie, to te trzy parametry zrzuci, jeżeli link jest bezpostrednio w zawartości wnętrza, a jeśli nie, to ten trzeci już nie ma wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji {{Patrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}:
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Paramtry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Opis parametrów zwracanych dokończające jego dokumentację:
* Parametry z sekcji {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, mozliwe wartości: {{Code|SZABLON}} (linku szablonowe), {{Code|LINKW}} (linki wewnętrzne)i i {{Code|LINKZ}} (linki zewnętrzne),
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Inne parametry:
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy zwracany tekst w napisie wprowadzenia tekstu, po zwracanym jako jego parametry tej funkcji, czyli dalszego tekstu.
Kod zwracanych parametrów funkcji:
<syntaxhighlight lang="lua">
return szablon,obiekt,kod,dalszy_tekst;
</syntaxhighlight>
; Wykrywane linki różnego typu{{dk}}
* Funkcja wyszukuje rozdziały, a w nich pierwsze zarejestrowane linki, którymi są zakodowane linki wewnętrzne lub zewnętrzne, lub linku szablonowe, nawet inteligentne, którego nazwy są zakatologowane w tablicach, te linki mogą być inne, niż linki standardowe inteligentne, czyli: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.linki_szablony_elementy_spisu_rzeczy={
["SpisTreści"]=true,
["Sekcja referencyjna"]=true,
["Sr"]=true,
["Link wewnętrzny"]=true,
["Ly"]=true,
["LinkOgólne"]=true,
["Lo"]=true,
}
</syntaxhighlight>
* Inne linki mogące być uzyte w rozdziałach zdefiniowane są w punkcie: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}. Jeszcze są wspomniane linki, to tzw. linki inteligentne standardowe, w przeciwieństwie do powyższych, ale nie do końca, można sprawdzić przez funkcję: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}} {{Patrz|p.PodzielNaElementyNazwowyWikiLinkInteligentny}}, czy są takie.
; Przykład wywołania fukcji {{dk}}
Przykład wywołania funkcji wraz z jego udokumentowanymi parametrami z: {{LinkPatrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}, czyli:
<syntaxhighlight lang="lua">
local szablon,obiekt,kod,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
hbt5oks8sslfzt1z54g9wtp6elfv6ss
554532
554531
2026-09-05T19:10:07Z
Persino
2851
/* {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} */
554532
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
Funkcja wyszukuje w: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, najbliższy rozdział do przodu lub od tyłu w zależności od podanego parametru: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, w zakresach od: {{Code|liczba_od}} {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Funkcja znajdująca uwzględnia, że tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, może być zakodowany w bazie kodów: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, a części jego bazy mogą być w postaci przeanalizowanej w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja przeszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, linie rodziałów zakodowanych, a dla rozdziału dodatniego równaniowego wykorzystuje natomiast funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
Funkcja {{ZobaczTeż|rozdziały}} wyszukuje rozdziały, dodatnie równaniowe, centrowane szablonowo lub znacznikowo i nagłówkowe - poprzez szablony, czy znaczniki nagłówków.
* Rozdziały równaniowe, to są rozdziały otoczone wokół stron linii tekstu znakami {{Code|{{=}}}}, przykład: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}},
* Rozdziały, oczywiście, że dodatnie, nagłówkowe, to te: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{tag|h6}},
** Lub przez użycie szablonu: {{s|HNumer}}, do generowania sztucznego nagłówka, ta funkcja generuje powyższe nagłówki, przy pomocy zachowania zgodności z rozdziałami dodatnimi rówaniowo, nawet gdy po lewej i poprawej, liczba {{Code|{{=}}}}, jest większa niż: {{Code|6}}, co normalnie jest niedozwolone, w jego pierwszy parametrze, który symbolizuje pewien rozdział dodatni równaniowo,
* Centrowane szablonowo, oznaczone są szablonami: {{s|Ce}}, {{s|Centruj}} i {{s|Center}},
* Centrowane znacznikowo, oznaczone są znacznikami: {{Tag|center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Definicja skrótowa funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}} - tekst artykułu zakodowanego, w którym wyszukuje się rozdziały dodatnie,
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_od_tylu}} - jak w: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_spis_tresci}} {{Patrz|czy_spis_tresci}} - funkcja sprawdza, czy nagłówek spisu, jeśli istnieje, spełnia ściśle określone kryteria, jest to policzony nagłówek z funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}, z tego samego nagłówka, przed transformacją, z przechwyconego z elementu, w którym jest właśnie to,
* Paraametry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
=== {{Śródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}{{Code|RozpatrywanieNapisoweWprowadzeniaTekstu}} ===
Fukcja ogólna do przeszukiwania kolejnych elementów według wzoru i wskazywania ich pozycji początkowej, czy końcowej, i elementów przechwytywanych.
Funkcja została skonstrułowana, by wyszukiwała kolejne rozdziały różnych typów, tzn.: {{Code|SZABLON}}, {{Code|ZNACZNIK}} i trzeciego nieokreślonej żadnym kodem, w postaci trzech konstrukcji szczególnych wykorzystujących tą funkcję, w ogólnej funkcji, aby uzyskać pewne zmienne, by później je wykorzystać w funkcji {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}} do zwracania danych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozpatrywanieNapisoweWprowadzeniaTekstu(wzor,czy_rozdzial_rownaniowy_dodatni,__FUNKCJA1,__FUNKCJA2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzor}} - wzór dla tekstu, który przeszukujemy,
* {{Code|czy_rozdzial_rownaniowy_dodatni}} - czy to jest rozdział dadatni równaniowy, wtedy ona przyjmuje wartość prawdziwą, w przeciwnym wypadku fałszywą, wtedy mamy, to dla nagłówków zapisanych w postaci kodów, jak rozdziały centrowania szablonowe i znacznikowe, sztuczne nagłówki napisu wprowadzenia tekstu, czy znaczniki nagłówków,
* {{Code|__FUNKCJA1}} - funkcja do uzyskiwania danych z przechwytywanego ciągu wsadzanych jako parametr, i zwracania ich w postaci, co najwyżej dwóh kolejnych elementów, np. szablon i znumerowany kod danej bazy kodów tekstu zakodowanego, czy też może jako jedyny parametr nagłówek,
* {{Code|__FUNKCJA2}} - funkcja do przetwarzania kolejno elementów, i do sterowania pętlą, aby nie zawsze ona się zatrzymywała, funkcja te parametry zwracane przez pierwszą funkcję są wsadzane jako parametry do tej funkcji, wraz z trzecią funkcją, której wynik zwracamy bezpośrednią z tej funkcji.
=== Funkcja zwracająca parametry ===
Opis funkcji zwracającej parametry, która jest potrzebna właśnie do tego.
Do tej funkcji są wykorzystywane dane zwrcócone bezpośrednio z funkcji: {{LinkŚródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}, dla trzech różnych prrzypadków nagłówków, tzn. nagłówków zapisanych w postaci szablonów, znaczników i rozdziałów równaniowych, wtedy drugi parametr tej funkcji jest prawdziwy.
==== {{Śródtytuł|ParametryNapisuWprowadzeniaTekstu}}{{Code|ParametryNapisuWprowadzeniaTekstu}} ====
Funkcja przyjmuje i przygotowuje parametry do zwrócenia.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParametryNapisuWprowadzeniaTekstu(liczba_start,liczba_koniec,spis_naglowka_stare,spis_naglowka,spis_naglowka_poziom)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - początek i koniec danego typu napisu wprowadzenia tekstu, tych typów jest wiele,
* {{Code|spis_naglowka_stare}} {{Patrz|spis_naglowka_stare}}, spis przed analizą {{LinkZobaczTeż|spis_naglowka}},
* {{Code|spis_naglowka}} {{Patrz|spis_naglowka}} - spis {{ZobaczTeż|spis_naglowka}} przeanalizowany przez funkcję: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}, a później przez: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, jeżeli parametr: {{LinkPatrz|czy_spis_tresci}}, istnieje, jest to robione poza tą funkcją, możliwe, że ta wartość nie istnieje,
* {{Code|spis_naglowka_poziom}} {{Patrz|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych, dla pozostałych nagłówków nie istnieje.
Funcja zwraca parametry napisane ogólnie według kodu dla każdego rodzaju napisu wprowadzenia tekstu:
<syntaxhighlight lang="lua">
return liczba_start,liczba_koniec,spis_naglowka,spis_naglowka_stare,spis_naglowka_poziom;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez ten obiekt dla danego rodzaju rozdziału:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - jest to powtórzenie parametrów dwóch pierwszych z parametrów tej funkcji,
* {{Code|spis_naglowka}} - ten parametr jest liczony dla nieistniejącego parametru: {{Code|czy_spis_tresci}} {{LinkPatrz|czy_spis_tresci}}, są robione podobne operacje, jak w punkcie: {{LinkZobaczTeż|spis_naglowka}}, a jeżeli ten wpomniany parametr istnieje, to to nie jest robione w tej funkcji,
* {{Code|spis_naglowka_stare}} - spis przed analizą, po którym ten parametr zamienia się w ten powyższy ostatni element, możliwe, że ten parametr nie istnieje, wtedy jest brany z: {{Code|spis_naglowka}} {{LinkPatrz|spis_naglowka}},
* {{Code|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych.
==== Dalszy opis funkcji ====
Funkcja w nagłówku zwraca parametry bezpośrednio z: {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}}, w postaci, np. dla rozdziału dodatniego równaniowego:
<syntaxhighlight lang="lua">
return ParametryNapisuWprowadzeniaTekstu(liczba_start_dodatni,liczba_koniec_dodatni,spis_naglowka_dodatni_stare,spis_naglowka_dodatni,spis_naglowka_dodatni_poziom);
</syntaxhighlight>
Dla innych typów nagłówków jest zamiast: {{Code|dodatni}}, w zmiennych w powyższym przykładzie jest: {{Code|szablon}} - dla rozdziałów szablonowych, czy {{Code|znacznik}} - znacznikowych.
Funkcja wybiera, jakiego typy nagłówków z zakresu wykrytych różnego typu, ma obsłużyć, i wtedy odpowiednio ustawia funkcję parametrów, wskazaną jak w powyższym przykładzie, względem maksymalnych, w wyszukiwaniu do tyłu, lub minimalnych, w wyszukiwanych do przodu, nagłówkach, lewych pozycji wartości uzyskanych ze wszystkich nagłówków, sprawdzając, czy to się zgadza, z którymiś pozycjami lewymi tych nagłówków trzech typów.
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
Funkcja uwzględnia nagłówki według {{LinkZobaczTeż|rozdziały}}, oprócz nagłówków równaniowych. Zawartością w nagłówkach centrowania, jest to wartość pierwszego parametru, a też w szablonie w sztucznych napisach wprowadzenia tekstu {{s|HNumer}}, jego zawartość to pierwszy jego argument, ale pomiędzy taką samą maksymalną liczbą znaków {{Code|{{=}}}} w nim, i jeszcze w jego wersji strimowanej.
; Uzyskanie elementów parametrów kodu bazy{{dk}}
* Funkcja wyszukuje pierwszego dozwolonego linku w tekście, w elemencie całkowitej zawartości: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, którym jest to wywołanie nagłówka, uzyskanego z dwóch elementów, z tablicy wielowymiarowej, czyli:
** {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}} - nagłówki szablonowe centrowania, typu: {{s|Ce}}, {{s|Centruj}} i {{s|Center}} oraz nagłówki sztucznego rozdziału, takich jak: {{s|Hnumer}},
** lub {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}} - nagłówki znacznikowe centrowania, typu: {{Tag|center}}, oraz znaczniki nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}},
*: oraz także uzykanego z drugiego numeru w postaci numeru szablonu tego poszczególnego typu w bazie kodów, więc: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}.
* Wnętrze uzyskujemy z dwóch poprzednich parametrów z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
; Wyszukiwane trzy elementy zawartości obiektu{{dk}}
* Wyszukuje on w tak uzyskanej zawartości tego elementu, linki różnego typu, tzn. {{Code|LINKW}}, {{Code|LINKZ}} i linki szablonowe, i uzyskuje z tego trzy elementy, w nim, charakteryzujące kod: {{Code|{{m|Szablonowe}}}}, bazy kodów, a także wyszukuje w nim jego dalszy tekst, w nagłówku, po którym jest do końca jego zawartości, a jeżeli je znalazł, to to zwraca, te trzy zmienne i dalszy tekst.
* A jeżeli nie znalazł takiego linku, przy pierwszym kodzie, to wyszukuje dalej w tej zawartości, aż skończą się w tym zasoby danych, a jeśli się da, to je zwraca, w tak wytłumaczonej komplecie zmiennych, lub nic nie zrzuca, żadnego kompletu żadnych zmiennych.
; Zrzucane przez funkcje parametry{{dk}}
* Tam jakiś pierwszy link musi być zakodowany bezpośrednio w takiej zawartości, aby je wykrył i zwrócił w takiej postaci, jak opisano. A jeżeli nie, to te trzy parametry zrzuci, jeżeli link jest bezpostrednio w zawartości wnętrza, a jeśli nie, to ten trzeci już nie ma wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji {{Patrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}:
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Paramtry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Opis parametrów zwracanych dokończające jego dokumentację:
* Parametry z sekcji {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, mozliwe wartości: {{Code|SZABLON}} (linku szablonowe), {{Code|LINKW}} (linki wewnętrzne)i i {{Code|LINKZ}} (linki zewnętrzne),
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Inne parametry:
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy zwracany tekst w napisie wprowadzenia tekstu, po zwracanym jako jego parametry tej funkcji, czyli dalszego tekstu.
Kod zwracanych parametrów funkcji:
<syntaxhighlight lang="lua">
return szablon,obiekt,kod,dalszy_tekst;
</syntaxhighlight>
; Wykrywane linki różnego typu{{dk}}
* Funkcja wyszukuje rozdziały, a w nich pierwsze zarejestrowane linki, którymi są zakodowane linki wewnętrzne lub zewnętrzne, lub linku szablonowe, nawet inteligentne, którego nazwy są zakatologowane w tablicach, te linki mogą być inne, niż linki standardowe inteligentne, czyli: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.linki_szablony_elementy_spisu_rzeczy={
["SpisTreści"]=true,
["Sekcja referencyjna"]=true,
["Sr"]=true,
["Link wewnętrzny"]=true,
["Ly"]=true,
["LinkOgólne"]=true,
["Lo"]=true,
}
</syntaxhighlight>
* Inne linki mogące być uzyte w rozdziałach zdefiniowane są w punkcie: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}. Jeszcze są wspomniane linki, to tzw. linki inteligentne standardowe, w przeciwieństwie do powyższych, ale nie do końca, można sprawdzić przez funkcję: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}} {{Patrz|p.PodzielNaElementyNazwowyWikiLinkInteligentny}}, czy są takie.
; Przykład wywołania fukcji {{dk}}
Przykład wywołania funkcji wraz z jego udokumentowanymi parametrami z: {{LinkPatrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}, czyli:
<syntaxhighlight lang="lua">
local szablon,obiekt,kod,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
oh18sowssy9b29k9u5qfvbic6jo0itc
554533
554532
2026-09-05T19:15:46Z
Persino
2851
/* {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} */
554533
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
Funkcja wyszukuje w: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, najbliższy rozdział do przodu lub od tyłu w zależności od podanego parametru: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, w zakresach od: {{Code|liczba_od}} {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Funkcja znajdująca uwzględnia, że tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, może być zakodowany w bazie kodów: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, a części jego bazy mogą być w postaci przeanalizowanej w: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja przeszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, linie rodziałów zakodowanych, a dla rozdziału dodatniego równaniowego wykorzystuje natomiast funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
Funkcja {{ZobaczTeż|rozdziały}} wyszukuje rozdziały, dodatnie równaniowe, centrowane szablonowo lub znacznikowo i nagłówkowe - poprzez szablony, czy znaczniki nagłówków.
* Rozdziały równaniowe, to są rozdziały otoczone wokół stron linii tekstu znakami {{Code|{{=}}}}, przykład: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}},
* Rozdziały, oczywiście, że dodatnie, nagłówkowe, to te: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{tag|h6}},
** Lub przez użycie szablonu: {{s|HNumer}}, do generowania sztucznego nagłówka, ta funkcja generuje powyższe nagłówki, przy pomocy zachowania zgodności z rozdziałami dodatnimi rówaniowo, nawet gdy po lewej i poprawej, liczba {{Code|{{=}}}}, jest większa niż: {{Code|6}}, co normalnie jest niedozwolone, w jego pierwszy parametrze, który symbolizuje pewien rozdział dodatni równaniowo,
* Centrowane szablonowo, oznaczone są szablonami: {{s|Ce}}, {{s|Centruj}} i {{s|Center}},
* Centrowane znacznikowo, oznaczone są znacznikami: {{Tag|center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Definicja skrótowa funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}} - tekst artykułu zakodowanego, w którym wyszukuje się rozdziały dodatnie,
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_od_tylu}} - jak w: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_spis_tresci}} {{Patrz|czy_spis_tresci}} - funkcja sprawdza, czy nagłówek spisu, jeśli istnieje, spełnia ściśle określone kryteria, jest to policzony nagłówek z funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}, z tego samego nagłówka, przed transformacją, z przechwyconego z elementu, w którym jest właśnie to,
* Paraametry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
=== {{Śródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}{{Code|RozpatrywanieNapisoweWprowadzeniaTekstu}} ===
Fukcja ogólna do przeszukiwania kolejnych elementów według wzoru i wskazywania ich pozycji początkowej, czy końcowej, i elementów przechwytywanych.
Funkcja została skonstrułowana, by wyszukiwała kolejne rozdziały różnych typów, tzn.: {{Code|SZABLON}}, {{Code|ZNACZNIK}} i trzeciego nieokreślonej żadnym kodem, w postaci trzech konstrukcji szczególnych wykorzystujących tą funkcję, w ogólnej funkcji, aby uzyskać pewne zmienne, by później je wykorzystać w funkcji {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}} do zwracania danych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozpatrywanieNapisoweWprowadzeniaTekstu(wzor,czy_rozdzial_rownaniowy_dodatni,__FUNKCJA1,__FUNKCJA2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzor}} - wzór dla tekstu, który przeszukujemy,
* {{Code|czy_rozdzial_rownaniowy_dodatni}} - czy to jest rozdział dadatni równaniowy, wtedy ona przyjmuje wartość prawdziwą, w przeciwnym wypadku fałszywą, wtedy mamy, to dla nagłówków zapisanych w postaci kodów, jak rozdziały centrowania szablonowe i znacznikowe, sztuczne nagłówki napisu wprowadzenia tekstu, czy znaczniki nagłówków,
* {{Code|__FUNKCJA1}} - funkcja do uzyskiwania danych z przechwytywanego ciągu wsadzanych jako parametr, i zwracania ich w postaci, co najwyżej dwóh kolejnych elementów, np. szablon i znumerowany kod danej bazy kodów tekstu zakodowanego, czy też może jako jedyny parametr nagłówek,
* {{Code|__FUNKCJA2}} - funkcja do przetwarzania kolejno elementów, i do sterowania pętlą, aby nie zawsze ona się zatrzymywała, funkcja te parametry zwracane przez pierwszą funkcję są wsadzane jako parametry do tej funkcji, wraz z trzecią funkcją, której wynik zwracamy bezpośrednią z tej funkcji.
=== Funkcja zwracająca parametry ===
Opis funkcji zwracającej parametry, która jest potrzebna właśnie do tego.
Do tej funkcji są wykorzystywane dane zwrcócone bezpośrednio z funkcji: {{LinkŚródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}, dla trzech różnych prrzypadków nagłówków, tzn. nagłówków zapisanych w postaci szablonów, znaczników i rozdziałów równaniowych, wtedy drugi parametr tej funkcji jest prawdziwy.
==== {{Śródtytuł|ParametryNapisuWprowadzeniaTekstu}}{{Code|ParametryNapisuWprowadzeniaTekstu}} ====
Funkcja przyjmuje i przygotowuje parametry do zwrócenia.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParametryNapisuWprowadzeniaTekstu(liczba_start,liczba_koniec,spis_naglowka_stare,spis_naglowka,spis_naglowka_poziom)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - początek i koniec danego typu napisu wprowadzenia tekstu, tych typów jest wiele,
* {{Code|spis_naglowka_stare}} {{Patrz|spis_naglowka_stare}}, spis przed analizą {{LinkZobaczTeż|spis_naglowka}},
* {{Code|spis_naglowka}} {{Patrz|spis_naglowka}} - spis {{ZobaczTeż|spis_naglowka}} przeanalizowany przez funkcję: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}, a później przez: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, jeżeli parametr: {{LinkPatrz|czy_spis_tresci}}, istnieje, jest to robione poza tą funkcją, możliwe, że ta wartość nie istnieje,
* {{Code|spis_naglowka_poziom}} {{Patrz|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych, dla pozostałych nagłówków nie istnieje.
Funcja zwraca parametry napisane ogólnie według kodu dla każdego rodzaju napisu wprowadzenia tekstu:
<syntaxhighlight lang="lua">
return liczba_start,liczba_koniec,spis_naglowka,spis_naglowka_stare,spis_naglowka_poziom;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez ten obiekt dla danego rodzaju rozdziału:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - jest to powtórzenie parametrów dwóch pierwszych z parametrów tej funkcji,
* {{Code|spis_naglowka}} - ten parametr jest liczony dla nieistniejącego parametru: {{Code|czy_spis_tresci}} {{LinkPatrz|czy_spis_tresci}}, są robione podobne operacje, jak w punkcie: {{LinkZobaczTeż|spis_naglowka}}, a jeżeli ten wpomniany parametr istnieje, to to nie jest robione w tej funkcji,
* {{Code|spis_naglowka_stare}} - spis przed analizą, po którym ten parametr zamienia się w ten powyższy ostatni element, możliwe, że ten parametr nie istnieje, wtedy jest brany z: {{Code|spis_naglowka}} {{LinkPatrz|spis_naglowka}},
* {{Code|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych.
==== Dalszy opis funkcji ====
Funkcja w nagłówku zwraca parametry bezpośrednio z: {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}}, w postaci, np. dla rozdziału dodatniego równaniowego:
<syntaxhighlight lang="lua">
return ParametryNapisuWprowadzeniaTekstu(liczba_start_dodatni,liczba_koniec_dodatni,spis_naglowka_dodatni_stare,spis_naglowka_dodatni,spis_naglowka_dodatni_poziom);
</syntaxhighlight>
Dla innych typów nagłówków jest zamiast: {{Code|dodatni}}, w zmiennych w powyższym przykładzie jest: {{Code|szablon}} - dla rozdziałów szablonowych, czy {{Code|znacznik}} - znacznikowych.
Funkcja wybiera, jakiego typy nagłówków z zakresu wykrytych różnego typu, ma obsłużyć, i wtedy odpowiednio ustawia funkcję parametrów, wskazaną jak w powyższym przykładzie, względem maksymalnych, w wyszukiwaniu do tyłu, lub minimalnych, w wyszukiwanych do przodu, nagłówkach, lewych pozycji wartości uzyskanych ze wszystkich nagłówków, sprawdzając, czy to się zgadza, z którymiś pozycjami lewymi tych nagłówków trzech typów.
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
Funkcja uwzględnia nagłówki według {{LinkZobaczTeż|rozdziały}}, oprócz nagłówków równaniowych. Zawartością w nagłówkach centrowania, jest to wartość pierwszego parametru, a też w szablonie w sztucznych napisach wprowadzenia tekstu {{s|HNumer}}, jego zawartość to pierwszy jego argument, ale pomiędzy taką samą maksymalną liczbą znaków {{Code|{{=}}}} w nim, i jeszcze w jego wersji strimowanej.
; Uzyskanie elementów parametrów kodu bazy{{dk}}
* Funkcja wyszukuje pierwszego dozwolonego linku w tekście, w elemencie całkowitej zawartości: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, którym jest to wywołanie nagłówka, uzyskanego z dwóch elementów, z tablicy wielowymiarowej, czyli:
** {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}} - nagłówki szablonowe centrowania, typu: {{s|Ce}}, {{s|Centruj}} i {{s|Center}} oraz nagłówki sztucznego rozdziału, takich jak: {{s|Hnumer}},
** lub {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}} - nagłówki znacznikowe centrowania, typu: {{Tag|center}}, oraz znaczniki nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}},
*: oraz także uzykanego z drugiego numeru w postaci numeru szablonu tego poszczególnego typu w bazie kodów, więc: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}.
* Wnętrze uzyskujemy z dwóch poprzednich parametrów z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
; Wyszukiwane trzy elementy zawartości obiektu{{dk}}
* Wyszukuje on w tak uzyskanej zawartości tego elementu, linki różnego typu, tzn. {{Code|LINKW}}, {{Code|LINKZ}} i linki szablonowe, i uzyskuje z tego trzy elementy, w nim, charakteryzujące kod: {{Code|{{m|Szablonowe}}}}, bazy kodów, a także wyszukuje w nim jego dalszy tekst, w nagłówku, po którym jest do końca jego zawartości, a jeżeli je znalazł, to to zwraca, te trzy zmienne i dalszy tekst.
* A jeżeli nie znalazł takiego linku, przy pierwszym kodzie, to wyszukuje dalej w tej zawartości, aż skończą się w tym zasoby danych, a jeśli się da, to je zwraca, w tak wytłumaczonej komplecie zmiennych, lub nic nie zrzuca, żadnego kompletu żadnych zmiennych.
; Zrzucane przez funkcje parametry{{dk}}
* Tam jakiś pierwszy link musi być zakodowany bezpośrednio w takiej zawartości, aby je wykrył i zwrócił w takiej postaci, jak opisano. A jeżeli nie, to te trzy parametry zrzuci, jeżeli link jest bezpostrednio w zawartości wnętrza, a jeśli nie, to ten trzeci już nie ma wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji {{Patrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}:
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Paramtry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Opis parametrów zwracanych dokończające jego dokumentację:
* Parametry z sekcji {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, mozliwe wartości: {{Code|SZABLON}} (linku szablonowe), {{Code|LINKW}} (linki wewnętrzne)i i {{Code|LINKZ}} (linki zewnętrzne),
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Inne parametry:
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy zwracany tekst w napisie wprowadzenia tekstu, po zwracanym jako jego parametry tej funkcji, czyli dalszego tekstu.
Kod zwracanych parametrów funkcji:
<syntaxhighlight lang="lua">
return szablon,obiekt,kod,dalszy_tekst;
</syntaxhighlight>
; Wykrywane linki różnego typu{{dk}}
* Funkcja wyszukuje rozdziały, a w nich pierwsze zarejestrowane linki, którymi są zakodowane linki wewnętrzne lub zewnętrzne, lub linku szablonowe, nawet inteligentne, którego nazwy są zakatologowane w tablicach, te linki mogą być inne, niż linki standardowe inteligentne, czyli: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.linki_szablony_elementy_spisu_rzeczy={
["SpisTreści"]=true,
["Sekcja referencyjna"]=true,
["Sr"]=true,
["Link wewnętrzny"]=true,
["Ly"]=true,
["LinkOgólne"]=true,
["Lo"]=true,
}
</syntaxhighlight>
* Inne linki mogące być uzyte w rozdziałach zdefiniowane są w punkcie: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}. Jeszcze są wspomniane linki, to tzw. linki inteligentne standardowe, w przeciwieństwie do powyższych, ale nie do końca, można sprawdzić przez funkcję: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}} {{Patrz|p.PodzielNaElementyNazwowyWikiLinkInteligentny}}, czy są takie.
; Przykład wywołania fukcji {{dk}}
Przykład wywołania funkcji wraz z jego udokumentowanymi parametrami z: {{LinkPatrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}, czyli:
<syntaxhighlight lang="lua">
local szablon,obiekt,kod,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
5vnup4logmpiga3vry71na6acw3easg
554534
554533
2026-09-05T19:18:15Z
Persino
2851
/* {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} */
554534
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
Funkcja wyszukuje w: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, najbliższy rozdział do przodu lub od tyłu w zależności od podanego parametru: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, w zakresach od: {{Code|liczba_od}} {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Funkcja znajdująca uwzględnia, że tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, może być zakodowany w bazie kodów: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, a części jego bazy mogą być w postaci przeanalizowanej w: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja przeszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, linie rodziałów zakodowanych, a dla rozdziału dodatniego równaniowego wykorzystuje natomiast funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
Funkcja {{ZobaczTeż|rozdziały}} wyszukuje rozdziały, dodatnie równaniowe, centrowane szablonowo lub znacznikowo i nagłówkowe - poprzez szablony, czy znaczniki nagłówków.
* Rozdziały równaniowe, to są rozdziały otoczone wokół stron linii tekstu znakami {{Code|{{=}}}}, przykład: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}},
* Rozdziały, oczywiście, że dodatnie, nagłówkowe, to te: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{tag|h6}},
** Lub przez użycie szablonu: {{s|HNumer}}, do generowania sztucznego nagłówka, ta funkcja generuje powyższe nagłówki, przy pomocy zachowania zgodności z rozdziałami dodatnimi rówaniowo, nawet gdy po lewej i poprawej, liczba {{Code|{{=}}}}, jest większa niż: {{Code|6}}, co normalnie jest niedozwolone, w jego pierwszy parametrze, który symbolizuje pewien rozdział dodatni równaniowo,
* Centrowane szablonowo, oznaczone są szablonami: {{s|Ce}}, {{s|Centruj}} i {{s|Center}},
* Centrowane znacznikowo, oznaczone są znacznikami: {{Tag|center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Definicja skrótowa funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}} - tekst artykułu zakodowanego, w którym wyszukuje się pewne rozdziały, według: {{LinkZobaczTeż|rozdziały}},
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_od_tylu}} - jak w: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_spis_tresci}} {{Patrz|czy_spis_tresci}} - funkcja sprawdza, czy nagłówek spisu, jeśli istnieje, spełnia ściśle określone kryteria, jest to policzony nagłówek z funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}, z tego samego nagłówka, przed transformacją, z przechwyconego z elementu, w którym jest właśnie to,
* Paraametry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
=== {{Śródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}{{Code|RozpatrywanieNapisoweWprowadzeniaTekstu}} ===
Fukcja ogólna do przeszukiwania kolejnych elementów według wzoru i wskazywania ich pozycji początkowej, czy końcowej, i elementów przechwytywanych.
Funkcja została skonstrułowana, by wyszukiwała kolejne rozdziały różnych typów, tzn.: {{Code|SZABLON}}, {{Code|ZNACZNIK}} i trzeciego nieokreślonej żadnym kodem, w postaci trzech konstrukcji szczególnych wykorzystujących tą funkcję, w ogólnej funkcji, aby uzyskać pewne zmienne, by później je wykorzystać w funkcji {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}} do zwracania danych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozpatrywanieNapisoweWprowadzeniaTekstu(wzor,czy_rozdzial_rownaniowy_dodatni,__FUNKCJA1,__FUNKCJA2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzor}} - wzór dla tekstu, który przeszukujemy,
* {{Code|czy_rozdzial_rownaniowy_dodatni}} - czy to jest rozdział dadatni równaniowy, wtedy ona przyjmuje wartość prawdziwą, w przeciwnym wypadku fałszywą, wtedy mamy, to dla nagłówków zapisanych w postaci kodów, jak rozdziały centrowania szablonowe i znacznikowe, sztuczne nagłówki napisu wprowadzenia tekstu, czy znaczniki nagłówków,
* {{Code|__FUNKCJA1}} - funkcja do uzyskiwania danych z przechwytywanego ciągu wsadzanych jako parametr, i zwracania ich w postaci, co najwyżej dwóh kolejnych elementów, np. szablon i znumerowany kod danej bazy kodów tekstu zakodowanego, czy też może jako jedyny parametr nagłówek,
* {{Code|__FUNKCJA2}} - funkcja do przetwarzania kolejno elementów, i do sterowania pętlą, aby nie zawsze ona się zatrzymywała, funkcja te parametry zwracane przez pierwszą funkcję są wsadzane jako parametry do tej funkcji, wraz z trzecią funkcją, której wynik zwracamy bezpośrednią z tej funkcji.
=== Funkcja zwracająca parametry ===
Opis funkcji zwracającej parametry, która jest potrzebna właśnie do tego.
Do tej funkcji są wykorzystywane dane zwrcócone bezpośrednio z funkcji: {{LinkŚródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}, dla trzech różnych prrzypadków nagłówków, tzn. nagłówków zapisanych w postaci szablonów, znaczników i rozdziałów równaniowych, wtedy drugi parametr tej funkcji jest prawdziwy.
==== {{Śródtytuł|ParametryNapisuWprowadzeniaTekstu}}{{Code|ParametryNapisuWprowadzeniaTekstu}} ====
Funkcja przyjmuje i przygotowuje parametry do zwrócenia.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParametryNapisuWprowadzeniaTekstu(liczba_start,liczba_koniec,spis_naglowka_stare,spis_naglowka,spis_naglowka_poziom)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - początek i koniec danego typu napisu wprowadzenia tekstu, tych typów jest wiele,
* {{Code|spis_naglowka_stare}} {{Patrz|spis_naglowka_stare}}, spis przed analizą {{LinkZobaczTeż|spis_naglowka}},
* {{Code|spis_naglowka}} {{Patrz|spis_naglowka}} - spis {{ZobaczTeż|spis_naglowka}} przeanalizowany przez funkcję: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}, a później przez: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, jeżeli parametr: {{LinkPatrz|czy_spis_tresci}}, istnieje, jest to robione poza tą funkcją, możliwe, że ta wartość nie istnieje,
* {{Code|spis_naglowka_poziom}} {{Patrz|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych, dla pozostałych nagłówków nie istnieje.
Funcja zwraca parametry napisane ogólnie według kodu dla każdego rodzaju napisu wprowadzenia tekstu:
<syntaxhighlight lang="lua">
return liczba_start,liczba_koniec,spis_naglowka,spis_naglowka_stare,spis_naglowka_poziom;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez ten obiekt dla danego rodzaju rozdziału:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - jest to powtórzenie parametrów dwóch pierwszych z parametrów tej funkcji,
* {{Code|spis_naglowka}} - ten parametr jest liczony dla nieistniejącego parametru: {{Code|czy_spis_tresci}} {{LinkPatrz|czy_spis_tresci}}, są robione podobne operacje, jak w punkcie: {{LinkZobaczTeż|spis_naglowka}}, a jeżeli ten wpomniany parametr istnieje, to to nie jest robione w tej funkcji,
* {{Code|spis_naglowka_stare}} - spis przed analizą, po którym ten parametr zamienia się w ten powyższy ostatni element, możliwe, że ten parametr nie istnieje, wtedy jest brany z: {{Code|spis_naglowka}} {{LinkPatrz|spis_naglowka}},
* {{Code|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych.
==== Dalszy opis funkcji ====
Funkcja w nagłówku zwraca parametry bezpośrednio z: {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}}, w postaci, np. dla rozdziału dodatniego równaniowego:
<syntaxhighlight lang="lua">
return ParametryNapisuWprowadzeniaTekstu(liczba_start_dodatni,liczba_koniec_dodatni,spis_naglowka_dodatni_stare,spis_naglowka_dodatni,spis_naglowka_dodatni_poziom);
</syntaxhighlight>
Dla innych typów nagłówków jest zamiast: {{Code|dodatni}}, w zmiennych w powyższym przykładzie jest: {{Code|szablon}} - dla rozdziałów szablonowych, czy {{Code|znacznik}} - znacznikowych.
Funkcja wybiera, jakiego typy nagłówków z zakresu wykrytych różnego typu, ma obsłużyć, i wtedy odpowiednio ustawia funkcję parametrów, wskazaną jak w powyższym przykładzie, względem maksymalnych, w wyszukiwaniu do tyłu, lub minimalnych, w wyszukiwanych do przodu, nagłówkach, lewych pozycji wartości uzyskanych ze wszystkich nagłówków, sprawdzając, czy to się zgadza, z którymiś pozycjami lewymi tych nagłówków trzech typów.
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
Funkcja uwzględnia nagłówki według {{LinkZobaczTeż|rozdziały}}, oprócz nagłówków równaniowych. Zawartością w nagłówkach centrowania, jest to wartość pierwszego parametru, a też w szablonie w sztucznych napisach wprowadzenia tekstu {{s|HNumer}}, jego zawartość to pierwszy jego argument, ale pomiędzy taką samą maksymalną liczbą znaków {{Code|{{=}}}} w nim, i jeszcze w jego wersji strimowanej.
; Uzyskanie elementów parametrów kodu bazy{{dk}}
* Funkcja wyszukuje pierwszego dozwolonego linku w tekście, w elemencie całkowitej zawartości: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, którym jest to wywołanie nagłówka, uzyskanego z dwóch elementów, z tablicy wielowymiarowej, czyli:
** {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}} - nagłówki szablonowe centrowania, typu: {{s|Ce}}, {{s|Centruj}} i {{s|Center}} oraz nagłówki sztucznego rozdziału, takich jak: {{s|Hnumer}},
** lub {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}} - nagłówki znacznikowe centrowania, typu: {{Tag|center}}, oraz znaczniki nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}},
*: oraz także uzykanego z drugiego numeru w postaci numeru szablonu tego poszczególnego typu w bazie kodów, więc: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}.
* Wnętrze uzyskujemy z dwóch poprzednich parametrów z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
; Wyszukiwane trzy elementy zawartości obiektu{{dk}}
* Wyszukuje on w tak uzyskanej zawartości tego elementu, linki różnego typu, tzn. {{Code|LINKW}}, {{Code|LINKZ}} i linki szablonowe, i uzyskuje z tego trzy elementy, w nim, charakteryzujące kod: {{Code|{{m|Szablonowe}}}}, bazy kodów, a także wyszukuje w nim jego dalszy tekst, w nagłówku, po którym jest do końca jego zawartości, a jeżeli je znalazł, to to zwraca, te trzy zmienne i dalszy tekst.
* A jeżeli nie znalazł takiego linku, przy pierwszym kodzie, to wyszukuje dalej w tej zawartości, aż skończą się w tym zasoby danych, a jeśli się da, to je zwraca, w tak wytłumaczonej komplecie zmiennych, lub nic nie zrzuca, żadnego kompletu żadnych zmiennych.
; Zrzucane przez funkcje parametry{{dk}}
* Tam jakiś pierwszy link musi być zakodowany bezpośrednio w takiej zawartości, aby je wykrył i zwrócił w takiej postaci, jak opisano. A jeżeli nie, to te trzy parametry zrzuci, jeżeli link jest bezpostrednio w zawartości wnętrza, a jeśli nie, to ten trzeci już nie ma wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji {{Patrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}:
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Paramtry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Opis parametrów zwracanych dokończające jego dokumentację:
* Parametry z sekcji {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, mozliwe wartości: {{Code|SZABLON}} (linku szablonowe), {{Code|LINKW}} (linki wewnętrzne)i i {{Code|LINKZ}} (linki zewnętrzne),
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Inne parametry:
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy zwracany tekst w napisie wprowadzenia tekstu, po zwracanym jako jego parametry tej funkcji, czyli dalszego tekstu.
Kod zwracanych parametrów funkcji:
<syntaxhighlight lang="lua">
return szablon,obiekt,kod,dalszy_tekst;
</syntaxhighlight>
; Wykrywane linki różnego typu{{dk}}
* Funkcja wyszukuje rozdziały, a w nich pierwsze zarejestrowane linki, którymi są zakodowane linki wewnętrzne lub zewnętrzne, lub linku szablonowe, nawet inteligentne, którego nazwy są zakatologowane w tablicach, te linki mogą być inne, niż linki standardowe inteligentne, czyli: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.linki_szablony_elementy_spisu_rzeczy={
["SpisTreści"]=true,
["Sekcja referencyjna"]=true,
["Sr"]=true,
["Link wewnętrzny"]=true,
["Ly"]=true,
["LinkOgólne"]=true,
["Lo"]=true,
}
</syntaxhighlight>
* Inne linki mogące być uzyte w rozdziałach zdefiniowane są w punkcie: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}. Jeszcze są wspomniane linki, to tzw. linki inteligentne standardowe, w przeciwieństwie do powyższych, ale nie do końca, można sprawdzić przez funkcję: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}} {{Patrz|p.PodzielNaElementyNazwowyWikiLinkInteligentny}}, czy są takie.
; Przykład wywołania fukcji {{dk}}
Przykład wywołania funkcji wraz z jego udokumentowanymi parametrami z: {{LinkPatrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}, czyli:
<syntaxhighlight lang="lua">
local szablon,obiekt,kod,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
nh4zhwuzcpa7r0kpfobfxuadu8mducz
554535
554534
2026-09-05T19:19:49Z
Persino
2851
/* {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} */
554535
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
Funkcja wyszukuje w: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, najbliższy rozdział do przodu lub od tyłu w zależności od podanego parametru: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, w zakresach od: {{Code|liczba_od}} {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Funkcja znajdująca uwzględnia, że tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, może być zakodowany w bazie kodów: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, a części jego bazy mogą być w postaci przeanalizowanej w: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja przeszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, linie rodziałów zakodowanych, a dla rozdziału dodatniego równaniowego wykorzystuje natomiast funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
Funkcja {{ZobaczTeż|rozdziały}} wyszukuje rozdziały, dodatnie równaniowe, centrowane szablonowo lub znacznikowo i nagłówkowe - poprzez szablony, czy znaczniki nagłówków.
* Rozdziały równaniowe, to są rozdziały otoczone wokół stron linii tekstu znakami {{Code|{{=}}}}, przykład: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}},
* Rozdziały, oczywiście, że dodatnie, nagłówkowe, to te: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{tag|h6}},
** Lub przez użycie szablonu: {{s|HNumer}}, do generowania sztucznego nagłówka, ta funkcja generuje powyższe nagłówki, przy pomocy zachowania zgodności z rozdziałami dodatnimi rówaniowo, nawet gdy po lewej i poprawej, liczba {{Code|{{=}}}}, jest większa niż: {{Code|6}}, co normalnie jest niedozwolone, w jego pierwszy parametrze, który symbolizuje pewien rozdział dodatni równaniowo,
* Centrowane szablonowo, oznaczone są szablonami: {{s|Ce}}, {{s|Centruj}} i {{s|Center}},
* Centrowane znacznikowo, oznaczone są znacznikami: {{Tag|center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Definicja skrótowa funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}} - tekst artykułu zakodowanego, w którym wyszukuje się pewne rozdziały, według: {{LinkZobaczTeż|rozdziały}},
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_od_tylu}} - jak w: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_spis_tresci}} {{Patrz|czy_spis_tresci}} - funkcja sprawdza, czy nagłówek spisu, jeśli istnieje, spełnia ściśle określone kryteria, jest to policzony nagłówek z funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}, z tego samego nagłówka, przed transformacją, z przechwyconego z elementu, w którym jest właśnie to,
* Parametry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
=== {{Śródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}{{Code|RozpatrywanieNapisoweWprowadzeniaTekstu}} ===
Fukcja ogólna do przeszukiwania kolejnych elementów według wzoru i wskazywania ich pozycji początkowej, czy końcowej, i elementów przechwytywanych.
Funkcja została skonstrułowana, by wyszukiwała kolejne rozdziały różnych typów, tzn.: {{Code|SZABLON}}, {{Code|ZNACZNIK}} i trzeciego nieokreślonej żadnym kodem, w postaci trzech konstrukcji szczególnych wykorzystujących tą funkcję, w ogólnej funkcji, aby uzyskać pewne zmienne, by później je wykorzystać w funkcji {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}} do zwracania danych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozpatrywanieNapisoweWprowadzeniaTekstu(wzor,czy_rozdzial_rownaniowy_dodatni,__FUNKCJA1,__FUNKCJA2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzor}} - wzór dla tekstu, który przeszukujemy,
* {{Code|czy_rozdzial_rownaniowy_dodatni}} - czy to jest rozdział dadatni równaniowy, wtedy ona przyjmuje wartość prawdziwą, w przeciwnym wypadku fałszywą, wtedy mamy, to dla nagłówków zapisanych w postaci kodów, jak rozdziały centrowania szablonowe i znacznikowe, sztuczne nagłówki napisu wprowadzenia tekstu, czy znaczniki nagłówków,
* {{Code|__FUNKCJA1}} - funkcja do uzyskiwania danych z przechwytywanego ciągu wsadzanych jako parametr, i zwracania ich w postaci, co najwyżej dwóh kolejnych elementów, np. szablon i znumerowany kod danej bazy kodów tekstu zakodowanego, czy też może jako jedyny parametr nagłówek,
* {{Code|__FUNKCJA2}} - funkcja do przetwarzania kolejno elementów, i do sterowania pętlą, aby nie zawsze ona się zatrzymywała, funkcja te parametry zwracane przez pierwszą funkcję są wsadzane jako parametry do tej funkcji, wraz z trzecią funkcją, której wynik zwracamy bezpośrednią z tej funkcji.
=== Funkcja zwracająca parametry ===
Opis funkcji zwracającej parametry, która jest potrzebna właśnie do tego.
Do tej funkcji są wykorzystywane dane zwrcócone bezpośrednio z funkcji: {{LinkŚródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}, dla trzech różnych prrzypadków nagłówków, tzn. nagłówków zapisanych w postaci szablonów, znaczników i rozdziałów równaniowych, wtedy drugi parametr tej funkcji jest prawdziwy.
==== {{Śródtytuł|ParametryNapisuWprowadzeniaTekstu}}{{Code|ParametryNapisuWprowadzeniaTekstu}} ====
Funkcja przyjmuje i przygotowuje parametry do zwrócenia.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParametryNapisuWprowadzeniaTekstu(liczba_start,liczba_koniec,spis_naglowka_stare,spis_naglowka,spis_naglowka_poziom)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - początek i koniec danego typu napisu wprowadzenia tekstu, tych typów jest wiele,
* {{Code|spis_naglowka_stare}} {{Patrz|spis_naglowka_stare}}, spis przed analizą {{LinkZobaczTeż|spis_naglowka}},
* {{Code|spis_naglowka}} {{Patrz|spis_naglowka}} - spis {{ZobaczTeż|spis_naglowka}} przeanalizowany przez funkcję: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}, a później przez: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, jeżeli parametr: {{LinkPatrz|czy_spis_tresci}}, istnieje, jest to robione poza tą funkcją, możliwe, że ta wartość nie istnieje,
* {{Code|spis_naglowka_poziom}} {{Patrz|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych, dla pozostałych nagłówków nie istnieje.
Funcja zwraca parametry napisane ogólnie według kodu dla każdego rodzaju napisu wprowadzenia tekstu:
<syntaxhighlight lang="lua">
return liczba_start,liczba_koniec,spis_naglowka,spis_naglowka_stare,spis_naglowka_poziom;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez ten obiekt dla danego rodzaju rozdziału:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - jest to powtórzenie parametrów dwóch pierwszych z parametrów tej funkcji,
* {{Code|spis_naglowka}} - ten parametr jest liczony dla nieistniejącego parametru: {{Code|czy_spis_tresci}} {{LinkPatrz|czy_spis_tresci}}, są robione podobne operacje, jak w punkcie: {{LinkZobaczTeż|spis_naglowka}}, a jeżeli ten wpomniany parametr istnieje, to to nie jest robione w tej funkcji,
* {{Code|spis_naglowka_stare}} - spis przed analizą, po którym ten parametr zamienia się w ten powyższy ostatni element, możliwe, że ten parametr nie istnieje, wtedy jest brany z: {{Code|spis_naglowka}} {{LinkPatrz|spis_naglowka}},
* {{Code|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych.
==== Dalszy opis funkcji ====
Funkcja w nagłówku zwraca parametry bezpośrednio z: {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}}, w postaci, np. dla rozdziału dodatniego równaniowego:
<syntaxhighlight lang="lua">
return ParametryNapisuWprowadzeniaTekstu(liczba_start_dodatni,liczba_koniec_dodatni,spis_naglowka_dodatni_stare,spis_naglowka_dodatni,spis_naglowka_dodatni_poziom);
</syntaxhighlight>
Dla innych typów nagłówków jest zamiast: {{Code|dodatni}}, w zmiennych w powyższym przykładzie jest: {{Code|szablon}} - dla rozdziałów szablonowych, czy {{Code|znacznik}} - znacznikowych.
Funkcja wybiera, jakiego typy nagłówków z zakresu wykrytych różnego typu, ma obsłużyć, i wtedy odpowiednio ustawia funkcję parametrów, wskazaną jak w powyższym przykładzie, względem maksymalnych, w wyszukiwaniu do tyłu, lub minimalnych, w wyszukiwanych do przodu, nagłówkach, lewych pozycji wartości uzyskanych ze wszystkich nagłówków, sprawdzając, czy to się zgadza, z którymiś pozycjami lewymi tych nagłówków trzech typów.
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
Funkcja uwzględnia nagłówki według {{LinkZobaczTeż|rozdziały}}, oprócz nagłówków równaniowych. Zawartością w nagłówkach centrowania, jest to wartość pierwszego parametru, a też w szablonie w sztucznych napisach wprowadzenia tekstu {{s|HNumer}}, jego zawartość to pierwszy jego argument, ale pomiędzy taką samą maksymalną liczbą znaków {{Code|{{=}}}} w nim, i jeszcze w jego wersji strimowanej.
; Uzyskanie elementów parametrów kodu bazy{{dk}}
* Funkcja wyszukuje pierwszego dozwolonego linku w tekście, w elemencie całkowitej zawartości: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, którym jest to wywołanie nagłówka, uzyskanego z dwóch elementów, z tablicy wielowymiarowej, czyli:
** {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}} - nagłówki szablonowe centrowania, typu: {{s|Ce}}, {{s|Centruj}} i {{s|Center}} oraz nagłówki sztucznego rozdziału, takich jak: {{s|Hnumer}},
** lub {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}} - nagłówki znacznikowe centrowania, typu: {{Tag|center}}, oraz znaczniki nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}},
*: oraz także uzykanego z drugiego numeru w postaci numeru szablonu tego poszczególnego typu w bazie kodów, więc: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}.
* Wnętrze uzyskujemy z dwóch poprzednich parametrów z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
; Wyszukiwane trzy elementy zawartości obiektu{{dk}}
* Wyszukuje on w tak uzyskanej zawartości tego elementu, linki różnego typu, tzn. {{Code|LINKW}}, {{Code|LINKZ}} i linki szablonowe, i uzyskuje z tego trzy elementy, w nim, charakteryzujące kod: {{Code|{{m|Szablonowe}}}}, bazy kodów, a także wyszukuje w nim jego dalszy tekst, w nagłówku, po którym jest do końca jego zawartości, a jeżeli je znalazł, to to zwraca, te trzy zmienne i dalszy tekst.
* A jeżeli nie znalazł takiego linku, przy pierwszym kodzie, to wyszukuje dalej w tej zawartości, aż skończą się w tym zasoby danych, a jeśli się da, to je zwraca, w tak wytłumaczonej komplecie zmiennych, lub nic nie zrzuca, żadnego kompletu żadnych zmiennych.
; Zrzucane przez funkcje parametry{{dk}}
* Tam jakiś pierwszy link musi być zakodowany bezpośrednio w takiej zawartości, aby je wykrył i zwrócił w takiej postaci, jak opisano. A jeżeli nie, to te trzy parametry zrzuci, jeżeli link jest bezpostrednio w zawartości wnętrza, a jeśli nie, to ten trzeci już nie ma wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji {{Patrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}:
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Paramtry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Opis parametrów zwracanych dokończające jego dokumentację:
* Parametry z sekcji {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, mozliwe wartości: {{Code|SZABLON}} (linku szablonowe), {{Code|LINKW}} (linki wewnętrzne)i i {{Code|LINKZ}} (linki zewnętrzne),
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Inne parametry:
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy zwracany tekst w napisie wprowadzenia tekstu, po zwracanym jako jego parametry tej funkcji, czyli dalszego tekstu.
Kod zwracanych parametrów funkcji:
<syntaxhighlight lang="lua">
return szablon,obiekt,kod,dalszy_tekst;
</syntaxhighlight>
; Wykrywane linki różnego typu{{dk}}
* Funkcja wyszukuje rozdziały, a w nich pierwsze zarejestrowane linki, którymi są zakodowane linki wewnętrzne lub zewnętrzne, lub linku szablonowe, nawet inteligentne, którego nazwy są zakatologowane w tablicach, te linki mogą być inne, niż linki standardowe inteligentne, czyli: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.linki_szablony_elementy_spisu_rzeczy={
["SpisTreści"]=true,
["Sekcja referencyjna"]=true,
["Sr"]=true,
["Link wewnętrzny"]=true,
["Ly"]=true,
["LinkOgólne"]=true,
["Lo"]=true,
}
</syntaxhighlight>
* Inne linki mogące być uzyte w rozdziałach zdefiniowane są w punkcie: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}. Jeszcze są wspomniane linki, to tzw. linki inteligentne standardowe, w przeciwieństwie do powyższych, ale nie do końca, można sprawdzić przez funkcję: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}} {{Patrz|p.PodzielNaElementyNazwowyWikiLinkInteligentny}}, czy są takie.
; Przykład wywołania fukcji {{dk}}
Przykład wywołania funkcji wraz z jego udokumentowanymi parametrami z: {{LinkPatrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}, czyli:
<syntaxhighlight lang="lua">
local szablon,obiekt,kod,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
lf5ehhep8gkfvrwml8tfqn18eel4qks
554536
554535
2026-09-05T19:29:57Z
Persino
2851
/* {{Śródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}{{Code|RozpatrywanieNapisoweWprowadzeniaTekstu}} */
554536
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
Funkcja wyszukuje w: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, najbliższy rozdział do przodu lub od tyłu w zależności od podanego parametru: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, w zakresach od: {{Code|liczba_od}} {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Funkcja znajdująca uwzględnia, że tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, może być zakodowany w bazie kodów: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, a części jego bazy mogą być w postaci przeanalizowanej w: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja przeszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, linie rodziałów zakodowanych, a dla rozdziału dodatniego równaniowego wykorzystuje natomiast funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
Funkcja {{ZobaczTeż|rozdziały}} wyszukuje rozdziały, dodatnie równaniowe, centrowane szablonowo lub znacznikowo i nagłówkowe - poprzez szablony, czy znaczniki nagłówków.
* Rozdziały równaniowe, to są rozdziały otoczone wokół stron linii tekstu znakami {{Code|{{=}}}}, przykład: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}},
* Rozdziały, oczywiście, że dodatnie, nagłówkowe, to te: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{tag|h6}},
** Lub przez użycie szablonu: {{s|HNumer}}, do generowania sztucznego nagłówka, ta funkcja generuje powyższe nagłówki, przy pomocy zachowania zgodności z rozdziałami dodatnimi rówaniowo, nawet gdy po lewej i poprawej, liczba {{Code|{{=}}}}, jest większa niż: {{Code|6}}, co normalnie jest niedozwolone, w jego pierwszy parametrze, który symbolizuje pewien rozdział dodatni równaniowo,
* Centrowane szablonowo, oznaczone są szablonami: {{s|Ce}}, {{s|Centruj}} i {{s|Center}},
* Centrowane znacznikowo, oznaczone są znacznikami: {{Tag|center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Definicja skrótowa funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}} - tekst artykułu zakodowanego, w którym wyszukuje się pewne rozdziały, według: {{LinkZobaczTeż|rozdziały}},
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_od_tylu}} - jak w: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_spis_tresci}} {{Patrz|czy_spis_tresci}} - funkcja sprawdza, czy nagłówek spisu, jeśli istnieje, spełnia ściśle określone kryteria, jest to policzony nagłówek z funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}, z tego samego nagłówka, przed transformacją, z przechwyconego z elementu, w którym jest właśnie to,
* Parametry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
=== {{Śródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}{{Code|RozpatrywanieNapisoweWprowadzeniaTekstu}} ===
Fukcja ogólna do przeszukiwania kolejnych elementów według wzoru i wskazywania ich pozycji początkowej, czy końcowej, i elementów przechwytywanych.
Funkcja została skonstrułowana, by wyszukiwała kolejne rozdziały różnych typów, tzn.: {{Code|SZABLON}}, {{Code|ZNACZNIK}} i trzeciego nieokreślonej żadnym kodem, w postaci trzech konstrukcji szczególnych wykorzystujących tę ogólną funkcję, aby uzyskać pewne zmienne, by później je wykorzystać w: {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}}, do zwracania danych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozpatrywanieNapisoweWprowadzeniaTekstu(wzor,czy_rozdzial_rownaniowy_dodatni,__FUNKCJA1,__FUNKCJA2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzor}} - wzór dla tekstu, który przeszukujemy,
* {{Code|czy_rozdzial_rownaniowy_dodatni}} - czy to jest rozdział dadatni równaniowy, wtedy ona przyjmuje wartość prawdziwą, w przeciwnym wypadku fałszywą, wtedy mamy, to dla nagłówków zapisanych w postaci kodów, jak rozdziały centrowania szablonowe i znacznikowe, sztuczne nagłówki napisu wprowadzenia tekstu, czy znaczniki nagłówków,
* {{Code|__FUNKCJA1}} - funkcja do uzyskiwania danych z przechwytywanego ciągu wsadzanych jako parametr, i zwracania ich w postaci, co najwyżej dwóh kolejnych elementów, np. szablon i znumerowany kod danej bazy kodów tekstu zakodowanego, czy też może jako jedyny parametr nagłówek,
* {{Code|__FUNKCJA2}} - funkcja do przetwarzania kolejno elementów, i do sterowania pętlą, aby nie zawsze ona się zatrzymywała, te parametry zwracane przez pierwszą funkcję są wsadzane jako parametry do tej funkcji, wraz z trzecim parametrem, funkcją, której wynik zwracamy bezpośrednią z tej funkcji.
=== Funkcja zwracająca parametry ===
Opis funkcji zwracającej parametry, która jest potrzebna właśnie do tego.
Do tej funkcji są wykorzystywane dane zwrcócone bezpośrednio z funkcji: {{LinkŚródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}, dla trzech różnych prrzypadków nagłówków, tzn. nagłówków zapisanych w postaci szablonów, znaczników i rozdziałów równaniowych, wtedy drugi parametr tej funkcji jest prawdziwy.
==== {{Śródtytuł|ParametryNapisuWprowadzeniaTekstu}}{{Code|ParametryNapisuWprowadzeniaTekstu}} ====
Funkcja przyjmuje i przygotowuje parametry do zwrócenia.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParametryNapisuWprowadzeniaTekstu(liczba_start,liczba_koniec,spis_naglowka_stare,spis_naglowka,spis_naglowka_poziom)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - początek i koniec danego typu napisu wprowadzenia tekstu, tych typów jest wiele,
* {{Code|spis_naglowka_stare}} {{Patrz|spis_naglowka_stare}}, spis przed analizą {{LinkZobaczTeż|spis_naglowka}},
* {{Code|spis_naglowka}} {{Patrz|spis_naglowka}} - spis {{ZobaczTeż|spis_naglowka}} przeanalizowany przez funkcję: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}, a później przez: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, jeżeli parametr: {{LinkPatrz|czy_spis_tresci}}, istnieje, jest to robione poza tą funkcją, możliwe, że ta wartość nie istnieje,
* {{Code|spis_naglowka_poziom}} {{Patrz|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych, dla pozostałych nagłówków nie istnieje.
Funcja zwraca parametry napisane ogólnie według kodu dla każdego rodzaju napisu wprowadzenia tekstu:
<syntaxhighlight lang="lua">
return liczba_start,liczba_koniec,spis_naglowka,spis_naglowka_stare,spis_naglowka_poziom;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez ten obiekt dla danego rodzaju rozdziału:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - jest to powtórzenie parametrów dwóch pierwszych z parametrów tej funkcji,
* {{Code|spis_naglowka}} - ten parametr jest liczony dla nieistniejącego parametru: {{Code|czy_spis_tresci}} {{LinkPatrz|czy_spis_tresci}}, są robione podobne operacje, jak w punkcie: {{LinkZobaczTeż|spis_naglowka}}, a jeżeli ten wpomniany parametr istnieje, to to nie jest robione w tej funkcji,
* {{Code|spis_naglowka_stare}} - spis przed analizą, po którym ten parametr zamienia się w ten powyższy ostatni element, możliwe, że ten parametr nie istnieje, wtedy jest brany z: {{Code|spis_naglowka}} {{LinkPatrz|spis_naglowka}},
* {{Code|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych.
==== Dalszy opis funkcji ====
Funkcja w nagłówku zwraca parametry bezpośrednio z: {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}}, w postaci, np. dla rozdziału dodatniego równaniowego:
<syntaxhighlight lang="lua">
return ParametryNapisuWprowadzeniaTekstu(liczba_start_dodatni,liczba_koniec_dodatni,spis_naglowka_dodatni_stare,spis_naglowka_dodatni,spis_naglowka_dodatni_poziom);
</syntaxhighlight>
Dla innych typów nagłówków jest zamiast: {{Code|dodatni}}, w zmiennych w powyższym przykładzie jest: {{Code|szablon}} - dla rozdziałów szablonowych, czy {{Code|znacznik}} - znacznikowych.
Funkcja wybiera, jakiego typy nagłówków z zakresu wykrytych różnego typu, ma obsłużyć, i wtedy odpowiednio ustawia funkcję parametrów, wskazaną jak w powyższym przykładzie, względem maksymalnych, w wyszukiwaniu do tyłu, lub minimalnych, w wyszukiwanych do przodu, nagłówkach, lewych pozycji wartości uzyskanych ze wszystkich nagłówków, sprawdzając, czy to się zgadza, z którymiś pozycjami lewymi tych nagłówków trzech typów.
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
Funkcja uwzględnia nagłówki według {{LinkZobaczTeż|rozdziały}}, oprócz nagłówków równaniowych. Zawartością w nagłówkach centrowania, jest to wartość pierwszego parametru, a też w szablonie w sztucznych napisach wprowadzenia tekstu {{s|HNumer}}, jego zawartość to pierwszy jego argument, ale pomiędzy taką samą maksymalną liczbą znaków {{Code|{{=}}}} w nim, i jeszcze w jego wersji strimowanej.
; Uzyskanie elementów parametrów kodu bazy{{dk}}
* Funkcja wyszukuje pierwszego dozwolonego linku w tekście, w elemencie całkowitej zawartości: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, którym jest to wywołanie nagłówka, uzyskanego z dwóch elementów, z tablicy wielowymiarowej, czyli:
** {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}} - nagłówki szablonowe centrowania, typu: {{s|Ce}}, {{s|Centruj}} i {{s|Center}} oraz nagłówki sztucznego rozdziału, takich jak: {{s|Hnumer}},
** lub {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}} - nagłówki znacznikowe centrowania, typu: {{Tag|center}}, oraz znaczniki nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}},
*: oraz także uzykanego z drugiego numeru w postaci numeru szablonu tego poszczególnego typu w bazie kodów, więc: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}.
* Wnętrze uzyskujemy z dwóch poprzednich parametrów z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
; Wyszukiwane trzy elementy zawartości obiektu{{dk}}
* Wyszukuje on w tak uzyskanej zawartości tego elementu, linki różnego typu, tzn. {{Code|LINKW}}, {{Code|LINKZ}} i linki szablonowe, i uzyskuje z tego trzy elementy, w nim, charakteryzujące kod: {{Code|{{m|Szablonowe}}}}, bazy kodów, a także wyszukuje w nim jego dalszy tekst, w nagłówku, po którym jest do końca jego zawartości, a jeżeli je znalazł, to to zwraca, te trzy zmienne i dalszy tekst.
* A jeżeli nie znalazł takiego linku, przy pierwszym kodzie, to wyszukuje dalej w tej zawartości, aż skończą się w tym zasoby danych, a jeśli się da, to je zwraca, w tak wytłumaczonej komplecie zmiennych, lub nic nie zrzuca, żadnego kompletu żadnych zmiennych.
; Zrzucane przez funkcje parametry{{dk}}
* Tam jakiś pierwszy link musi być zakodowany bezpośrednio w takiej zawartości, aby je wykrył i zwrócił w takiej postaci, jak opisano. A jeżeli nie, to te trzy parametry zrzuci, jeżeli link jest bezpostrednio w zawartości wnętrza, a jeśli nie, to ten trzeci już nie ma wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji {{Patrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}:
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Paramtry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Opis parametrów zwracanych dokończające jego dokumentację:
* Parametry z sekcji {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, mozliwe wartości: {{Code|SZABLON}} (linku szablonowe), {{Code|LINKW}} (linki wewnętrzne)i i {{Code|LINKZ}} (linki zewnętrzne),
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Inne parametry:
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy zwracany tekst w napisie wprowadzenia tekstu, po zwracanym jako jego parametry tej funkcji, czyli dalszego tekstu.
Kod zwracanych parametrów funkcji:
<syntaxhighlight lang="lua">
return szablon,obiekt,kod,dalszy_tekst;
</syntaxhighlight>
; Wykrywane linki różnego typu{{dk}}
* Funkcja wyszukuje rozdziały, a w nich pierwsze zarejestrowane linki, którymi są zakodowane linki wewnętrzne lub zewnętrzne, lub linku szablonowe, nawet inteligentne, którego nazwy są zakatologowane w tablicach, te linki mogą być inne, niż linki standardowe inteligentne, czyli: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.linki_szablony_elementy_spisu_rzeczy={
["SpisTreści"]=true,
["Sekcja referencyjna"]=true,
["Sr"]=true,
["Link wewnętrzny"]=true,
["Ly"]=true,
["LinkOgólne"]=true,
["Lo"]=true,
}
</syntaxhighlight>
* Inne linki mogące być uzyte w rozdziałach zdefiniowane są w punkcie: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}. Jeszcze są wspomniane linki, to tzw. linki inteligentne standardowe, w przeciwieństwie do powyższych, ale nie do końca, można sprawdzić przez funkcję: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}} {{Patrz|p.PodzielNaElementyNazwowyWikiLinkInteligentny}}, czy są takie.
; Przykład wywołania fukcji {{dk}}
Przykład wywołania funkcji wraz z jego udokumentowanymi parametrami z: {{LinkPatrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}, czyli:
<syntaxhighlight lang="lua">
local szablon,obiekt,kod,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
eu2c9ffn9h2om729771z52y0s803vba
554537
554536
2026-09-05T19:30:46Z
Persino
2851
/* {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} */
554537
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
Funkcja wyszukuje w: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, najbliższy rozdział do przodu lub od tyłu w zależności od podanego parametru: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, w zakresach od: {{Code|liczba_od}} {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Funkcja znajdująca uwzględnia, że tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, może być zakodowany w bazie kodów: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, a części jego bazy mogą być w postaci przeanalizowanej w: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja przeszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, linie rodziałów zakodowanych, a dla rozdziału dodatniego równaniowego wykorzystuje natomiast funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
Funkcja {{ZobaczTeż|rozdziały}} wyszukuje rozdziały, dodatnie równaniowe, centrowane szablonowo lub znacznikowo i nagłówkowe - poprzez szablony, czy znaczniki nagłówków.
* Rozdziały równaniowe, to są rozdziały otoczone wokół stron linii tekstu znakami {{Code|{{=}}}}, przykład: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}},
* Rozdziały, oczywiście, że dodatnie, nagłówkowe, to te: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{tag|h6}},
** Lub przez użycie szablonu: {{s|HNumer}}, do generowania sztucznego nagłówka, ta funkcja generuje powyższe nagłówki, przy pomocy zachowania zgodności z rozdziałami dodatnimi rówaniowo, nawet gdy po lewej i poprawej, liczba {{Code|{{=}}}}, jest większa niż: {{Code|6}}, co normalnie jest niedozwolone, w jego pierwszy parametrze, który symbolizuje pewien rozdział dodatni równaniowo,
* Centrowane szablonowo, oznaczone są szablonami: {{s|Ce}}, {{s|Centruj}} i {{s|Center}},
* Centrowane znacznikowo, oznaczone są znacznikami: {{Tag|center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Definicja skrótowa funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}} - tekst artykułu zakodowanego, w którym wyszukuje się pewne rozdziały, według: {{LinkZobaczTeż|rozdziały}},
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_od_tylu}} - jak w: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_spis_tresci}} {{Patrz|czy_spis_tresci}} - funkcja sprawdza, czy nagłówek spisu, jeśli istnieje, spełnia ściśle określone kryteria, jest to policzony nagłówek z funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}, z tego samego nagłówka, przed transformacją, z przechwyconego z elementu, w którym jest właśnie to,
* Parametry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
=== {{Śródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}{{Code|RozpatrywanieNapisoweWprowadzeniaTekstu}} ===
Fukcja ogólna do przeszukiwania kolejnych elementów według wzoru i wskazywania ich pozycji początkowej, czy końcowej, i elementów przechwytywanych.
Funkcja została skonstrułowana, by wyszukiwała kolejne rozdziały różnych typów, tzn.: {{Code|SZABLON}}, {{Code|ZNACZNIK}} i trzeciego nieokreślonej żadnym kodem, w postaci trzech konstrukcji szczególnych wykorzystujących tę ogólną funkcję, aby uzyskać pewne zmienne, by później je wykorzystać w: {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}}, do zwracania danych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozpatrywanieNapisoweWprowadzeniaTekstu(wzor,czy_rozdzial_rownaniowy_dodatni,__FUNKCJA1,__FUNKCJA2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzor}} - wzór dla tekstu, który przeszukujemy,
* {{Code|czy_rozdzial_rownaniowy_dodatni}} - czy to jest rozdział dadatni równaniowy, wtedy ona przyjmuje wartość prawdziwą, w przeciwnym wypadku fałszywą, wtedy mamy, to dla nagłówków zapisanych w postaci kodów, jak rozdziały centrowania szablonowe i znacznikowe, sztuczne nagłówki napisu wprowadzenia tekstu, czy znaczniki nagłówków,
* {{Code|__FUNKCJA1}} - funkcja do uzyskiwania danych z przechwytywanego ciągu wsadzanych jako parametr, i zwracania ich w postaci, co najwyżej dwóh kolejnych elementów, np. szablon i znumerowany kod danej bazy kodów tekstu zakodowanego, czy też może jako jedyny parametr nagłówek,
* {{Code|__FUNKCJA2}} - funkcja do przetwarzania kolejno elementów, i do sterowania pętlą, aby nie zawsze ona się zatrzymywała, te parametry zwracane przez pierwszą funkcję są wsadzane jako parametry do tej funkcji, wraz z trzecim parametrem, funkcją, której wynik zwracamy bezpośrednią z tej funkcji.
=== Funkcja zwracająca parametry ===
Opis funkcji zwracającej parametry, która jest potrzebna właśnie do tego.
Do tej funkcji są wykorzystywane dane zwrcócone bezpośrednio z funkcji: {{LinkŚródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}, dla trzech różnych prrzypadków nagłówków, tzn. nagłówków zapisanych w postaci szablonów, znaczników i rozdziałów równaniowych, wtedy drugi parametr tej funkcji jest prawdziwy.
==== {{Śródtytuł|ParametryNapisuWprowadzeniaTekstu}}{{Code|ParametryNapisuWprowadzeniaTekstu}} ====
Funkcja przyjmuje i przygotowuje parametry do zwrócenia.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParametryNapisuWprowadzeniaTekstu(liczba_start,liczba_koniec,spis_naglowka_stare,spis_naglowka,spis_naglowka_poziom)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - początek i koniec danego typu napisu wprowadzenia tekstu, tych typów jest wiele,
* {{Code|spis_naglowka_stare}} {{Patrz|spis_naglowka_stare}}, spis przed analizą {{LinkZobaczTeż|spis_naglowka}},
* {{Code|spis_naglowka}} {{Patrz|spis_naglowka}} - spis {{ZobaczTeż|spis_naglowka}} przeanalizowany przez funkcję: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}, a później przez: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, jeżeli parametr: {{LinkPatrz|czy_spis_tresci}}, istnieje, jest to robione poza tą funkcją, możliwe, że ta wartość nie istnieje,
* {{Code|spis_naglowka_poziom}} {{Patrz|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych, dla pozostałych nagłówków nie istnieje.
Funcja zwraca parametry napisane ogólnie według kodu dla każdego rodzaju napisu wprowadzenia tekstu:
<syntaxhighlight lang="lua">
return liczba_start,liczba_koniec,spis_naglowka,spis_naglowka_stare,spis_naglowka_poziom;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez ten obiekt dla danego rodzaju rozdziału:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - jest to powtórzenie parametrów dwóch pierwszych z parametrów tej funkcji,
* {{Code|spis_naglowka}} - ten parametr jest liczony dla nieistniejącego parametru: {{Code|czy_spis_tresci}} {{LinkPatrz|czy_spis_tresci}}, są robione podobne operacje, jak w punkcie: {{LinkZobaczTeż|spis_naglowka}}, a jeżeli ten wpomniany parametr istnieje, to to nie jest robione w tej funkcji,
* {{Code|spis_naglowka_stare}} - spis przed analizą, po którym ten parametr zamienia się w ten powyższy ostatni element, możliwe, że ten parametr nie istnieje, wtedy jest brany z: {{Code|spis_naglowka}} {{LinkPatrz|spis_naglowka}},
* {{Code|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych.
==== Dalszy opis funkcji ====
Funkcja w nagłówku zwraca parametry bezpośrednio z: {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}}, w postaci, np. dla rozdziału dodatniego równaniowego:
<syntaxhighlight lang="lua">
return ParametryNapisuWprowadzeniaTekstu(liczba_start_dodatni,liczba_koniec_dodatni,spis_naglowka_dodatni_stare,spis_naglowka_dodatni,spis_naglowka_dodatni_poziom);
</syntaxhighlight>
Dla innych typów nagłówków jest zamiast: {{Code|dodatni}}, w zmiennych w powyższym przykładzie jest: {{Code|szablon}} - dla rozdziałów szablonowych, czy {{Code|znacznik}} - znacznikowych.
Funkcja wybiera, jakiego typy nagłówków z zakresu wykrytych różnego typu, ma obsłużyć, i wtedy odpowiednio ustawia funkcję parametrów, wskazaną jak w powyższym przykładzie, względem maksymalnych, w wyszukiwaniu do tyłu, lub minimalnych, w wyszukiwanych do przodu, nagłówkach, lewych pozycji wartości uzyskanych ze wszystkich nagłówków, sprawdzając, czy to się zgadza, z którymiś pozycjami lewymi tych nagłówków trzech typów.
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
Funkcja uwzględnia nagłówki według {{LinkZobaczTeż|rozdziały}}, oprócz nagłówków równaniowych. Zawartością w nagłówkach centrowania, jest to wartość pierwszego parametru, a też w szablonie w sztucznych napisach wprowadzenia tekstu {{s|HNumer}}, jego zawartość to pierwszy jego argument, ale pomiędzy taką samą maksymalną liczbą znaków {{Code|{{=}}}} w nim, i jeszcze w jego wersji strimowanej.
; Uzyskanie elementów parametrów kodu bazy{{dk}}
* Funkcja wyszukuje pierwszego dozwolonego linku w tekście, w elemencie całkowitej zawartości: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, którym jest to wywołanie nagłówka, uzyskanego z dwóch elementów, z tablicy wielowymiarowej, czyli:
** {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}} - nagłówki szablonowe centrowania, typu: {{s|Ce}}, {{s|Centruj}} i {{s|Center}} oraz nagłówki sztucznego rozdziału, takich jak: {{s|HNumer}},
** lub {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}} - nagłówki znacznikowe centrowania, typu: {{Tag|center}}, oraz znaczniki nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}},
*: oraz także uzykanego z drugiego numeru w postaci numeru szablonu tego poszczególnego typu w bazie kodów, więc: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}.
* Wnętrze uzyskujemy z dwóch poprzednich parametrów z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
; Wyszukiwane trzy elementy zawartości obiektu{{dk}}
* Wyszukuje on w tak uzyskanej zawartości tego elementu, linki różnego typu, tzn. {{Code|LINKW}}, {{Code|LINKZ}} i linki szablonowe, i uzyskuje z tego trzy elementy, w nim, charakteryzujące kod: {{Code|{{m|Szablonowe}}}}, bazy kodów, a także wyszukuje w nim jego dalszy tekst, w nagłówku, po którym jest do końca jego zawartości, a jeżeli je znalazł, to to zwraca, te trzy zmienne i dalszy tekst.
* A jeżeli nie znalazł takiego linku, przy pierwszym kodzie, to wyszukuje dalej w tej zawartości, aż skończą się w tym zasoby danych, a jeśli się da, to je zwraca, w tak wytłumaczonej komplecie zmiennych, lub nic nie zrzuca, żadnego kompletu żadnych zmiennych.
; Zrzucane przez funkcje parametry{{dk}}
* Tam jakiś pierwszy link musi być zakodowany bezpośrednio w takiej zawartości, aby je wykrył i zwrócił w takiej postaci, jak opisano. A jeżeli nie, to te trzy parametry zrzuci, jeżeli link jest bezpostrednio w zawartości wnętrza, a jeśli nie, to ten trzeci już nie ma wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji {{Patrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}:
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Paramtry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Opis parametrów zwracanych dokończające jego dokumentację:
* Parametry z sekcji {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, mozliwe wartości: {{Code|SZABLON}} (linku szablonowe), {{Code|LINKW}} (linki wewnętrzne)i i {{Code|LINKZ}} (linki zewnętrzne),
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Inne parametry:
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy zwracany tekst w napisie wprowadzenia tekstu, po zwracanym jako jego parametry tej funkcji, czyli dalszego tekstu.
Kod zwracanych parametrów funkcji:
<syntaxhighlight lang="lua">
return szablon,obiekt,kod,dalszy_tekst;
</syntaxhighlight>
; Wykrywane linki różnego typu{{dk}}
* Funkcja wyszukuje rozdziały, a w nich pierwsze zarejestrowane linki, którymi są zakodowane linki wewnętrzne lub zewnętrzne, lub linku szablonowe, nawet inteligentne, którego nazwy są zakatologowane w tablicach, te linki mogą być inne, niż linki standardowe inteligentne, czyli: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.linki_szablony_elementy_spisu_rzeczy={
["SpisTreści"]=true,
["Sekcja referencyjna"]=true,
["Sr"]=true,
["Link wewnętrzny"]=true,
["Ly"]=true,
["LinkOgólne"]=true,
["Lo"]=true,
}
</syntaxhighlight>
* Inne linki mogące być uzyte w rozdziałach zdefiniowane są w punkcie: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}. Jeszcze są wspomniane linki, to tzw. linki inteligentne standardowe, w przeciwieństwie do powyższych, ale nie do końca, można sprawdzić przez funkcję: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}} {{Patrz|p.PodzielNaElementyNazwowyWikiLinkInteligentny}}, czy są takie.
; Przykład wywołania fukcji {{dk}}
Przykład wywołania funkcji wraz z jego udokumentowanymi parametrami z: {{LinkPatrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}, czyli:
<syntaxhighlight lang="lua">
local szablon,obiekt,kod,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
g5idtkzeyq6a78yxr1ydbkmwihewloh
554538
554537
2026-09-05T19:33:28Z
Persino
2851
/* {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} */
554538
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
Funkcja wyszukuje w: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, najbliższy rozdział do przodu lub od tyłu w zależności od podanego parametru: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, w zakresach od: {{Code|liczba_od}} {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Funkcja znajdująca uwzględnia, że tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, może być zakodowany w bazie kodów: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, a części jego bazy mogą być w postaci przeanalizowanej w: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja przeszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, linie rodziałów zakodowanych, a dla rozdziału dodatniego równaniowego wykorzystuje natomiast funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
Funkcja {{ZobaczTeż|rozdziały}} wyszukuje rozdziały, dodatnie równaniowe, centrowane szablonowo lub znacznikowo i nagłówkowe - poprzez szablony, czy znaczniki nagłówków.
* Rozdziały równaniowe, to są rozdziały otoczone wokół stron linii tekstu znakami {{Code|{{=}}}}, przykład: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}},
* Rozdziały, oczywiście, że dodatnie, nagłówkowe, to te: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{tag|h6}},
** Lub przez użycie szablonu: {{s|HNumer}}, do generowania sztucznego nagłówka, ta funkcja generuje powyższe nagłówki, przy pomocy zachowania zgodności z rozdziałami dodatnimi rówaniowo, nawet gdy po lewej i poprawej, liczba {{Code|{{=}}}}, jest większa niż: {{Code|6}}, co normalnie jest niedozwolone, w jego pierwszy parametrze, który symbolizuje pewien rozdział dodatni równaniowo,
* Centrowane szablonowo, oznaczone są szablonami: {{s|Ce}}, {{s|Centruj}} i {{s|Center}},
* Centrowane znacznikowo, oznaczone są znacznikami: {{Tag|center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Definicja skrótowa funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}} - tekst artykułu zakodowanego, w którym wyszukuje się pewne rozdziały, według: {{LinkZobaczTeż|rozdziały}},
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_od_tylu}} - jak w: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_spis_tresci}} {{Patrz|czy_spis_tresci}} - funkcja sprawdza, czy nagłówek spisu, jeśli istnieje, spełnia ściśle określone kryteria, jest to policzony nagłówek z funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}, z tego samego nagłówka, przed transformacją, z przechwyconego z elementu, w którym jest właśnie to,
* Parametry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
=== {{Śródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}{{Code|RozpatrywanieNapisoweWprowadzeniaTekstu}} ===
Fukcja ogólna do przeszukiwania kolejnych elementów według wzoru i wskazywania ich pozycji początkowej, czy końcowej, i elementów przechwytywanych.
Funkcja została skonstrułowana, by wyszukiwała kolejne rozdziały różnych typów, tzn.: {{Code|SZABLON}}, {{Code|ZNACZNIK}} i trzeciego nieokreślonej żadnym kodem, w postaci trzech konstrukcji szczególnych wykorzystujących tę ogólną funkcję, aby uzyskać pewne zmienne, by później je wykorzystać w: {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}}, do zwracania danych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozpatrywanieNapisoweWprowadzeniaTekstu(wzor,czy_rozdzial_rownaniowy_dodatni,__FUNKCJA1,__FUNKCJA2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzor}} - wzór dla tekstu, który przeszukujemy,
* {{Code|czy_rozdzial_rownaniowy_dodatni}} - czy to jest rozdział dadatni równaniowy, wtedy ona przyjmuje wartość prawdziwą, w przeciwnym wypadku fałszywą, wtedy mamy, to dla nagłówków zapisanych w postaci kodów, jak rozdziały centrowania szablonowe i znacznikowe, sztuczne nagłówki napisu wprowadzenia tekstu, czy znaczniki nagłówków,
* {{Code|__FUNKCJA1}} - funkcja do uzyskiwania danych z przechwytywanego ciągu wsadzanych jako parametr, i zwracania ich w postaci, co najwyżej dwóh kolejnych elementów, np. szablon i znumerowany kod danej bazy kodów tekstu zakodowanego, czy też może jako jedyny parametr nagłówek,
* {{Code|__FUNKCJA2}} - funkcja do przetwarzania kolejno elementów, i do sterowania pętlą, aby nie zawsze ona się zatrzymywała, te parametry zwracane przez pierwszą funkcję są wsadzane jako parametry do tej funkcji, wraz z trzecim parametrem, funkcją, której wynik zwracamy bezpośrednią z tej funkcji.
=== Funkcja zwracająca parametry ===
Opis funkcji zwracającej parametry, która jest potrzebna właśnie do tego.
Do tej funkcji są wykorzystywane dane zwrcócone bezpośrednio z funkcji: {{LinkŚródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}, dla trzech różnych prrzypadków nagłówków, tzn. nagłówków zapisanych w postaci szablonów, znaczników i rozdziałów równaniowych, wtedy drugi parametr tej funkcji jest prawdziwy.
==== {{Śródtytuł|ParametryNapisuWprowadzeniaTekstu}}{{Code|ParametryNapisuWprowadzeniaTekstu}} ====
Funkcja przyjmuje i przygotowuje parametry do zwrócenia.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParametryNapisuWprowadzeniaTekstu(liczba_start,liczba_koniec,spis_naglowka_stare,spis_naglowka,spis_naglowka_poziom)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - początek i koniec danego typu napisu wprowadzenia tekstu, tych typów jest wiele,
* {{Code|spis_naglowka_stare}} {{Patrz|spis_naglowka_stare}}, spis przed analizą {{LinkZobaczTeż|spis_naglowka}},
* {{Code|spis_naglowka}} {{Patrz|spis_naglowka}} - spis {{ZobaczTeż|spis_naglowka}} przeanalizowany przez funkcję: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}, a później przez: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, jeżeli parametr: {{LinkPatrz|czy_spis_tresci}}, istnieje, jest to robione poza tą funkcją, możliwe, że ta wartość nie istnieje,
* {{Code|spis_naglowka_poziom}} {{Patrz|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych, dla pozostałych nagłówków nie istnieje.
Funcja zwraca parametry napisane ogólnie według kodu dla każdego rodzaju napisu wprowadzenia tekstu:
<syntaxhighlight lang="lua">
return liczba_start,liczba_koniec,spis_naglowka,spis_naglowka_stare,spis_naglowka_poziom;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez ten obiekt dla danego rodzaju rozdziału:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - jest to powtórzenie parametrów dwóch pierwszych z parametrów tej funkcji,
* {{Code|spis_naglowka}} - ten parametr jest liczony dla nieistniejącego parametru: {{Code|czy_spis_tresci}} {{LinkPatrz|czy_spis_tresci}}, są robione podobne operacje, jak w punkcie: {{LinkZobaczTeż|spis_naglowka}}, a jeżeli ten wpomniany parametr istnieje, to to nie jest robione w tej funkcji,
* {{Code|spis_naglowka_stare}} - spis przed analizą, po którym ten parametr zamienia się w ten powyższy ostatni element, możliwe, że ten parametr nie istnieje, wtedy jest brany z: {{Code|spis_naglowka}} {{LinkPatrz|spis_naglowka}},
* {{Code|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych.
==== Dalszy opis funkcji ====
Funkcja w nagłówku zwraca parametry bezpośrednio z: {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}}, w postaci, np. dla rozdziału dodatniego równaniowego:
<syntaxhighlight lang="lua">
return ParametryNapisuWprowadzeniaTekstu(liczba_start_dodatni,liczba_koniec_dodatni,spis_naglowka_dodatni_stare,spis_naglowka_dodatni,spis_naglowka_dodatni_poziom);
</syntaxhighlight>
Dla innych typów nagłówków jest zamiast: {{Code|dodatni}}, w zmiennych w powyższym przykładzie jest: {{Code|szablon}} - dla rozdziałów szablonowych, czy {{Code|znacznik}} - znacznikowych.
Funkcja wybiera, jakiego typy nagłówków z zakresu wykrytych różnego typu, ma obsłużyć, i wtedy odpowiednio ustawia funkcję parametrów, wskazaną jak w powyższym przykładzie, względem maksymalnych, w wyszukiwaniu do tyłu, lub minimalnych, w wyszukiwanych do przodu, nagłówkach, lewych pozycji wartości uzyskanych ze wszystkich nagłówków, sprawdzając, czy to się zgadza, z którymiś pozycjami lewymi tych nagłówków trzech typów.
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
Funkcja uwzględnia nagłówki według {{LinkZobaczTeż|rozdziały}}, oprócz nagłówków równaniowych. Zawartością w nagłówkach centrowania, jest to wartość pierwszego parametru, a też w szablonie w sztucznych napisach wprowadzenia tekstu {{s|HNumer}}, jego zawartość to pierwszy jego argument, ale pomiędzy taką samą maksymalną liczbą znaków {{Code|{{=}}}} w nim, i jeszcze w jego wersji strimowanej.
; Uzyskanie elementów parametrów kodu bazy{{dk}}
* Funkcja wyszukuje pierwszego dozwolonego linku w tekście, w elemencie całkowitej zawartości: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, którym jest to wywołanie nagłówka, uzyskanego z dwóch elementów, z tablicy wielowymiarowej, czyli:
** {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}} - nagłówki szablonowe centrowania, typu: {{s|Ce}}, {{s|Centruj}} i {{s|Center}} oraz nagłówki sztucznego rozdziału, takich jak: {{s|HNumer}},
** lub {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}} - nagłówki znacznikowe centrowania, typu: {{Tag|center}}, oraz znaczniki nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}},
*: oraz także uzykanego z drugiego numeru w postaci numeru szablonu tego poszczególnego typu w bazie kodów, więc: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}.
* Wnętrze uzyskujemy z dwóch poprzednich parametrów z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
; Wyszukiwane trzy elementy zawartości obiektu{{dk}}
* Wyszukuje on w tak uzyskanej zawartości tego elementu, linki różnego typu, tzn. {{Code|LINKW}}, {{Code|LINKZ}} i linki szablonowe, i uzyskuje z tego trzy elementy, w nim, charakteryzujące kod: {{Code|{{m|Szablonowe}}}}, bazy kodów, a także wyszukuje w nim jego dalszy tekst, w nagłówku, po którym jest do końca jego zawartości, a jeżeli je znalazł, to to zwraca, te trzy zmienne i dalszy tekst.
* A jeżeli nie znalazł takiego linku, przy pierwszym kodzie, to wyszukuje dalej w tej zawartości, aż skończą się w tym zasoby danych, a jeśli się da, to je zwraca, w tak wytłumaczonej komplecie zmiennych, lub nic nie zrzuca, żadnego kompletu żadnych zmiennych.
; Zrzucane przez funkcje parametry{{dk}}
* Tam jakiś pierwszy link musi być zakodowany bezpośrednio w takiej zawartości, aby je wykrył i zwrócił w takiej postaci, jak opisano. A jeżeli nie, to te trzy parametry zrzuci, jeżeli link jest bezpostrednio w zawartości wnętrza, a jeśli nie, to ten czwarty zwracany już nie ma wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji {{Patrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}:
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Paramtry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Opis parametrów zwracanych dokończające jego dokumentację:
* Parametry z sekcji {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, mozliwe wartości: {{Code|SZABLON}} (linku szablonowe), {{Code|LINKW}} (linki wewnętrzne)i i {{Code|LINKZ}} (linki zewnętrzne),
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Inne parametry:
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy zwracany tekst w napisie wprowadzenia tekstu, po zwracanym jako jego parametry tej funkcji, czyli dalszego tekstu.
Kod zwracanych parametrów funkcji:
<syntaxhighlight lang="lua">
return szablon,obiekt,kod,dalszy_tekst;
</syntaxhighlight>
; Wykrywane linki różnego typu{{dk}}
* Funkcja wyszukuje rozdziały, a w nich pierwsze zarejestrowane linki, którymi są zakodowane linki wewnętrzne lub zewnętrzne, lub linku szablonowe, nawet inteligentne, którego nazwy są zakatologowane w tablicach, te linki mogą być inne, niż linki standardowe inteligentne, czyli: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.linki_szablony_elementy_spisu_rzeczy={
["SpisTreści"]=true,
["Sekcja referencyjna"]=true,
["Sr"]=true,
["Link wewnętrzny"]=true,
["Ly"]=true,
["LinkOgólne"]=true,
["Lo"]=true,
}
</syntaxhighlight>
* Inne linki mogące być uzyte w rozdziałach zdefiniowane są w punkcie: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}. Jeszcze są wspomniane linki, to tzw. linki inteligentne standardowe, w przeciwieństwie do powyższych, ale nie do końca, można sprawdzić przez funkcję: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}} {{Patrz|p.PodzielNaElementyNazwowyWikiLinkInteligentny}}, czy są takie.
; Przykład wywołania fukcji {{dk}}
Przykład wywołania funkcji wraz z jego udokumentowanymi parametrami z: {{LinkPatrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}, czyli:
<syntaxhighlight lang="lua">
local szablon,obiekt,kod,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
2809xvw9xlfzj3gqjy1bdidr5d44of1
554592
554538
2026-09-06T10:21:40Z
Persino
2851
/* {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} */
554592
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
Funkcja wyszukuje w: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, najbliższy rozdział do przodu lub od tyłu w zależności od podanego parametru: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, w zakresach od: {{Code|liczba_od}} {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Funkcja znajdująca uwzględnia, że tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, może być zakodowany w bazie kodów: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, a części jego bazy mogą być w postaci przeanalizowanej w: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja przeszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, linie rodziałów zakodowanych, a dla rozdziału dodatniego równaniowego wykorzystuje natomiast funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
Funkcja {{ZobaczTeż|rozdziały}} wyszukuje rozdziały, dodatnie równaniowe, centrowane szablonowo lub znacznikowo i nagłówkowe - poprzez szablony, czy znaczniki nagłówków.
* Rozdziały równaniowe, to są rozdziały otoczone wokół stron linii tekstu znakami {{Code|{{=}}}}, przykład: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}},
* Rozdziały, oczywiście, że dodatnie, nagłówkowe, to te: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{tag|h6}},
** Lub przez użycie szablonu: {{s|HNumer}}, do generowania sztucznego nagłówka, ta funkcja generuje powyższe nagłówki, przy pomocy zachowania zgodności z rozdziałami dodatnimi rówaniowo, nawet gdy po lewej i poprawej, liczba {{Code|{{=}}}}, jest większa niż: {{Code|6}}, co normalnie jest niedozwolone, w jego pierwszy parametrze, który symbolizuje pewien rozdział dodatni równaniowo,
* Centrowane szablonowo, oznaczone są szablonami: {{s|Ce}}, {{s|Centruj}} i {{s|Center}},
* Centrowane znacznikowo, oznaczone są znacznikami: {{Tag|center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Definicja skrótowa funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}} - tekst artykułu zakodowanego, w którym wyszukuje się pewne rozdziały, według: {{LinkZobaczTeż|rozdziały}},
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_od_tylu}} - jak w: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_spis_tresci}} {{Patrz|czy_spis_tresci}} - funkcja sprawdza, czy nagłówek spisu, jeśli istnieje, spełnia ściśle określone kryteria, jest to policzony nagłówek z funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}, z tego samego nagłówka, przed transformacją, z przechwyconego z elementu, w którym jest właśnie to,
* Parametry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
=== {{Śródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}{{Code|RozpatrywanieNapisoweWprowadzeniaTekstu}} ===
Fukcja ogólna do przeszukiwania kolejnych elementów według wzoru i wskazywania ich pozycji początkowej, czy końcowej, i elementów przechwytywanych.
Funkcja została skonstrułowana, by wyszukiwała kolejne rozdziały różnych typów, tzn.: {{Code|SZABLON}}, {{Code|ZNACZNIK}} i trzeciego nieokreślonej żadnym kodem, w postaci trzech konstrukcji szczególnych wykorzystujących tę ogólną funkcję, aby uzyskać pewne zmienne, by później je wykorzystać w: {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}}, do zwracania danych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozpatrywanieNapisoweWprowadzeniaTekstu(wzor,czy_rozdzial_rownaniowy_dodatni,__FUNKCJA1,__FUNKCJA2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzor}} - wzór dla tekstu, który przeszukujemy,
* {{Code|czy_rozdzial_rownaniowy_dodatni}} - czy to jest rozdział dadatni równaniowy, wtedy ona przyjmuje wartość prawdziwą, w przeciwnym wypadku fałszywą, wtedy mamy, to dla nagłówków zapisanych w postaci kodów, jak rozdziały centrowania szablonowe i znacznikowe, sztuczne nagłówki napisu wprowadzenia tekstu, czy znaczniki nagłówków,
* {{Code|__FUNKCJA1}} - funkcja do uzyskiwania danych z przechwytywanego ciągu wsadzanych jako parametr, i zwracania ich w postaci, co najwyżej dwóh kolejnych elementów, np. szablon i znumerowany kod danej bazy kodów tekstu zakodowanego, czy też może jako jedyny parametr nagłówek,
* {{Code|__FUNKCJA2}} - funkcja do przetwarzania kolejno elementów, i do sterowania pętlą, aby nie zawsze ona się zatrzymywała, te parametry zwracane przez pierwszą funkcję są wsadzane jako parametry do tej funkcji, wraz z trzecim parametrem, funkcją, której wynik zwracamy bezpośrednią z tej funkcji.
=== Funkcja zwracająca parametry ===
Opis funkcji zwracającej parametry, która jest potrzebna właśnie do tego.
Do tej funkcji są wykorzystywane dane zwrcócone bezpośrednio z funkcji: {{LinkŚródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}, dla trzech różnych prrzypadków nagłówków, tzn. nagłówków zapisanych w postaci szablonów, znaczników i rozdziałów równaniowych, wtedy drugi parametr tej funkcji jest prawdziwy.
==== {{Śródtytuł|ParametryNapisuWprowadzeniaTekstu}}{{Code|ParametryNapisuWprowadzeniaTekstu}} ====
Funkcja przyjmuje i przygotowuje parametry do zwrócenia.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParametryNapisuWprowadzeniaTekstu(liczba_start,liczba_koniec,spis_naglowka_stare,spis_naglowka,spis_naglowka_poziom)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - początek i koniec danego typu napisu wprowadzenia tekstu, tych typów jest wiele,
* {{Code|spis_naglowka_stare}} {{Patrz|spis_naglowka_stare}}, spis przed analizą {{LinkZobaczTeż|spis_naglowka}},
* {{Code|spis_naglowka}} {{Patrz|spis_naglowka}} - spis {{ZobaczTeż|spis_naglowka}} przeanalizowany przez funkcję: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}, a później przez: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, jeżeli parametr: {{LinkPatrz|czy_spis_tresci}}, istnieje, jest to robione poza tą funkcją, możliwe, że ta wartość nie istnieje,
* {{Code|spis_naglowka_poziom}} {{Patrz|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych, dla pozostałych nagłówków nie istnieje.
Funcja zwraca parametry napisane ogólnie według kodu dla każdego rodzaju napisu wprowadzenia tekstu:
<syntaxhighlight lang="lua">
return liczba_start,liczba_koniec,spis_naglowka,spis_naglowka_stare,spis_naglowka_poziom;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez ten obiekt dla danego rodzaju rozdziału:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - jest to powtórzenie parametrów dwóch pierwszych z parametrów tej funkcji,
* {{Code|spis_naglowka}} - ten parametr jest liczony dla nieistniejącego parametru: {{Code|czy_spis_tresci}} {{LinkPatrz|czy_spis_tresci}}, są robione podobne operacje, jak w punkcie: {{LinkZobaczTeż|spis_naglowka}}, a jeżeli ten wpomniany parametr istnieje, to to nie jest robione w tej funkcji,
* {{Code|spis_naglowka_stare}} - spis przed analizą, po którym ten parametr zamienia się w ten powyższy ostatni element, możliwe, że ten parametr nie istnieje, wtedy jest brany z: {{Code|spis_naglowka}} {{LinkPatrz|spis_naglowka}},
* {{Code|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych.
==== Dalszy opis funkcji ====
Funkcja w nagłówku zwraca parametry bezpośrednio z: {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}}, w postaci, np. dla rozdziału dodatniego równaniowego:
<syntaxhighlight lang="lua">
return ParametryNapisuWprowadzeniaTekstu(liczba_start_dodatni,liczba_koniec_dodatni,spis_naglowka_dodatni_stare,spis_naglowka_dodatni,spis_naglowka_dodatni_poziom);
</syntaxhighlight>
Dla innych typów nagłówków jest zamiast: {{Code|dodatni}}, w zmiennych w powyższym przykładzie jest: {{Code|szablon}} - dla rozdziałów szablonowych, czy {{Code|znacznik}} - znacznikowych.
Funkcja wybiera, jakiego typy nagłówków z zakresu wykrytych różnego typu, ma obsłużyć, i wtedy odpowiednio ustawia funkcję parametrów, wskazaną jak w powyższym przykładzie, względem maksymalnych, w wyszukiwaniu do tyłu, lub minimalnych, w wyszukiwanych do przodu, nagłówkach, lewych pozycji wartości uzyskanych ze wszystkich nagłówków, sprawdzając, czy to się zgadza, z którymiś pozycjami lewymi tych nagłówków trzech typów.
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
Funkcja uwzględnia nagłówki według {{LinkZobaczTeż|rozdziały}}, oprócz nagłówków równaniowych. Zawartością w nagłówkach centrowania, jest to wartość pierwszego parametru, a też w szablonie w sztucznych napisach wprowadzenia tekstu {{s|HNumer}}, jego zawartość to pierwszy jego argument, ale pomiędzy taką samą maksymalną liczbą znaków {{Code|{{=}}}} w nim, i jeszcze w jego wersji strimowanej.
; Uzyskanie elementów parametrów kodu bazy{{dk}}
* Funkcja wyszukuje pierwszego dozwolonego linku w tekście, w elemencie całkowitej zawartości: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, którym jest to wywołanie nagłówka, uzyskanego z dwóch elementów, z tablicy wielowymiarowej, czyli:
** {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}} - nagłówki szablonowe centrowania, typu: {{s|Ce}}, {{s|Centruj}} i {{s|Center}} oraz nagłówki sztucznego rozdziału, takich jak: {{s|HNumer}},
** lub {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}} - nagłówki znacznikowe centrowania, typu: {{Tag|center}}, oraz znaczniki nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}},
*: oraz także uzykanego z drugiego numeru w postaci numeru szablonu tego poszczególnego typu w bazie kodów, więc: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}.
* Wnętrze uzyskujemy z dwóch poprzednich parametrów z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
; Wyszukiwane trzy elementy zawartości obiektu{{dk}}
* Wyszukuje on w tak uzyskanej zawartości tego elementu, linki różnego typu, tzn. {{Code|LINKW}}, {{Code|LINKZ}} i linki szablonowe, i uzyskuje z tego trzy elementy, w nim, charakteryzujące kod: {{Code|{{m|Szablonowe}}}}, bazy kodów, a także znajduje w nim jego dalszy tekst, w nagłówku, po którym jest do końca jego zawartości, a jeżeli je znalazł, to to zwraca, te trzy zmienne i dalszy tekst.
* A jeżeli nie znalazł takiego linku, przy pierwszym kodzie, to wyszukuje dalej w tej zawartości, aż skończą się w tym zasoby danych, a jeśli się da, to je zwraca, w tak wytłumaczonej komplecie zmiennych, lub nic nie zrzuca, żadnego kompletu żadnych zmiennych.
; Zrzucane przez funkcje parametry{{dk}}
* Tam jakiś pierwszy link musi być zakodowany bezpośrednio w takiej zawartości, aby zwrócił te cztery parametry, przeciwnie zrzuca tylko te trzy, a czwarty przyjmuje wartość nilową, to się dzieje, w przypadku pośredniego zakodowania tego linku.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji {{Patrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}:
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Paramtry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Opis parametrów zwracanych dokończające jego dokumentację:
* Parametry z sekcji {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, mozliwe wartości: {{Code|SZABLON}} (linku szablonowe), {{Code|LINKW}} (linki wewnętrzne)i i {{Code|LINKZ}} (linki zewnętrzne),
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Inne parametry:
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy zwracany tekst w napisie wprowadzenia tekstu, po zwracanym jako jego parametry tej funkcji, czyli dalszego tekstu.
Kod zwracanych parametrów funkcji:
<syntaxhighlight lang="lua">
return szablon,obiekt,kod,dalszy_tekst;
</syntaxhighlight>
; Wykrywane linki różnego typu{{dk}}
* Funkcja wyszukuje rozdziały, a w nich pierwsze zarejestrowane linki, którymi są zakodowane linki wewnętrzne lub zewnętrzne, lub linku szablonowe, nawet inteligentne, którego nazwy są zakatologowane w tablicach, te linki są zdefiniowane według: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.linki_szablony_elementy_spisu_rzeczy={
["SpisTreści"]=true,
["Sekcja referencyjna"]=true,
["Sr"]=true,
["Link wewnętrzny"]=true,
["Ly"]=true,
["LinkOgólne"]=true,
["Lo"]=true,
}
</syntaxhighlight>
* Inne linki mogące być użyte w rozdziałach zdefiniowane są w punkcie: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}. Jeszcze są wspomniane linki, to tzw. linki inteligentne standardowe, w przeciwieństwie do powyższych, ale nie do końca, można sprawdzić przez funkcję: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}} {{Patrz|p.PodzielNaElementyNazwowyWikiLinkInteligentny}}.
; Przykład wywołania fukcji {{dk}}
Przykład wywołania funkcji wraz z jego udokumentowanymi parametrami z: {{LinkPatrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}, czyli:
<syntaxhighlight lang="lua">
local szablon,obiekt,kod,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
tsbzyw8tsla9wt82ms9fohxdl3d676r
554593
554592
2026-09-06T10:26:23Z
Persino
2851
/* {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} */
554593
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
Funkcja wyszukuje w: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, najbliższy rozdział do przodu lub od tyłu w zależności od podanego parametru: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, w zakresach od: {{Code|liczba_od}} {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Funkcja znajdująca uwzględnia, że tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, może być zakodowany w bazie kodów: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, a części jego bazy mogą być w postaci przeanalizowanej w: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja przeszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, linie rodziałów zakodowanych, a dla rozdziału dodatniego równaniowego wykorzystuje natomiast funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
Funkcja {{ZobaczTeż|rozdziały}} wyszukuje rozdziały, dodatnie równaniowe, centrowane szablonowo lub znacznikowo i nagłówkowe - poprzez szablony, czy znaczniki nagłówków.
* Rozdziały równaniowe, to są rozdziały otoczone wokół stron linii tekstu znakami {{Code|{{=}}}}, przykład: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}},
* Rozdziały, oczywiście, że dodatnie, nagłówkowe, to te: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{tag|h6}},
** Lub przez użycie szablonu: {{s|HNumer}}, do generowania sztucznego nagłówka, ta funkcja generuje powyższe nagłówki, przy pomocy zachowania zgodności z rozdziałami dodatnimi rówaniowo, nawet gdy po lewej i poprawej, liczba {{Code|{{=}}}}, jest większa niż: {{Code|6}}, co normalnie jest niedozwolone, w jego pierwszy parametrze, który symbolizuje pewien rozdział dodatni równaniowo,
* Centrowane szablonowo, oznaczone są szablonami: {{s|Ce}}, {{s|Centruj}} i {{s|Center}},
* Centrowane znacznikowo, oznaczone są znacznikami: {{Tag|center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Definicja skrótowa funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}} - tekst artykułu zakodowanego, w którym wyszukuje się pewne rozdziały, według: {{LinkZobaczTeż|rozdziały}},
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_od_tylu}} - jak w: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|czy_spis_tresci}} {{Patrz|czy_spis_tresci}} - funkcja sprawdza, czy nagłówek spisu, jeśli istnieje, spełnia ściśle określone kryteria, jest to policzony nagłówek z funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}, z tego samego nagłówka, przed transformacją, z przechwyconego z elementu, w którym jest właśnie to,
* Parametry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
=== {{Śródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}{{Code|RozpatrywanieNapisoweWprowadzeniaTekstu}} ===
Fukcja ogólna do przeszukiwania kolejnych elementów według wzoru i wskazywania ich pozycji początkowej, czy końcowej, i elementów przechwytywanych.
Funkcja została skonstrułowana, by wyszukiwała kolejne rozdziały różnych typów, tzn.: {{Code|SZABLON}}, {{Code|ZNACZNIK}} i trzeciego nieokreślonej żadnym kodem, w postaci trzech konstrukcji szczególnych wykorzystujących tę ogólną funkcję, aby uzyskać pewne zmienne, by później je wykorzystać w: {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}}, do zwracania danych.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozpatrywanieNapisoweWprowadzeniaTekstu(wzor,czy_rozdzial_rownaniowy_dodatni,__FUNKCJA1,__FUNKCJA2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzor}} - wzór dla tekstu, który przeszukujemy,
* {{Code|czy_rozdzial_rownaniowy_dodatni}} - czy to jest rozdział dadatni równaniowy, wtedy ona przyjmuje wartość prawdziwą, w przeciwnym wypadku fałszywą, wtedy mamy, to dla nagłówków zapisanych w postaci kodów, jak rozdziały centrowania szablonowe i znacznikowe, sztuczne nagłówki napisu wprowadzenia tekstu, czy znaczniki nagłówków,
* {{Code|__FUNKCJA1}} - funkcja do uzyskiwania danych z przechwytywanego ciągu wsadzanych jako parametr, i zwracania ich w postaci, co najwyżej dwóh kolejnych elementów, np. szablon i znumerowany kod danej bazy kodów tekstu zakodowanego, czy też może jako jedyny parametr nagłówek,
* {{Code|__FUNKCJA2}} - funkcja do przetwarzania kolejno elementów, i do sterowania pętlą, aby nie zawsze ona się zatrzymywała, te parametry zwracane przez pierwszą funkcję są wsadzane jako parametry do tej funkcji, wraz z trzecim parametrem, funkcją, której wynik zwracamy bezpośrednią z tej funkcji.
=== Funkcja zwracająca parametry ===
Opis funkcji zwracającej parametry, która jest potrzebna właśnie do tego.
Do tej funkcji są wykorzystywane dane zwrcócone bezpośrednio z funkcji: {{LinkŚródtytuł|RozpatrywanieNapisoweWprowadzeniaTekstu}}, dla trzech różnych prrzypadków nagłówków, tzn. nagłówków zapisanych w postaci szablonów, znaczników i rozdziałów równaniowych, wtedy drugi parametr tej funkcji jest prawdziwy.
==== {{Śródtytuł|ParametryNapisuWprowadzeniaTekstu}}{{Code|ParametryNapisuWprowadzeniaTekstu}} ====
Funkcja przyjmuje i przygotowuje parametry do zwrócenia.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParametryNapisuWprowadzeniaTekstu(liczba_start,liczba_koniec,spis_naglowka_stare,spis_naglowka,spis_naglowka_poziom)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - początek i koniec danego typu napisu wprowadzenia tekstu, tych typów jest wiele,
* {{Code|spis_naglowka_stare}} {{Patrz|spis_naglowka_stare}}, spis przed analizą {{LinkZobaczTeż|spis_naglowka}},
* {{Code|spis_naglowka}} {{Patrz|spis_naglowka}} - spis {{ZobaczTeż|spis_naglowka}} przeanalizowany przez funkcję: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}, a później przez: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, jeżeli parametr: {{LinkPatrz|czy_spis_tresci}}, istnieje, jest to robione poza tą funkcją, możliwe, że ta wartość nie istnieje,
* {{Code|spis_naglowka_poziom}} {{Patrz|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych, dla pozostałych nagłówków nie istnieje.
Funcja zwraca parametry napisane ogólnie według kodu dla każdego rodzaju napisu wprowadzenia tekstu:
<syntaxhighlight lang="lua">
return liczba_start,liczba_koniec,spis_naglowka,spis_naglowka_stare,spis_naglowka_poziom;
</syntaxhighlight>
Wytłumaczenie parametrów zwracanych przez ten obiekt dla danego rodzaju rozdziału:
* {{Code|liczba_start}} i {{Code|liczba_koniec}} - jest to powtórzenie parametrów dwóch pierwszych z parametrów tej funkcji,
* {{Code|spis_naglowka}} - ten parametr jest liczony dla nieistniejącego parametru: {{Code|czy_spis_tresci}} {{LinkPatrz|czy_spis_tresci}}, są robione podobne operacje, jak w punkcie: {{LinkZobaczTeż|spis_naglowka}}, a jeżeli ten wpomniany parametr istnieje, to to nie jest robione w tej funkcji,
* {{Code|spis_naglowka_stare}} - spis przed analizą, po którym ten parametr zamienia się w ten powyższy ostatni element, możliwe, że ten parametr nie istnieje, wtedy jest brany z: {{Code|spis_naglowka}} {{LinkPatrz|spis_naglowka}},
* {{Code|spis_naglowka_poziom}} - poziom nagłówka, funkcja dostępna dla rozdziałów dodatnich, szablonu {{s|HNumer}} i znaczników nagłówkowych.
==== Dalszy opis funkcji ====
Funkcja w nagłówku zwraca parametry bezpośrednio z: {{LinkŚródtytuł|ParametryNapisuWprowadzeniaTekstu}}, w postaci, np. dla rozdziału dodatniego równaniowego:
<syntaxhighlight lang="lua">
return ParametryNapisuWprowadzeniaTekstu(liczba_start_dodatni,liczba_koniec_dodatni,spis_naglowka_dodatni_stare,spis_naglowka_dodatni,spis_naglowka_dodatni_poziom);
</syntaxhighlight>
Dla innych typów nagłówków jest zamiast: {{Code|dodatni}}, w zmiennych w powyższym przykładzie jest: {{Code|szablon}} - dla rozdziałów szablonowych, czy {{Code|znacznik}} - znacznikowych.
Funkcja wybiera, jakiego typy nagłówków z zakresu wykrytych różnego typu, ma obsłużyć, i wtedy odpowiednio ustawia funkcję parametrów, wskazaną jak w powyższym przykładzie, względem maksymalnych, w wyszukiwaniu do tyłu, lub minimalnych, w wyszukiwanych do przodu, nagłówkach, lewych pozycji wartości uzyskanych ze wszystkich nagłówków, sprawdzając, czy to się zgadza, z którymiś pozycjami lewymi tych nagłówków trzech typów.
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
Funkcja uwzględnia nagłówki według {{LinkZobaczTeż|rozdziały}}, oprócz nagłówków równaniowych. Zawartością w nagłówkach centrowania, jest to wartość pierwszego parametru, a też w szablonie w sztucznych napisach wprowadzenia tekstu {{s|HNumer}}, jego zawartość to pierwszy jego argument, ale pomiędzy taką samą maksymalną liczbą znaków {{Code|{{=}}}} w nim, i jeszcze w jego wersji strimowanej.
; Uzyskanie elementów parametrów kodu bazy{{dk}}
* Funkcja wyszukuje pierwszego dozwolonego linku w tekście, w elemencie całkowitej zawartości: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, którym jest to wywołanie nagłówka, uzyskanego z dwóch elementów, z tablicy wielowymiarowej, czyli:
** {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}} - nagłówki szablonowe centrowania, typu: {{s|Ce}}, {{s|Centruj}} i {{s|Center}} oraz nagłówki sztucznego rozdziału, takich jak: {{s|HNumer}},
** lub {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}} - nagłówki znacznikowe centrowania, typu: {{Tag|center}}, oraz znaczniki nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}},
*: oraz także uzykanego z drugiego numeru w postaci numeru szablonu tego poszczególnego typu w bazie kodów, więc: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}.
* Wnętrze uzyskujemy z dwóch poprzednich parametrów z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
; Wyszukiwane trzy elementy zawartości obiektu{{dk}}
* Wyszukuje on w tak uzyskanej zawartości tego elementu, linki różnego typu, tzn. {{Code|LINKW}}, {{Code|LINKZ}} i linki szablonowe, i uzyskuje z tego trzy elementy, w nim, charakteryzujące kod: {{Code|{{m|Szablonowe}}}}, bazy kodów, a także znajduje w nim jego dalszy tekst, w nagłówku, po którym jest do końca jego zawartości, a jeżeli je znalazł, to to zwraca, te trzy zmienne i dalszy tekst, przeciwnie tylko te trzy.
* A jeżeli nie znalazł takiego linku, przy pierwszym kodzie, to wyszukuje dalej w tej zawartości, aż skończą się w tym zasoby danych, a jeśli się da, to je zwraca, w tak wytłumaczonej komplecie zmiennych, lub nic nie zrzuca, żadnego kompletu żadnych zmiennych.
; Zrzucane przez funkcje parametry{{dk}}
* Tam jakiś pierwszy link musi być zakodowany bezpośrednio w takiej zawartości, aby zwrócił te cztery parametry, przeciwnie zrzuca tylko te trzy, a czwarty przyjmuje wartość nilową, to się dzieje, w przypadku pośredniego zakodowania tego linku.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji {{Patrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}:
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Paramtry z sekcji {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
** {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Opis parametrów zwracanych dokończające jego dokumentację:
* Parametry z sekcji {{LinkZobaczTeż|Parametry złożone|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji {{LinkZobaczTeż|Parametry kodowania|StronicowyParser/AnalizaSpisuRzeczy}}:
** {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, mozliwe wartości: {{Code|SZABLON}} (linku szablonowe), {{Code|LINKW}} (linki wewnętrzne)i i {{Code|LINKZ}} (linki zewnętrzne),
** {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}},
* Inne parametry:
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy zwracany tekst w napisie wprowadzenia tekstu, po zwracanym jako jego parametry tej funkcji, czyli dalszego tekstu.
Kod zwracanych parametrów funkcji:
<syntaxhighlight lang="lua">
return szablon,obiekt,kod,dalszy_tekst;
</syntaxhighlight>
; Wykrywane linki różnego typu{{dk}}
* Funkcja wyszukuje rozdziały, a w nich pierwsze zarejestrowane linki, którymi są zakodowane linki wewnętrzne lub zewnętrzne, lub linku szablonowe, nawet inteligentne, którego nazwy są zakatologowane w tablicach, te linki są zdefiniowane według: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.linki_szablony_elementy_spisu_rzeczy={
["SpisTreści"]=true,
["Sekcja referencyjna"]=true,
["Sr"]=true,
["Link wewnętrzny"]=true,
["Ly"]=true,
["LinkOgólne"]=true,
["Lo"]=true,
}
</syntaxhighlight>
* Inne linki mogące być użyte w rozdziałach zdefiniowane są w punkcie: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}},
* Jeszcze są wspomniane linki, to tzw. linki inteligentne standardowe, w przeciwieństwie do powyższych, ale nie do końca, można sprawdzić przez funkcję: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}} {{Patrz|p.PodzielNaElementyNazwowyWikiLinkInteligentny}}.
; Przykład wywołania fukcji {{dk}}
Przykład wywołania funkcji wraz z jego udokumentowanymi parametrami z: {{LinkPatrz|parametry-SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}, czyli:
<syntaxhighlight lang="lua">
local szablon,obiekt,kod,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
riagrlaoc0p4q5lud0y544zo9t0eovo
Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom V
4
63920
554542
553077
2026-09-05T19:47:59Z
Persino
2851
554542
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
Jest to funkcja do sprawdzania tekstu zawartości (tekstu rozdziału, bez zawartości nagłówka) napisu wprowadzenia tekstu sekcji, za pomocą funkcji zwracanej, czy ona spełnia pewne określone warunki.
Funkcja, gdy co jest nie tak, to zwraca wartość {{Code|true}}, i przy okazji może zerować pewne określone zmienne, jeśli ona przy tym została odpowiednio ustawiona, przeciwnie ona zawsze zwraca wartość {{Code|nil}}, czyli nie zwraca żadnej wartości.
Za pomocą tej funkcji można sprawdzić, czy funkcja zawiera niedozwolone znaki wikikodu, i dlatego zwraca tą prawdziwość.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe)
... ---- ciało funkcji zwracanej
end;
end;
</syntaxhighlight>
Parametry ogólne funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|czy_zeruj}} {{Patrz|czy_zeruj}} - czy ma zerować, ścisle określone zmienne, które mieszczą się w niezerowej tablicy zmiennych składowych, tzn. w: {{LinkPatrz|tab_zmienne}},
* {{Code|tab_zmienne}} {{Patrz|tab_zmienne}} - zmienne w nim do zerowania,
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Parametry funkcji zwracanej dla tekstu rozważanego {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}:
* {{Code|liczba_koniec_naglowek}} {{Patrz|liczba_koniec_naglowek}} - numer znaku, po którym coś rozważamy,
* {{Code|liczba_obiekt_start_nowe}} {{Patrz|liczba_obiekt_start_nowe}} - numer znaku, przed którym coś rozważamy.
Funkcja zwracana sprawdza, czy zmienne: {{LinkPatrz|liczba_koniec_naglowek}} i {{LinkPatrz|liczba_obiekt_start_nowe}}, istnieją, i te zmienne sugerują punkty znakowe w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, ale jeżeli te zmienne liczbowe punktów znakowych mają takie wartości, że nie da się znaleźć dla tej zmiennej tekstowej treści pomiędzy nimi, to ta funkcja nie zwraca żadnej wartości, to zachodzi, kiedy nie jest spełniony warunek:
<syntaxhighlight lang="lua">
if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then
</syntaxhighlight>
* Liczenie zmiennej tekstowej za pomocą, którą będziemy sprawdzać:
A jeżeli jest jednak tak, tzn. spełniony jest jednak ten warunek, to znajduje taki tekst, robi to za pomocą funkcji: {{LzLua|mw.ustring.sub}}, i zapisuje to pod zmienną {{Code|str}} {{Patrz|str}}.
* Pierwszy etap analizowania tej zmiennej, czy jest poprawna, tzn. czy nie zwraca żadnej wartości, ale czy się zakańcza:
Następnie sprawdza, czy ona jest w cudzysłowach, tzn. czy spełnia warunek: {{Code|<nowiki>^%s*'+(.+)'+%s*$</nowiki>}}, lub czy początek zaczyna się od znaków: {{Code|<nowiki>^[%*#:;<>]+</nowiki>}}, lub czy ten tekst zawiera dozwolone znaki z przedziału: {{Code|<nowiki>^[%s%p%w]*$</nowiki>}} - tzn. czy tekst składa się ze znaków odstępu, interpunkcyjnych, znaków alfanumerycznych lub z dolnym myślników, jeżeli któreś z tych warunków jest spełnione, to funkcja nie zwraca żadnej wartości, ale zatrzymuje się, tzn. zakańcza się, to oznacza, że wszystko jest w porządku. A jeżeli nie spełnione z żadnych z tych warunków, to ona idzie dalej, i robi następne czynności następne, aby sprawdzić dalsze warunki, czy wszystko jest w porządku.
* Sprawdzanie niepustych linii po liniach, ewentualnie składających się ze znaków odstępów:
Funkcja liczy ile takich linii znalał, zapisuje to pod zmienną {{Code|ile}} {{Patrz|ile}}, jeśli wśród takich linii znalazł linie pasujące do: {{Code|<nowiki>^[%*#;:<>]</nowiki>}}, lub składające się znaków odstępów: {{Code|<nowiki>^%s*$</nowiki>}}, wtedy funkcja to liczy licznikiem: {{Code|ile_punktowanych}} {{Patrz|ile_punktowanych}}.
Funkcja w tak wyszukanych liniach w przeciwnym razie sprawdza, w liniach niepasujących do tych wzorów, czy tam są artykuły (strony) nie z rozważanej danej książki, przy pomocy funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}} {{Patrz|p.CzyGeneralnieElementSpisuRzeczy}}, jeśli są takie elementy, to funkcja dodaje to do licznika {{LinkPatrz|ile_punktowanych}}, aby dodać jeden do licznika, dla każdej takiej linii funkcja sprawdza, czy przynajmniej jeden taki artykuł się znajduje tam, w każdej takiej wykrytej linii.
Jeśli liczba określona przez zmienną: {{LinkPatrz|ile_punktowanych}}, jeżeli jest co najmniej równa wyszukanym liniom {{LinkPatrz|ile}}, to funcja się zatrzymuje, i nie zwraca żadnej wartości, czyli wskazuje na powodzenie.
* Zerowanie się pewnych wartości:
Funkcja z tak policzonego {{LinkPatrz|str}} usuwa formy kodów z obiektami {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, a jeżeli znalazł w nim same, wtedy znaki odstępów, to ona nie zwraca żadnej wartości, ale się zakańcza, przeciwnie, sprawdza, czy jest zmienna: {{LinkPatrz|czy_zeruj}}, która jest prawdziwa, a jeśli tak, to elementy zmiennej {{LinkPatrz|tab_zmienne}} są nilowane, tzn. podzmienne o kluczach:
* {{Code|liczba_nie_okladka_artykul}} {{Patrz|liczba_nie_okladka_artykul}} - liczba pozycji sekcji wskazująca, czy istnieje pierwszy taki artykuł (nie okładka, nie strona niedozwolona) aktualnej książki, lub bezpośrednio taki artykuł, niekoniecznie tej książki, czy znajduje się bezpośrednio w pozycji sekcji, i tylko sam tam się znajduje,
* {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{Patrz|liczba_pierwszy_rozdzialowy_artykul}} - liczba pozycji sekcji, która wskazuje na pierwszy taki wykryty artykuł, licząc od przodu, który spełnia pewne ścisle okreslone kryteria, jest to dowolny artykuł,jaki może być w książce,
: Kryteria określone przez te zmienne powyżej są określone przez funkcję: {{LinkPatrz|p.CzyGeneralnieElementSpisuRzeczy}},
* {{Code|czy_ten_rozdzial}} {{Patrz|czy_ten_rozdzial}} - wartość prawdziwą wskazuje, czy wynilowano zmienne należące do rozważanej tablicy.
Ale niezależnie od wartości {{LinkPatrz|czy_zeruj}}, funkcja wtedy zwraca zawsze wraca wartość {{Code|true}}, czyli ona zwraca to niepowodzenie.
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
Funkcja wyszukuje, od tyłu, kolejne rozdziały (napisy wprowadzenia tekstu), którego tekst rozdziału składa się z samych znaków odstępów, lub jest pusty, albo o poziomie wyższym rozdziałowo, nawet gdy jego tekst rozdziału jednak nie jest pusty.
Funkcja jest przerywana po najbliższych niespełniających warunkach. Funkcja zwraca parametry, z ostatniego pasującego dopasowana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - podczas wyszukiwania od tyłu, do jakiego punktu ma wyszukiwać,
* {{Code|liczba_obiekt_start_nowe}} - jak w: {{LinkPatrz|liczba_obiekt_start_nowe}}, wykorzystywane w funkcji: {{linkPatrz|AnalizowanieSekcjowe}}, do sprawdzania pomiędzy znakami: końcem wyszukiwanego nagłówka, wraz ze znakiem nowej linii, a tą zmienną, do sprawdzania, czy tekst rozdziału spełnia ściśle określone normy określone przez tą funkcję, jest to pozycja taka na jaką wskazuje również pozycja jakaś artykularna, prze którym sprawdzamy tą funkcją tekst,
* {{Code|liczba_obiekt_start_spac_par}} {{Patrz|liczba_obiekt_start_spac_par}} - numer znaku, od którego ma wyszukiwać od tytułu pewne linie,
* {{Code|czy_dodatni}} {{Patrz|czy_dodatni}} - typ wyszukiwania rozdziałów, tzn. {{LinkZobaczTeż|czy_dodatni}},
* {{Code|czy_bez_naglowka}} {{Patrz|czy_bez_naglowka}} - czy ma wyszukiwać do: {{Code|1}}, od tytułu, a nie do: {{LinkPatrz|liczba_start_rozdzial}},
* {{Code|AnalizowanieSekcjowe}} {{Patrz|AnalizowanieSekcjowe}} - to nic innego jest, jak funkcja inicjowana przez zwracaną procedurę przez: {{LinkŚródtytuł|p.AnalizowanieSekcjowe}}, która ma w sobie pewne elementy początkowe w sobie wsadzonych jako parametry, które są wykorzystywane prze obiekt przez nią zwracany, która coś robi.
; Typy dopasowywania rozdziałów paarametru{{dk}} {{nobold|czy_dodatni {{Code|{{=}}}} {{LinkPatrz|czy_dodatni}} {{ZobaczTeż|czy_dodatni}}}}{{dk}}
* {{Code|1}} - wyszukuje rozdziały wskazywane przez funkcję: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}},
* {{Code|2}} - wyszukuje pozycje list zaczynające się od znaków: {{Code|<nowiki>[%*#:;<>]+</nowiki>}}, jako pewne rozdziały, które trzeba wyszukać,
* Inna wartość niż dwie powyższe - wtedy są wyszukiwane rozdziały niezaczynające się od: {{Code|<nowiki>[^%*#:;<>\n]</nowiki>}}, i kończące się na dwukropek.
: Dla dwóch ostatnich powyższych punktów są wyszukiwane linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
: Funkcja dla tych dwóch pierwszych sprawdza, tylko raz, czy to jest rozdział spisu treści wskazywaną przez funkcję: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, jeżeli parsowanie przeszło niepomyślnie, a funkcja {{LinkPatrz|AnalizowanieSekcjowe}} zrzuci wartość prawdziwą, wtedy ta cała funkcja z nagłówka zrzuca wartość logiczną fałszywą. Ta funkcja wykorzystuje wartość: {{LinkPatrz|liczba_obiekt_start_nowe}}, jako drugi parametr, dla którego liczy ona tekst przed, ta zmienna może wskazywać na początek pozycji linii artykularnej (z artykułami), aby ona policzyła swoją wartość.
Funkcja działa w pętli do zakończenia zasobu danych lub w inny sposób, ale też do zakończenia. Funkcja wtedy robi operacje zawsze dla {{LinkPatrz|czy_dodatni}} równe {{Code|1}} lub dla tych, gdzie: {{LinkŚródtytuł|p.CzyTamElementyNieSpisoweArtykularne|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, zwraca wartość logiczną prawdziwą, własnie dla tego, jeśli ta operacja zwróci prawdę, to dla tego są dopasowywane elementy zwracane. Wtedy wiadomo, że wyszukane tak pozycje są rozdziałami.
Funkcja zwraca wyniku w postaci wartości szegu zwracanych:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej;
</syntaxhighlight>
Wytłumaczenie tych elementów zrzuconych przez nią dla dopasowań, licząc od tyłu:
; Ostanie dopasowanie nagłówka pasujące, gdy tekst jego rozdziału jest równy znakom odstępu lub jest pusty{{dk}}
* {{Code|liczba_start_naglowek}} - początek ostatniego wyszukanego takiego nagłówka,
* {{Code|liczba_koniec_naglowek_poczt}} - koniec pierwszego wyszukanego nagłówka,
* {{Code|naglowek}} - wartość nagłówka dla tego ostatniego dopasowania,
* {{Code|poziom_naglowka}} - poziom takiego nagłówka,
; Niepasujący nagłówek, wyszukane pierwsze z kolei po pasującym{{dk}}
: Według wartości zwracanych powyższych w pierwszej kolejności, dla którego tekst rozdziału nie jest równa znakom odstępu i nie jest pusty:
* {{Code|liczba_start_naglowek_dalej}} - początek po pasującym tak nagłówku,
* {{Code|liczba_koniec_naglowek_dalej}} - a tutaj jego koniec,
* {{Code|naglowek_dalej}} - wartość tekstu napisu wprowadzenia tekstu,
* {{Code|poziom_naglowek_dalej}} - tutaj jego poziom.
W przypadku nieznalezienia takich nagłówków funkcja nie zwraca niczego.
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
Funkcja służy do zaawansowanego szukania, od tyłu, nagłówków w przeciwieństwie do: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, która służy przede wszystkim do szukania sekcji kolejnych jednego rodzaju, a ta funkcja znajduje się w postaci wielu typów, ona wie, że w tekście może być równy układ nagłówków różnych typów.
Funkcja wyszukuje od tyłu, znajduje parametry ostatniego nagłówka i je zwraca, jeżeli je znalazł, a jeśli nie, to nie zwraca żadnej wartości, tylko funkcja się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Jedynie funkcja nie ma parametru: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, ponieważ ta funkcji nie szuka kolejnych rozdziałów tylko jednego rodzaju, lecz wielu.
=== {{Śródtytuł|str_spacja_lub_zerowy_naglowek}}{{Code|str_spacja_lub_zerowy_naglowek}} ===
Dla każdej takiej niepustej linii, sprawdzane jest, czy to są linie z odstępami lub nie będące elementami listy, ale w sposób rozszerzony, tzn. ten początek nie może składać się z pewnych znaków, czyli: {{Code|<nowiki>^[^%*#:;<>\n]</nowiki>}}.
Funkcja sprawdza, czy liczba takich linii, jest taka sama, ile jest niepustych linii, wtedy funkcja zwraca wartość logiczną prawdziwą, przeciwnie wartość nilową.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local str_spacja_lub_zerowy_naglowek=function(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do sprawdzenia.
=== Ciąg dalszy opisu funkcji ===
; Etapy dopasowania ostatniego dopasowania rozdziałów, jego pozycja w tekście i jego napis wprowadzenia tekstu
* Etap ogólny
Funkcja najpierw wyszukuje rozdziały poprzez wskazanie przez funkcję: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, a jeżeli znalazł artykuł, o niepustych secjach pomiędzy ostatnim wskazanym artykułen (przed artykułem), a rozdziałem, wtedy ta funkcja zwraca wartość logiczną fałszywą i zwraca wartość nilową, czyli nic nie zwraca, i funkcja się zakańcza, i wskazuje, że nie znalazł takiego nagłówka, to się dzieje pod warunkiem, że funkcja: {{LinkPatrz|AnalizowanieSekcjowe}}, została podana, w przeciwnym wypadku, to już tak się nie dzieje, a nagłówek z tego wywołania mógł być znaleziony, ale nie musiał.
; Etapy alternatywy
* Pierwszy etap
** To dotyczy, że znalazł ostatnie dopasowanie, ale niepasującego nagłówka przed nim nie ma.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli tego nie znalazł, wtedy przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, w pętli nieskończonej, najpierw dla parametru: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, najpierw jest to pierwsze, a później to drugie, jeśli z tego pierwszego zostało wykonana komenda przerwania pętli, to drugie dopasowanie nie zostanie wykonane w danym obiegu jego, normalnie, bez tego są dwa wywołania.
W każdym takim wywołaniu i dopasowaniu, w pierwszym, czy drugim, będzie sprawdzane, czy tego dokonano, czy taki nagłówek znaleziono, a jeśli tak, to sprawdzany jest tekst pomiędzy ostatnim końcem w wykrytym nagłówku, a początkiem tego przedostatniego, lub z etapu ogólnego, funkcją: {{LinkŚródtytuł|str_spacja_lub_zerowy_naglowek}}, jeżeli funkcja zwróciła wartość logiczną odpowiadającej fałszywej, to pętla jest przerywana, w przeciwnym wypadku są inicjowane parametry tego dopasowania, które przygotowuje ona zwrócić do funkcji w nagłówku.
: Ogólnie po drugim taki wywołaniu następuje sprawdzenie parametrów zwróconych:
Jeżeli w ostatnim takim wywołaniu w tym funkcja zwraca niedopasowanie, wtedy zwracane jest przerywanie pętli, wtedy mamy parametry ostatniego dopasowania, jeśli istnieją takie.
* Drugi
** To dotyczy, że takiego dopasowania pasującego nie znalazł.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli to znalazł, to wyszukany stąd nagłówek jest rozwijany przy pomocy funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}. Jeżeli parser funkcji nie wykrył wykrzyknika na końcu takiego nagłówka, wtedy jest sprawdzane przy pomocy iteratora w zakodowanym tekście przy pomocy: {{Code|{{m|Szablonowe}}}}, na podstawie: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, czy w nagłówku istnieje artykuły bieżącej ksiązki, czy analizowanej, i czy to nie jest okładka, czy strona niedozwolona. Jeżeli wykryto takie artykuły, lub pętla nie została wykonana, bo nie ma takich wykrytym nagłówku kodów, to funkcja inicjuje parametry zwracanych wartości przez funkcję w nagłówku.
* Trzeci
** To dotyczy pozostałych przypadków, w którym znalazł ostatnie dopasowanie, a niepasujące przed nim też znalazł.
Jest wywoływane wywołanie: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, najpierw w pierwszym wywołaniu dla: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, a w każdym takim wywołaniu po jest sprawdzane, czy tekst pomiędzy końcem ostatniego wykrytego nagłówka, a początkiem przedostatniego nagłówka, a nawet artykułu wykrytego, czyli czy taki tekst rozdziału, czy składa się z samych znaków odstępów, a jeśli tak, to inicjowane są parametry zwracane przez funkcję. Dalej przechodzimy z pierwszego do drugiego wywołania, w którym oba wywołania są podobnie zbudowane.
; Parametry wychodzące z funkcji{{dk}}
* Oto parametry inicjowane przez funkcję w tych powyższych trzech etapach alternatywnych, które na końcu funkcji w nagłówku są zwracane:
: Funkcja zwraca wartości określone przez kod:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka;
</syntaxhighlight>
Wytłumaczenia parametrów zwracanych:
; Parametry określają ostatnie dopasowanie nagłówkowe w wewnątrz funkcji{{dk}}
* {{Code|liczba_start_naglowek}} - początek tego dopasowania,
* {{Code|liczba_koniec_naglowek}} - jego koniec,
* {{Code|naglowek}} - wartość napisu wprowadzenia tekstu nagłówka,
* {{Code|poziom_naglowka}} - poziom tego nagłówka.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
Funkcja służy do wyszukiwania, od tyłu, pozycji artykularnej przed wykrytym ostatnim rozdziałem, lub gdy nie ma rozdziałów, to liczy pozycję tylko artykularną, lub nawet pozycji rozdziałów zerowych spisu treści albo nawet tych z dwukropkiem na końcu danej linii, i szuka od tyłu takie coś, by to uznać za początek spisu treści wyciętej z tekstu zakodowanego spisu, czyli ogólnie mówiąc funkcja szuka dalej takiego początku dalszego.
Funkcja służy też do wydzielania części spisu spełniające powyższe kryteria, aby można było ją parsować przez inne funkcje '''Stronicowego parsera''', do wydzielania dalszych rozdziałów, a z nich wydzielania nagłówków (napisów wprowadzenia tekstu) i tekstów rozdziałów.
Funkcja pętluje przy wykrytych liniach składających się z odstępów, a się zatrzymuje na normalnych danych lub po zakończeniu zasobów.
Główny opis funkcji {{ZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}:
* Funkcja działa w oętli nieskończnonej, aż do zakończenia danych, lub do zwrócenia elementów przez nią,
* W tej pętli funkcja wyszukuje kolejne linie, które nie są pozycjami listy, z którego wyodrębiona linia jest analizowana bez przerwy, jeżeli istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje parametry:
** {{Code|liczba_start}} {{Patrz|liczba_start}} - od której pozycji od tyłu ma wyszukiwać pozycje artykularne,
** {{Code|czy_dalej_rozdzial}} {{Patrz|czy_dalej_rozdzial}} - czy {{ZobaczTeż|czy_dalej_rozdzial}} uznać za pierwszeństwo, w przypadku wykrytego rozdziału dodatniego w linii, lub nie wykrycia takiej linii, która nie jest częścią listy, wtedy jest ważny element (zmienna) {{LinkPatrz|liczba_start}}, przeciwnie jest brane, coś przeciwnego,
** {{Code|liczba_pierwszy_rozdzialowy_artykul}} - jak w: {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}}.
Parametry {{ZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}} zwracane przez funkcję, które są zwracane kolejno w niej na końcu jej działania:
* Początek takiego punktu, uzyskanym w końcu na końcowym obiektu pętli (wyjaśnienie w tekście),
* Liczba znaków odstępów wykrytych poczasz wszystkich obiektów pętli (jest to reprezzentowane przez: {{Code|liczba_spac}} {{Patrz|liczba_spac}}),
* Czy ta tak, uzyskana i zwrócona, linia jest rozdziałem spisu treści (jest to reprezentowane przez: {{Code|czy_spis}} {{Patrz|czy_spis}}).
Etapy zwracania przez funkcję elementów:
; Uzyskanie linii według ogólnego wzoru
* Według {{LinkZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}, tą linia, byłoby takie coś pomiędzy ewentualnie znakami nowymi liniami, która spełnia wzór: {{Code|<nowiki>([^%*#:;<>\n][^\n]*)</nowiki>}}. To wyszukiwanie jest według funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wyszukujący w sposób ogólny linie, niezależnie jak są one realizowane w tekście.
; Początek i koniec uzyskanej linii według powyższego sposobu{{dk}}
* Początek i koniec przechwyconej linii, to są pewne liczby, wraz ze znakami nowej linii, jeśli po któreś stronie istnieją, lub nawet gdy to są w tym elementy, początku lub końca, tekstu, wtedy długość tych elementów jest zero.
; Brak dopasowania linii
* A jeżeli dopasowanie tej linii nie zgłasza niedopasowania, wtedy przy prawdziwości zmiennej: {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według: {{LinkZobaczTeż|czy_dalej_rozdzial}}, zwracane jest: {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie, wartość minimalną, pomiędzy tą zmienną a inną {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}} (jeśli ta zmienna nie istnieje, to domyślnie ma wartość {{Code|1}}).
; Rozdział równaniowy{{dk}}
* Jeżeli tą linią jest rozdział równaniowy, to zwracane jest, jeżeli wartość {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według {{LinkZobaczTeż|czy_dalej_rozdzial}}, ma wartość fałszywą, wtedy jest to dopasowanie końca tej linii, w pierwszym parametrze zwracanym, wraz z innymi danymi, według {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}, a jeżeli ta wartość jest prawdą, to zwracane jest {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, bo w tej funkcji nie ma prawa takich rozdziałów dopasowywać.Ma dopaasowywać tylko normalne linie niebędące pozycjami listy.
; Pierwsze rozgałęzenie specjalne instrukcji warunkowej{{dk}}
: Znaki odstępów - linia to białe znaki:
* Jeżeli linia istnieje i składa się z samych znaków odstępów, to liczmy długość tych znaków, wraz z nowymi liniami po prawej lub lewej stronie, jeśli istnieją, i wsadzamy to do ogólnego licznika {{Code|liczba_spac}} {{LinkPatrz|liczba_spac}}, która jest zwracana na końcu działania funkcji, jako drugi parametr w: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}. Funkcja wykonuje tych okrążeń pętli tyle, ile jest kolejnych linii składających się z tych znaków.
; Przypadek istnienia linii nie składającej się ze znaków odstępów{{dk}}
: Rozdział spisu treści i rozdział zerowy:
* Jeśli linia jest spisem względem {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przyjmuje wartość początkowi takiej ustalonej linii w tekście, a {{Code|czy_spis}} {{LinkPatrz|czy_spis}} przyjmuje wartość prawdziwą.
* A jeśli tak nie jest, to sprawdzamy, czy przed tą linią jest rozdział zerowy na podstawie funkcji: {{LinkŚródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}. Jeżeli ona jest tym rozdziałem, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma już nową wartość, przeciwnie, jeśli ta linia ma na końcu dwukropek, to ta wartość nowa jest równa początkowi wyszukania tej linii, a jeśli nie, to końcowi. Zmienna, czy jest rozdział spisu {{Code|czy_spis}} {{LinkPatrz|czy_spis}} ma wartość prawdziwą, gdy ten rozdział zerowy istnieje, a jeśli nie, to fałszywą.
; Przypadek istnienia, lub nie, rozdziału zerowego{{dk}}
* Jeśli znaleziono taki rozdział (zerowy), to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, to wtedy nie ma żadnych dodatkowych instrukcji do wykonania.
* Punkty zwracania zmiennych, jeśli przeciwnie do poprzedniego:
** Jeśli znaleziono taki spis, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma wartość początkowi takiej linii
** A jeżeli przeciwnie, nie ma w nim kodów, to końcowi, jeśli wyszukana linia nie jest rozdziałem z dwukropkiem na końcu, a jeśli jest, to początkowi tej linii,
*** Wtedy ją, tą uzyskaną z obliczeń, trzeba wliczać w ramach wydzielonego spisu, wtedy zmienna {{Code|czy_spis}} jest prawdą,
** A jeśli jednak ma je, wtedy, czy linia ma pozycje artykularne, które nie są okładkami lub stronami niedozwolonymi, a jeśli tak jest, na podstawie wywołania funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, to zwracany jest początek wyszukania takiej linii w tej zmiennej, przeciwnie powtarzana jest ta wartość.
*** Wtedy, gdy linia nie ma takich artykułów, wtedy jeśli ona ma dwukropek na końcu, wtedy ustalamy zmienną {{Code|czy_spis}} na prawdę.
: Na samym końcu zwracane jest to wszystko w postaci parametrów: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}.
== {{Śródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}{{Code|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}} ==
Funkcja wyszukuje, czy dla obiektu o typie {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} o numerze liczbowym {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} - nie jako łańcuch znakowy, dla ich generowanego odpowiednika {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, generowanego z {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, są linki w zależności od podanej zmiennej {{LinkPatrz|czy_wszystkie_linki}}, a jeżeli tam nie ma linków, to przeszukiwany jest {{LinkPatrz|dalszy_tekst}} w ich poszukiwaniu, którymi zrządzą prawa w zależności od przyporządkowanej zmiennej {{LinkPatrz|czy_nieoddzielone}}, wartość prawdziwa tej zmiennej, włącza dowolność układu obiektów typu: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}.
Funkcja wyszukuje w linii, ale najwierw w: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, a później w: {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, jeżeli w poprzednim nie znalazł, pierwszego takiego linku przyporządkowagp, któremuś z tych obiektów, i przy pierwszym wykryciu zwraca wartość, ale dany obiekt uwwzględniany względem tego poprzedniegomusi spełniać prawa lub nie, w zależności od podanej zmiennej {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieLinkuWeSzablonieOrazDalszymNapisie(obiekt,kod,dalszy_tekst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_oddzielone,czy_wszystkie_linki)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}}, {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|czy_nieoddzielone}} {{Patrz|czy_nieoddzielone}} - czy linki mają być oddzielone interpunkcją, czy odstępami, w przypadu przeciwnym, jeżeli tak nie jest, to funkcja zwraca wartość fałszywą,
** {{Code|czy_wszystkie_linki}} {{Patrz|czy_wszystkie_linki}} - czy uwzględniaj wszystkie linki, czy tylko artykuły, nie okładki, (dozwolone), danej książki,
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy tekst, do przeszukiwania linkowego.
Funkcja zwraca wartość logiczną, jeżeli prawa linkowe tekstu są przyporządkowane przez zmienne: {{LinkPatrz|czy_nieoddzielone}} i {{LinkPatrz|czy_wszystkie_linki}}, to jeśli znalazłeś takie linki, to zwracaj wartość prrawdziwą, a jeśli nie, to fałszywą.
Jeśli zmienna {{LinkPatrz|czy_nieoddzielone}} przyjmuje wartość fałszywą, to te rozważane obiekty, muszą być oddzielone pewnymi znakami, tutaj: {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, a jak nie spełniają tego warunku, to funkcja zwraca wartość fałszywą, w innym wypadku dalej liczy i sprawdza.
== {{Śródtytuł|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}}{{Code|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}} ==
Funkcja jest rozszerzeniem funkcji: {{LinkŚródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}, dla ustalonych dwóch ostatnich zmiennych, które przyjmują wartość {{Code|true}} (prawdziwą), o nazwach: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}} i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, dla tej funkcji, mamy już zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, i {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, a funkcja w nagłówku je ustala, w wyniku działania w pętli.
Funkcja wyszukuje, od tyłu, w tekście, nabliższej pozycji typu: {{Code|SZABLON}}, {{Code|LINKW}} lub {{Code|LINKZ}}, w danej linii, i zwraca odpowiednio dwie wartości, pozycje wykrytą i wartość logiczną powodzenia, w innym przypadku, pozycję poczatkową z drugim parametrem fałszem.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako arguementy:
** {{Code|liczba_start_rozdzial}} - jak w: {{LinkPatrz|liczba_start_rozdzial}}, pozycja wyszukiwania końcowa,
** {{Code|liczba_spisowa}} {{Patrz|liczba_spisowa}} - pozycja wyszukiwania początkowa.
Parametry zwracane:
* Pierwszy parametr:
** Pozycja, w którym taką pozycję określona przez funkcję znaleziono, drugi parametr wtedy przyjmuje prawdę, jeśli nie znaleziono, takiej pozycji, to ta pozycja przymuje wartość początkową, adrugi parametr jest fałszem,
* Drugi parametr:
** Czy elementy są odzielone od sibie pewnymi znakami, według tej dokumentacji, i czy to są linki artykułów nieokładkowych dozwolonych, w najbliższej linii, wtedy zwraca w drugim parametrze prawdę, w przecciwnym wypadku, w przypadku znalezienia obiektu w najbliższej linii z: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, ale nie wykryto odpowiwdnich linków, według wspomnianej funkcji, wtedy zwracony ten paramtr będzie fałszem, kub do wyczerpania zasobów, też odpowiadającej fałśzowi,
Funkcja wyszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wykorzystując, że tekst jest zakodowany, i znajduje one przy pomocy wyrażenia regularnego generowanego przez: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, na podstawie kodu, którego fragment jest napisany tutaj:
<syntaxhighlight lang="lua">
local liczba_spisu=liczba_spisowa;
local szablonowe_modul=require("Module:Szablonowe");
---- Ustalenie wzoru kodowania, czyli jest to dowolny kod;
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu()
while(true)do
---- Wyszukuje dowolną linię według wyrażenia regularnego podanego w kodzie, zawartą całkowicie w linii;
local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
</syntaxhighlight>
Fukcja sprawdza, czy dokonano sprawdzenia, jeśli pozytywnie ono przeszło, to musi istnieć zmienna {{Code|liczba_linki_nierozdzialowe_szablonu}} {{Patrz|liczba_linki_nierozdzialowe_szablonu}} oraz musi być spełniona alternatywa dwóch warunków: {{Code|przed_tekst}} {{Patrz|przed_tekst}} musi być puste lub ma spełniać warunek według wzoru: {{Code|<nowiki>^[%p%s%d%.]*$</nowiki>}}.
Jeżeli funkcja nie dopasowała kodu: {{Code|obiekt_szablon}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, do wartości: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, to działa w pętli aż dopasuje je, aż do zakończenia zasobu danych dostępnych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, jeżeli nie mogła by tego zrobić. A jeśli je dopasowała, to sprawdza, czy te kody są odpowiednimi obiektami, ewentualnie oddzielonych od siebie znakami {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, poprzez sprawdzanie funkcją wspomnianą w nagłówku. Jeśli ta funkcja zwróci wartość prawdziwą, to zwrócone zostaną parametry:
<syntaxhighlight lang="lua">
return liczba_linki_nierozdzialowe_szablonu,true;
</syntaxhighlight>
W innych przypadkach, jeżeli takiego dopasowania nie znalazła, to zwróć szereg wartości:
<syntaxhighlight lang="lua">
return liczba_spisowa,false;
</syntaxhighlight>
W tym przypadku wartość {{Code|liczba_spisowa}} {{LinkPatrz|liczba_spisowa}}, to nic innego jak ostatni argument naszej funkcji, czyli w przypadku niepowoddzenia dopasowania, zwracana jest wartość ta początkowa, zdrugą wartością, że niezaleziono poszukiwanego obiektu.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowychZakresowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowychZakresowych}} ==
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowychZakresowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_pierwszy_rozdzialowy_artykul,liczba_przed_rozdzialem,liczba_start_naglowek_przed,czy_znajdz)...end;
</syntaxhighlight>
Parametry funkcji:
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
f1fx3cjlbki2qivp0c6m184vabs6dwp
554543
554542
2026-09-05T19:50:39Z
Persino
2851
/* {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} */
554543
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
Jest to funkcja do sprawdzania tekstu zawartości (tekstu rozdziału, bez zawartości nagłówka) napisu wprowadzenia tekstu sekcji, za pomocą funkcji zwracanej, czy ona spełnia pewne określone warunki.
Funkcja, gdy co jest nie tak, to zwraca wartość {{Code|true}}, i przy okazji może zerować pewne określone zmienne, jeśli ona przy tym została odpowiednio ustawiona, przeciwnie ona zawsze zwraca wartość {{Code|nil}}, czyli nie zwraca żadnej wartości.
Za pomocą tej funkcji można sprawdzić, czy funkcja zawiera niedozwolone znaki wikikodu, i dlatego zwraca tą prawdziwość.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe)
... ---- ciało funkcji zwracanej
end;
end;
</syntaxhighlight>
Parametry ogólne funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|czy_zeruj}} {{Patrz|czy_zeruj}} - czy ma zerować, ścisle określone zmienne, które mieszczą się w niezerowej tablicy zmiennych składowych, tzn. w: {{LinkPatrz|tab_zmienne}},
* {{Code|tab_zmienne}} {{Patrz|tab_zmienne}} - zmienne w nim do zerowania,
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Parametry funkcji zwracanej dla tekstu rozważanego {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}:
* {{Code|liczba_koniec_naglowek}} {{Patrz|liczba_koniec_naglowek}} - numer znaku, po którym coś rozważamy,
* {{Code|liczba_obiekt_start_nowe}} {{Patrz|liczba_obiekt_start_nowe}} - numer znaku, przed którym coś rozważamy.
Funkcja zwracana sprawdza, czy zmienne: {{LinkPatrz|liczba_koniec_naglowek}} i {{LinkPatrz|liczba_obiekt_start_nowe}}, istnieją, i te zmienne sugerują punkty znakowe w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, ale jeżeli te zmienne liczbowe punktów znakowych mają takie wartości, że nie da się znaleźć dla tej zmiennej tekstowej treści pomiędzy nimi, to ta funkcja nie zwraca żadnej wartości, to zachodzi, kiedy nie jest spełniony warunek:
<syntaxhighlight lang="lua">
if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then
</syntaxhighlight>
* Liczenie zmiennej tekstowej za pomocą, którą będziemy sprawdzać:
A jeżeli jest jednak tak, tzn. spełniony jest jednak ten warunek, to znajduje taki tekst, robi to za pomocą funkcji: {{LzLua|mw.ustring.sub}}, i zapisuje to pod zmienną {{Code|str}} {{Patrz|str}}.
{{Hr}}
* Pierwszy etap analizowania tej zmiennej, czy jest poprawna, tzn. czy nie zwraca żadnej wartości, ale czy się zakańcza:
** Następnie sprawdza, czy ona jest w cudzysłowach, tzn. czy spełnia warunek: {{Code|<nowiki>^%s*'+(.+)'+%s*$</nowiki>}}, lub czy początek zaczyna się od znaków: {{Code|<nowiki>^[%*#:;<>]+</nowiki>}}, lub czy ten tekst zawiera dozwolone znaki z przedziału: {{Code|<nowiki>^[%s%p%w]*$</nowiki>}} - tzn. czy tekst składa się ze znaków odstępu, interpunkcyjnych, znaków alfanumerycznych lub z dolnym myślników, jeżeli któreś z tych warunków jest spełnione, to funkcja nie zwraca żadnej wartości, ale zatrzymuje się, tzn. zakańcza się, to oznacza, że wszystko jest w porządku. A jeżeli nie spełnione z żadnych z tych warunków, to ona idzie dalej, i robi następne czynności następne, aby sprawdzić dalsze warunki, czy wszystko jest w porządku.
{{Hr}}
* Sprawdzanie niepustych linii po liniach, ewentualnie składających się ze znaków odstępów:
** Funkcja liczy ile takich linii znalał, zapisuje to pod zmienną {{Code|ile}} {{Patrz|ile}}, jeśli wśród takich linii znalazł linie pasujące do: {{Code|<nowiki>^[%*#;:<>]</nowiki>}}, lub składające się znaków odstępów: {{Code|<nowiki>^%s*$</nowiki>}}, wtedy funkcja to liczy licznikiem: {{Code|ile_punktowanych}} {{Patrz|ile_punktowanych}}.
{{Hr}}
Funkcja w tak wyszukanych liniach w przeciwnym razie sprawdza, w liniach niepasujących do tych wzorów, czy tam są artykuły (strony) nie z rozważanej danej książki, przy pomocy funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}} {{Patrz|p.CzyGeneralnieElementSpisuRzeczy}}, jeśli są takie elementy, to funkcja dodaje to do licznika {{LinkPatrz|ile_punktowanych}}, aby dodać jeden do licznika, dla każdej takiej linii funkcja sprawdza, czy przynajmniej jeden taki artykuł się znajduje tam, w każdej takiej wykrytej linii.
Jeśli liczba określona przez zmienną: {{LinkPatrz|ile_punktowanych}}, jeżeli jest co najmniej równa wyszukanym liniom {{LinkPatrz|ile}}, to funcja się zatrzymuje, i nie zwraca żadnej wartości, czyli wskazuje na powodzenie.
{{Hr}}
* Zerowanie się pewnych wartości:
** Funkcja z tak policzonego {{LinkPatrz|str}} usuwa formy kodów z obiektami {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, a jeżeli znalazł w nim same, wtedy znaki odstępów, to ona nie zwraca żadnej wartości, ale się zakańcza, przeciwnie, sprawdza, czy jest zmienna: {{LinkPatrz|czy_zeruj}}, która jest prawdziwa, a jeśli tak, to elementy zmiennej {{LinkPatrz|tab_zmienne}} są nilowane, tzn. podzmienne o kluczach:
* {{Code|liczba_nie_okladka_artykul}} {{Patrz|liczba_nie_okladka_artykul}} - liczba pozycji sekcji wskazująca, czy istnieje pierwszy taki artykuł (nie okładka, nie strona niedozwolona) aktualnej książki, lub bezpośrednio taki artykuł, niekoniecznie tej książki, czy znajduje się bezpośrednio w pozycji sekcji, i tylko sam tam się znajduje,
* {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{Patrz|liczba_pierwszy_rozdzialowy_artykul}} - liczba pozycji sekcji, która wskazuje na pierwszy taki wykryty artykuł, licząc od przodu, który spełnia pewne ścisle okreslone kryteria, jest to dowolny artykuł,jaki może być w książce,
: Kryteria określone przez te zmienne powyżej są określone przez funkcję: {{LinkPatrz|p.CzyGeneralnieElementSpisuRzeczy}},
* {{Code|czy_ten_rozdzial}} {{Patrz|czy_ten_rozdzial}} - wartość prawdziwą wskazuje, czy wynilowano zmienne należące do rozważanej tablicy.
Ale niezależnie od wartości {{LinkPatrz|czy_zeruj}}, funkcja wtedy zwraca zawsze wraca wartość {{Code|true}}, czyli ona zwraca to niepowodzenie.
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
Funkcja wyszukuje, od tyłu, kolejne rozdziały (napisy wprowadzenia tekstu), którego tekst rozdziału składa się z samych znaków odstępów, lub jest pusty, albo o poziomie wyższym rozdziałowo, nawet gdy jego tekst rozdziału jednak nie jest pusty.
Funkcja jest przerywana po najbliższych niespełniających warunkach. Funkcja zwraca parametry, z ostatniego pasującego dopasowana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - podczas wyszukiwania od tyłu, do jakiego punktu ma wyszukiwać,
* {{Code|liczba_obiekt_start_nowe}} - jak w: {{LinkPatrz|liczba_obiekt_start_nowe}}, wykorzystywane w funkcji: {{linkPatrz|AnalizowanieSekcjowe}}, do sprawdzania pomiędzy znakami: końcem wyszukiwanego nagłówka, wraz ze znakiem nowej linii, a tą zmienną, do sprawdzania, czy tekst rozdziału spełnia ściśle określone normy określone przez tą funkcję, jest to pozycja taka na jaką wskazuje również pozycja jakaś artykularna, prze którym sprawdzamy tą funkcją tekst,
* {{Code|liczba_obiekt_start_spac_par}} {{Patrz|liczba_obiekt_start_spac_par}} - numer znaku, od którego ma wyszukiwać od tytułu pewne linie,
* {{Code|czy_dodatni}} {{Patrz|czy_dodatni}} - typ wyszukiwania rozdziałów, tzn. {{LinkZobaczTeż|czy_dodatni}},
* {{Code|czy_bez_naglowka}} {{Patrz|czy_bez_naglowka}} - czy ma wyszukiwać do: {{Code|1}}, od tytułu, a nie do: {{LinkPatrz|liczba_start_rozdzial}},
* {{Code|AnalizowanieSekcjowe}} {{Patrz|AnalizowanieSekcjowe}} - to nic innego jest, jak funkcja inicjowana przez zwracaną procedurę przez: {{LinkŚródtytuł|p.AnalizowanieSekcjowe}}, która ma w sobie pewne elementy początkowe w sobie wsadzonych jako parametry, które są wykorzystywane prze obiekt przez nią zwracany, która coś robi.
; Typy dopasowywania rozdziałów paarametru{{dk}} {{nobold|czy_dodatni {{Code|{{=}}}} {{LinkPatrz|czy_dodatni}} {{ZobaczTeż|czy_dodatni}}}}{{dk}}
* {{Code|1}} - wyszukuje rozdziały wskazywane przez funkcję: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}},
* {{Code|2}} - wyszukuje pozycje list zaczynające się od znaków: {{Code|<nowiki>[%*#:;<>]+</nowiki>}}, jako pewne rozdziały, które trzeba wyszukać,
* Inna wartość niż dwie powyższe - wtedy są wyszukiwane rozdziały niezaczynające się od: {{Code|<nowiki>[^%*#:;<>\n]</nowiki>}}, i kończące się na dwukropek.
: Dla dwóch ostatnich powyższych punktów są wyszukiwane linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
: Funkcja dla tych dwóch pierwszych sprawdza, tylko raz, czy to jest rozdział spisu treści wskazywaną przez funkcję: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, jeżeli parsowanie przeszło niepomyślnie, a funkcja {{LinkPatrz|AnalizowanieSekcjowe}} zrzuci wartość prawdziwą, wtedy ta cała funkcja z nagłówka zrzuca wartość logiczną fałszywą. Ta funkcja wykorzystuje wartość: {{LinkPatrz|liczba_obiekt_start_nowe}}, jako drugi parametr, dla którego liczy ona tekst przed, ta zmienna może wskazywać na początek pozycji linii artykularnej (z artykułami), aby ona policzyła swoją wartość.
Funkcja działa w pętli do zakończenia zasobu danych lub w inny sposób, ale też do zakończenia. Funkcja wtedy robi operacje zawsze dla {{LinkPatrz|czy_dodatni}} równe {{Code|1}} lub dla tych, gdzie: {{LinkŚródtytuł|p.CzyTamElementyNieSpisoweArtykularne|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, zwraca wartość logiczną prawdziwą, własnie dla tego, jeśli ta operacja zwróci prawdę, to dla tego są dopasowywane elementy zwracane. Wtedy wiadomo, że wyszukane tak pozycje są rozdziałami.
Funkcja zwraca wyniku w postaci wartości szegu zwracanych:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej;
</syntaxhighlight>
Wytłumaczenie tych elementów zrzuconych przez nią dla dopasowań, licząc od tyłu:
; Ostanie dopasowanie nagłówka pasujące, gdy tekst jego rozdziału jest równy znakom odstępu lub jest pusty{{dk}}
* {{Code|liczba_start_naglowek}} - początek ostatniego wyszukanego takiego nagłówka,
* {{Code|liczba_koniec_naglowek_poczt}} - koniec pierwszego wyszukanego nagłówka,
* {{Code|naglowek}} - wartość nagłówka dla tego ostatniego dopasowania,
* {{Code|poziom_naglowka}} - poziom takiego nagłówka,
; Niepasujący nagłówek, wyszukane pierwsze z kolei po pasującym{{dk}}
: Według wartości zwracanych powyższych w pierwszej kolejności, dla którego tekst rozdziału nie jest równa znakom odstępu i nie jest pusty:
* {{Code|liczba_start_naglowek_dalej}} - początek po pasującym tak nagłówku,
* {{Code|liczba_koniec_naglowek_dalej}} - a tutaj jego koniec,
* {{Code|naglowek_dalej}} - wartość tekstu napisu wprowadzenia tekstu,
* {{Code|poziom_naglowek_dalej}} - tutaj jego poziom.
W przypadku nieznalezienia takich nagłówków funkcja nie zwraca niczego.
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
Funkcja służy do zaawansowanego szukania, od tyłu, nagłówków w przeciwieństwie do: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, która służy przede wszystkim do szukania sekcji kolejnych jednego rodzaju, a ta funkcja znajduje się w postaci wielu typów, ona wie, że w tekście może być równy układ nagłówków różnych typów.
Funkcja wyszukuje od tyłu, znajduje parametry ostatniego nagłówka i je zwraca, jeżeli je znalazł, a jeśli nie, to nie zwraca żadnej wartości, tylko funkcja się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Jedynie funkcja nie ma parametru: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, ponieważ ta funkcji nie szuka kolejnych rozdziałów tylko jednego rodzaju, lecz wielu.
=== {{Śródtytuł|str_spacja_lub_zerowy_naglowek}}{{Code|str_spacja_lub_zerowy_naglowek}} ===
Dla każdej takiej niepustej linii, sprawdzane jest, czy to są linie z odstępami lub nie będące elementami listy, ale w sposób rozszerzony, tzn. ten początek nie może składać się z pewnych znaków, czyli: {{Code|<nowiki>^[^%*#:;<>\n]</nowiki>}}.
Funkcja sprawdza, czy liczba takich linii, jest taka sama, ile jest niepustych linii, wtedy funkcja zwraca wartość logiczną prawdziwą, przeciwnie wartość nilową.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local str_spacja_lub_zerowy_naglowek=function(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do sprawdzenia.
=== Ciąg dalszy opisu funkcji ===
; Etapy dopasowania ostatniego dopasowania rozdziałów, jego pozycja w tekście i jego napis wprowadzenia tekstu
* Etap ogólny
Funkcja najpierw wyszukuje rozdziały poprzez wskazanie przez funkcję: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, a jeżeli znalazł artykuł, o niepustych secjach pomiędzy ostatnim wskazanym artykułen (przed artykułem), a rozdziałem, wtedy ta funkcja zwraca wartość logiczną fałszywą i zwraca wartość nilową, czyli nic nie zwraca, i funkcja się zakańcza, i wskazuje, że nie znalazł takiego nagłówka, to się dzieje pod warunkiem, że funkcja: {{LinkPatrz|AnalizowanieSekcjowe}}, została podana, w przeciwnym wypadku, to już tak się nie dzieje, a nagłówek z tego wywołania mógł być znaleziony, ale nie musiał.
; Etapy alternatywy
* Pierwszy etap
** To dotyczy, że znalazł ostatnie dopasowanie, ale niepasującego nagłówka przed nim nie ma.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli tego nie znalazł, wtedy przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, w pętli nieskończonej, najpierw dla parametru: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, najpierw jest to pierwsze, a później to drugie, jeśli z tego pierwszego zostało wykonana komenda przerwania pętli, to drugie dopasowanie nie zostanie wykonane w danym obiegu jego, normalnie, bez tego są dwa wywołania.
W każdym takim wywołaniu i dopasowaniu, w pierwszym, czy drugim, będzie sprawdzane, czy tego dokonano, czy taki nagłówek znaleziono, a jeśli tak, to sprawdzany jest tekst pomiędzy ostatnim końcem w wykrytym nagłówku, a początkiem tego przedostatniego, lub z etapu ogólnego, funkcją: {{LinkŚródtytuł|str_spacja_lub_zerowy_naglowek}}, jeżeli funkcja zwróciła wartość logiczną odpowiadającej fałszywej, to pętla jest przerywana, w przeciwnym wypadku są inicjowane parametry tego dopasowania, które przygotowuje ona zwrócić do funkcji w nagłówku.
: Ogólnie po drugim taki wywołaniu następuje sprawdzenie parametrów zwróconych:
Jeżeli w ostatnim takim wywołaniu w tym funkcja zwraca niedopasowanie, wtedy zwracane jest przerywanie pętli, wtedy mamy parametry ostatniego dopasowania, jeśli istnieją takie.
* Drugi
** To dotyczy, że takiego dopasowania pasującego nie znalazł.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli to znalazł, to wyszukany stąd nagłówek jest rozwijany przy pomocy funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}. Jeżeli parser funkcji nie wykrył wykrzyknika na końcu takiego nagłówka, wtedy jest sprawdzane przy pomocy iteratora w zakodowanym tekście przy pomocy: {{Code|{{m|Szablonowe}}}}, na podstawie: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, czy w nagłówku istnieje artykuły bieżącej ksiązki, czy analizowanej, i czy to nie jest okładka, czy strona niedozwolona. Jeżeli wykryto takie artykuły, lub pętla nie została wykonana, bo nie ma takich wykrytym nagłówku kodów, to funkcja inicjuje parametry zwracanych wartości przez funkcję w nagłówku.
* Trzeci
** To dotyczy pozostałych przypadków, w którym znalazł ostatnie dopasowanie, a niepasujące przed nim też znalazł.
Jest wywoływane wywołanie: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, najpierw w pierwszym wywołaniu dla: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, a w każdym takim wywołaniu po jest sprawdzane, czy tekst pomiędzy końcem ostatniego wykrytego nagłówka, a początkiem przedostatniego nagłówka, a nawet artykułu wykrytego, czyli czy taki tekst rozdziału, czy składa się z samych znaków odstępów, a jeśli tak, to inicjowane są parametry zwracane przez funkcję. Dalej przechodzimy z pierwszego do drugiego wywołania, w którym oba wywołania są podobnie zbudowane.
; Parametry wychodzące z funkcji{{dk}}
* Oto parametry inicjowane przez funkcję w tych powyższych trzech etapach alternatywnych, które na końcu funkcji w nagłówku są zwracane:
: Funkcja zwraca wartości określone przez kod:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka;
</syntaxhighlight>
Wytłumaczenia parametrów zwracanych:
; Parametry określają ostatnie dopasowanie nagłówkowe w wewnątrz funkcji{{dk}}
* {{Code|liczba_start_naglowek}} - początek tego dopasowania,
* {{Code|liczba_koniec_naglowek}} - jego koniec,
* {{Code|naglowek}} - wartość napisu wprowadzenia tekstu nagłówka,
* {{Code|poziom_naglowka}} - poziom tego nagłówka.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
Funkcja służy do wyszukiwania, od tyłu, pozycji artykularnej przed wykrytym ostatnim rozdziałem, lub gdy nie ma rozdziałów, to liczy pozycję tylko artykularną, lub nawet pozycji rozdziałów zerowych spisu treści albo nawet tych z dwukropkiem na końcu danej linii, i szuka od tyłu takie coś, by to uznać za początek spisu treści wyciętej z tekstu zakodowanego spisu, czyli ogólnie mówiąc funkcja szuka dalej takiego początku dalszego.
Funkcja służy też do wydzielania części spisu spełniające powyższe kryteria, aby można było ją parsować przez inne funkcje '''Stronicowego parsera''', do wydzielania dalszych rozdziałów, a z nich wydzielania nagłówków (napisów wprowadzenia tekstu) i tekstów rozdziałów.
Funkcja pętluje przy wykrytych liniach składających się z odstępów, a się zatrzymuje na normalnych danych lub po zakończeniu zasobów.
Główny opis funkcji {{ZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}:
* Funkcja działa w oętli nieskończnonej, aż do zakończenia danych, lub do zwrócenia elementów przez nią,
* W tej pętli funkcja wyszukuje kolejne linie, które nie są pozycjami listy, z którego wyodrębiona linia jest analizowana bez przerwy, jeżeli istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje parametry:
** {{Code|liczba_start}} {{Patrz|liczba_start}} - od której pozycji od tyłu ma wyszukiwać pozycje artykularne,
** {{Code|czy_dalej_rozdzial}} {{Patrz|czy_dalej_rozdzial}} - czy {{ZobaczTeż|czy_dalej_rozdzial}} uznać za pierwszeństwo, w przypadku wykrytego rozdziału dodatniego w linii, lub nie wykrycia takiej linii, która nie jest częścią listy, wtedy jest ważny element (zmienna) {{LinkPatrz|liczba_start}}, przeciwnie jest brane, coś przeciwnego,
** {{Code|liczba_pierwszy_rozdzialowy_artykul}} - jak w: {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}}.
Parametry {{ZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}} zwracane przez funkcję, które są zwracane kolejno w niej na końcu jej działania:
* Początek takiego punktu, uzyskanym w końcu na końcowym obiektu pętli (wyjaśnienie w tekście),
* Liczba znaków odstępów wykrytych poczasz wszystkich obiektów pętli (jest to reprezzentowane przez: {{Code|liczba_spac}} {{Patrz|liczba_spac}}),
* Czy ta tak, uzyskana i zwrócona, linia jest rozdziałem spisu treści (jest to reprezentowane przez: {{Code|czy_spis}} {{Patrz|czy_spis}}).
Etapy zwracania przez funkcję elementów:
; Uzyskanie linii według ogólnego wzoru
* Według {{LinkZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}, tą linia, byłoby takie coś pomiędzy ewentualnie znakami nowymi liniami, która spełnia wzór: {{Code|<nowiki>([^%*#:;<>\n][^\n]*)</nowiki>}}. To wyszukiwanie jest według funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wyszukujący w sposób ogólny linie, niezależnie jak są one realizowane w tekście.
; Początek i koniec uzyskanej linii według powyższego sposobu{{dk}}
* Początek i koniec przechwyconej linii, to są pewne liczby, wraz ze znakami nowej linii, jeśli po któreś stronie istnieją, lub nawet gdy to są w tym elementy, początku lub końca, tekstu, wtedy długość tych elementów jest zero.
; Brak dopasowania linii
* A jeżeli dopasowanie tej linii nie zgłasza niedopasowania, wtedy przy prawdziwości zmiennej: {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według: {{LinkZobaczTeż|czy_dalej_rozdzial}}, zwracane jest: {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie, wartość minimalną, pomiędzy tą zmienną a inną {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}} (jeśli ta zmienna nie istnieje, to domyślnie ma wartość {{Code|1}}).
; Rozdział równaniowy{{dk}}
* Jeżeli tą linią jest rozdział równaniowy, to zwracane jest, jeżeli wartość {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według {{LinkZobaczTeż|czy_dalej_rozdzial}}, ma wartość fałszywą, wtedy jest to dopasowanie końca tej linii, w pierwszym parametrze zwracanym, wraz z innymi danymi, według {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}, a jeżeli ta wartość jest prawdą, to zwracane jest {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, bo w tej funkcji nie ma prawa takich rozdziałów dopasowywać.Ma dopaasowywać tylko normalne linie niebędące pozycjami listy.
; Pierwsze rozgałęzenie specjalne instrukcji warunkowej{{dk}}
: Znaki odstępów - linia to białe znaki:
* Jeżeli linia istnieje i składa się z samych znaków odstępów, to liczmy długość tych znaków, wraz z nowymi liniami po prawej lub lewej stronie, jeśli istnieją, i wsadzamy to do ogólnego licznika {{Code|liczba_spac}} {{LinkPatrz|liczba_spac}}, która jest zwracana na końcu działania funkcji, jako drugi parametr w: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}. Funkcja wykonuje tych okrążeń pętli tyle, ile jest kolejnych linii składających się z tych znaków.
; Przypadek istnienia linii nie składającej się ze znaków odstępów{{dk}}
: Rozdział spisu treści i rozdział zerowy:
* Jeśli linia jest spisem względem {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przyjmuje wartość początkowi takiej ustalonej linii w tekście, a {{Code|czy_spis}} {{LinkPatrz|czy_spis}} przyjmuje wartość prawdziwą.
* A jeśli tak nie jest, to sprawdzamy, czy przed tą linią jest rozdział zerowy na podstawie funkcji: {{LinkŚródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}. Jeżeli ona jest tym rozdziałem, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma już nową wartość, przeciwnie, jeśli ta linia ma na końcu dwukropek, to ta wartość nowa jest równa początkowi wyszukania tej linii, a jeśli nie, to końcowi. Zmienna, czy jest rozdział spisu {{Code|czy_spis}} {{LinkPatrz|czy_spis}} ma wartość prawdziwą, gdy ten rozdział zerowy istnieje, a jeśli nie, to fałszywą.
; Przypadek istnienia, lub nie, rozdziału zerowego{{dk}}
* Jeśli znaleziono taki rozdział (zerowy), to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, to wtedy nie ma żadnych dodatkowych instrukcji do wykonania.
* Punkty zwracania zmiennych, jeśli przeciwnie do poprzedniego:
** Jeśli znaleziono taki spis, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma wartość początkowi takiej linii
** A jeżeli przeciwnie, nie ma w nim kodów, to końcowi, jeśli wyszukana linia nie jest rozdziałem z dwukropkiem na końcu, a jeśli jest, to początkowi tej linii,
*** Wtedy ją, tą uzyskaną z obliczeń, trzeba wliczać w ramach wydzielonego spisu, wtedy zmienna {{Code|czy_spis}} jest prawdą,
** A jeśli jednak ma je, wtedy, czy linia ma pozycje artykularne, które nie są okładkami lub stronami niedozwolonymi, a jeśli tak jest, na podstawie wywołania funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, to zwracany jest początek wyszukania takiej linii w tej zmiennej, przeciwnie powtarzana jest ta wartość.
*** Wtedy, gdy linia nie ma takich artykułów, wtedy jeśli ona ma dwukropek na końcu, wtedy ustalamy zmienną {{Code|czy_spis}} na prawdę.
: Na samym końcu zwracane jest to wszystko w postaci parametrów: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}.
== {{Śródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}{{Code|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}} ==
Funkcja wyszukuje, czy dla obiektu o typie {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} o numerze liczbowym {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} - nie jako łańcuch znakowy, dla ich generowanego odpowiednika {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, generowanego z {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, są linki w zależności od podanej zmiennej {{LinkPatrz|czy_wszystkie_linki}}, a jeżeli tam nie ma linków, to przeszukiwany jest {{LinkPatrz|dalszy_tekst}} w ich poszukiwaniu, którymi zrządzą prawa w zależności od przyporządkowanej zmiennej {{LinkPatrz|czy_nieoddzielone}}, wartość prawdziwa tej zmiennej, włącza dowolność układu obiektów typu: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}.
Funkcja wyszukuje w linii, ale najwierw w: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, a później w: {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, jeżeli w poprzednim nie znalazł, pierwszego takiego linku przyporządkowagp, któremuś z tych obiektów, i przy pierwszym wykryciu zwraca wartość, ale dany obiekt uwwzględniany względem tego poprzedniegomusi spełniać prawa lub nie, w zależności od podanej zmiennej {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieLinkuWeSzablonieOrazDalszymNapisie(obiekt,kod,dalszy_tekst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_oddzielone,czy_wszystkie_linki)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}}, {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|czy_nieoddzielone}} {{Patrz|czy_nieoddzielone}} - czy linki mają być oddzielone interpunkcją, czy odstępami, w przypadu przeciwnym, jeżeli tak nie jest, to funkcja zwraca wartość fałszywą,
** {{Code|czy_wszystkie_linki}} {{Patrz|czy_wszystkie_linki}} - czy uwzględniaj wszystkie linki, czy tylko artykuły, nie okładki, (dozwolone), danej książki,
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy tekst, do przeszukiwania linkowego.
Funkcja zwraca wartość logiczną, jeżeli prawa linkowe tekstu są przyporządkowane przez zmienne: {{LinkPatrz|czy_nieoddzielone}} i {{LinkPatrz|czy_wszystkie_linki}}, to jeśli znalazłeś takie linki, to zwracaj wartość prrawdziwą, a jeśli nie, to fałszywą.
Jeśli zmienna {{LinkPatrz|czy_nieoddzielone}} przyjmuje wartość fałszywą, to te rozważane obiekty, muszą być oddzielone pewnymi znakami, tutaj: {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, a jak nie spełniają tego warunku, to funkcja zwraca wartość fałszywą, w innym wypadku dalej liczy i sprawdza.
== {{Śródtytuł|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}}{{Code|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}} ==
Funkcja jest rozszerzeniem funkcji: {{LinkŚródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}, dla ustalonych dwóch ostatnich zmiennych, które przyjmują wartość {{Code|true}} (prawdziwą), o nazwach: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}} i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, dla tej funkcji, mamy już zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, i {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, a funkcja w nagłówku je ustala, w wyniku działania w pętli.
Funkcja wyszukuje, od tyłu, w tekście, nabliższej pozycji typu: {{Code|SZABLON}}, {{Code|LINKW}} lub {{Code|LINKZ}}, w danej linii, i zwraca odpowiednio dwie wartości, pozycje wykrytą i wartość logiczną powodzenia, w innym przypadku, pozycję poczatkową z drugim parametrem fałszem.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako arguementy:
** {{Code|liczba_start_rozdzial}} - jak w: {{LinkPatrz|liczba_start_rozdzial}}, pozycja wyszukiwania końcowa,
** {{Code|liczba_spisowa}} {{Patrz|liczba_spisowa}} - pozycja wyszukiwania początkowa.
Parametry zwracane:
* Pierwszy parametr:
** Pozycja, w którym taką pozycję określona przez funkcję znaleziono, drugi parametr wtedy przyjmuje prawdę, jeśli nie znaleziono, takiej pozycji, to ta pozycja przymuje wartość początkową, adrugi parametr jest fałszem,
* Drugi parametr:
** Czy elementy są odzielone od sibie pewnymi znakami, według tej dokumentacji, i czy to są linki artykułów nieokładkowych dozwolonych, w najbliższej linii, wtedy zwraca w drugim parametrze prawdę, w przecciwnym wypadku, w przypadku znalezienia obiektu w najbliższej linii z: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, ale nie wykryto odpowiwdnich linków, według wspomnianej funkcji, wtedy zwracony ten paramtr będzie fałszem, kub do wyczerpania zasobów, też odpowiadającej fałśzowi,
Funkcja wyszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wykorzystując, że tekst jest zakodowany, i znajduje one przy pomocy wyrażenia regularnego generowanego przez: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, na podstawie kodu, którego fragment jest napisany tutaj:
<syntaxhighlight lang="lua">
local liczba_spisu=liczba_spisowa;
local szablonowe_modul=require("Module:Szablonowe");
---- Ustalenie wzoru kodowania, czyli jest to dowolny kod;
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu()
while(true)do
---- Wyszukuje dowolną linię według wyrażenia regularnego podanego w kodzie, zawartą całkowicie w linii;
local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
</syntaxhighlight>
Fukcja sprawdza, czy dokonano sprawdzenia, jeśli pozytywnie ono przeszło, to musi istnieć zmienna {{Code|liczba_linki_nierozdzialowe_szablonu}} {{Patrz|liczba_linki_nierozdzialowe_szablonu}} oraz musi być spełniona alternatywa dwóch warunków: {{Code|przed_tekst}} {{Patrz|przed_tekst}} musi być puste lub ma spełniać warunek według wzoru: {{Code|<nowiki>^[%p%s%d%.]*$</nowiki>}}.
Jeżeli funkcja nie dopasowała kodu: {{Code|obiekt_szablon}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, do wartości: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, to działa w pętli aż dopasuje je, aż do zakończenia zasobu danych dostępnych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, jeżeli nie mogła by tego zrobić. A jeśli je dopasowała, to sprawdza, czy te kody są odpowiednimi obiektami, ewentualnie oddzielonych od siebie znakami {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, poprzez sprawdzanie funkcją wspomnianą w nagłówku. Jeśli ta funkcja zwróci wartość prawdziwą, to zwrócone zostaną parametry:
<syntaxhighlight lang="lua">
return liczba_linki_nierozdzialowe_szablonu,true;
</syntaxhighlight>
W innych przypadkach, jeżeli takiego dopasowania nie znalazła, to zwróć szereg wartości:
<syntaxhighlight lang="lua">
return liczba_spisowa,false;
</syntaxhighlight>
W tym przypadku wartość {{Code|liczba_spisowa}} {{LinkPatrz|liczba_spisowa}}, to nic innego jak ostatni argument naszej funkcji, czyli w przypadku niepowoddzenia dopasowania, zwracana jest wartość ta początkowa, zdrugą wartością, że niezaleziono poszukiwanego obiektu.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowychZakresowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowychZakresowych}} ==
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowychZakresowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_pierwszy_rozdzialowy_artykul,liczba_przed_rozdzialem,liczba_start_naglowek_przed,czy_znajdz)...end;
</syntaxhighlight>
Parametry funkcji:
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
f8nsl5lvcnuj2no0on8e0znx3dls7zr
554544
554543
2026-09-05T19:52:50Z
Persino
2851
/* {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} */
554544
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
Jest to funkcja do sprawdzania tekstu zawartości (tekstu rozdziału, bez zawartości nagłówka) napisu wprowadzenia tekstu sekcji, za pomocą funkcji zwracanej, czy ona spełnia pewne określone warunki.
Funkcja, gdy co jest nie tak, to zwraca wartość {{Code|true}}, i przy okazji może zerować pewne określone zmienne, jeśli ona przy tym została odpowiednio ustawiona, przeciwnie ona zawsze zwraca wartość {{Code|nil}}, czyli nie zwraca żadnej wartości.
Za pomocą tej funkcji można sprawdzić, czy funkcja zawiera niedozwolone znaki wikikodu, i dlatego zwraca tą prawdziwość.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe)
... ---- ciało funkcji zwracanej
end;
end;
</syntaxhighlight>
Parametry ogólne funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|czy_zeruj}} {{Patrz|czy_zeruj}} - czy ma zerować, ścisle określone zmienne, które mieszczą się w niezerowej tablicy zmiennych składowych, tzn. w: {{LinkPatrz|tab_zmienne}},
* {{Code|tab_zmienne}} {{Patrz|tab_zmienne}} - zmienne w nim do zerowania,
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Parametry funkcji zwracanej dla tekstu rozważanego {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}:
* {{Code|liczba_koniec_naglowek}} {{Patrz|liczba_koniec_naglowek}} - numer znaku, po którym coś rozważamy,
* {{Code|liczba_obiekt_start_nowe}} {{Patrz|liczba_obiekt_start_nowe}} - numer znaku, przed którym coś rozważamy.
Funkcja zwracana sprawdza, czy zmienne: {{LinkPatrz|liczba_koniec_naglowek}} i {{LinkPatrz|liczba_obiekt_start_nowe}}, istnieją, i te zmienne sugerują punkty znakowe w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, ale jeżeli te zmienne liczbowe punktów znakowych mają takie wartości, że nie da się znaleźć dla tej zmiennej tekstowej treści pomiędzy nimi, to ta funkcja nie zwraca żadnej wartości, to zachodzi, kiedy nie jest spełniony warunek:
<syntaxhighlight lang="lua">
if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then
</syntaxhighlight>
* Liczenie zmiennej tekstowej za pomocą, którą będziemy sprawdzać:
: A jeżeli jest jednak tak, tzn. spełniony jest jednak ten warunek, to znajduje taki tekst, robi to za pomocą funkcji: {{LzLua|mw.ustring.sub}}, i zapisuje to pod zmienną {{Code|str}} {{Patrz|str}}.
* Pierwszy etap analizowania tej zmiennej, czy jest poprawna, tzn. czy nie zwraca żadnej wartości, ale czy się zakańcza:
: Następnie sprawdza, czy ona jest w cudzysłowach, tzn. czy spełnia warunek: {{Code|<nowiki>^%s*'+(.+)'+%s*$</nowiki>}}, lub czy początek zaczyna się od znaków: {{Code|<nowiki>^[%*#:;<>]+</nowiki>}}, lub czy ten tekst zawiera dozwolone znaki z przedziału: {{Code|<nowiki>^[%s%p%w]*$</nowiki>}} - tzn. czy tekst składa się ze znaków odstępu, interpunkcyjnych, znaków alfanumerycznych lub z dolnym myślników, jeżeli któreś z tych warunków jest spełnione, to funkcja nie zwraca żadnej wartości, ale zatrzymuje się, tzn. zakańcza się, to oznacza, że wszystko jest w porządku. A jeżeli nie spełnione z żadnych z tych warunków, to ona idzie dalej, i robi następne czynności następne, aby sprawdzić dalsze warunki, czy wszystko jest w porządku.
* Sprawdzanie niepustych linii po liniach, ewentualnie składających się ze znaków odstępów:
: Funkcja liczy ile takich linii znalał, zapisuje to pod zmienną {{Code|ile}} {{Patrz|ile}}, jeśli wśród takich linii znalazł linie pasujące do: {{Code|<nowiki>^[%*#;:<>]</nowiki>}}, lub składające się znaków odstępów: {{Code|<nowiki>^%s*$</nowiki>}}, wtedy funkcja to liczy licznikiem: {{Code|ile_punktowanych}} {{Patrz|ile_punktowanych}}.
Funkcja w tak wyszukanych liniach w przeciwnym razie sprawdza, w liniach niepasujących do tych wzorów, czy tam są artykuły (strony) nie z rozważanej danej książki, przy pomocy funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}} {{Patrz|p.CzyGeneralnieElementSpisuRzeczy}}, jeśli są takie elementy, to funkcja dodaje to do licznika {{LinkPatrz|ile_punktowanych}}, aby dodać jeden do licznika, dla każdej takiej linii funkcja sprawdza, czy przynajmniej jeden taki artykuł się znajduje tam, w każdej takiej wykrytej linii.
Jeśli liczba określona przez zmienną: {{LinkPatrz|ile_punktowanych}}, jeżeli jest co najmniej równa wyszukanym liniom {{LinkPatrz|ile}}, to funcja się zatrzymuje, i nie zwraca żadnej wartości, czyli wskazuje na powodzenie.
{{Hr}}
* Zerowanie się pewnych wartości:
** Funkcja z tak policzonego {{LinkPatrz|str}} usuwa formy kodów z obiektami {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, a jeżeli znalazł w nim same, wtedy znaki odstępów, to ona nie zwraca żadnej wartości, ale się zakańcza, przeciwnie, sprawdza, czy jest zmienna: {{LinkPatrz|czy_zeruj}}, która jest prawdziwa, a jeśli tak, to elementy zmiennej {{LinkPatrz|tab_zmienne}} są nilowane, tzn. podzmienne o kluczach:
* {{Code|liczba_nie_okladka_artykul}} {{Patrz|liczba_nie_okladka_artykul}} - liczba pozycji sekcji wskazująca, czy istnieje pierwszy taki artykuł (nie okładka, nie strona niedozwolona) aktualnej książki, lub bezpośrednio taki artykuł, niekoniecznie tej książki, czy znajduje się bezpośrednio w pozycji sekcji, i tylko sam tam się znajduje,
* {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{Patrz|liczba_pierwszy_rozdzialowy_artykul}} - liczba pozycji sekcji, która wskazuje na pierwszy taki wykryty artykuł, licząc od przodu, który spełnia pewne ścisle okreslone kryteria, jest to dowolny artykuł,jaki może być w książce,
: Kryteria określone przez te zmienne powyżej są określone przez funkcję: {{LinkPatrz|p.CzyGeneralnieElementSpisuRzeczy}},
* {{Code|czy_ten_rozdzial}} {{Patrz|czy_ten_rozdzial}} - wartość prawdziwą wskazuje, czy wynilowano zmienne należące do rozważanej tablicy.
Ale niezależnie od wartości {{LinkPatrz|czy_zeruj}}, funkcja wtedy zwraca zawsze wraca wartość {{Code|true}}, czyli ona zwraca to niepowodzenie.
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
Funkcja wyszukuje, od tyłu, kolejne rozdziały (napisy wprowadzenia tekstu), którego tekst rozdziału składa się z samych znaków odstępów, lub jest pusty, albo o poziomie wyższym rozdziałowo, nawet gdy jego tekst rozdziału jednak nie jest pusty.
Funkcja jest przerywana po najbliższych niespełniających warunkach. Funkcja zwraca parametry, z ostatniego pasującego dopasowana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - podczas wyszukiwania od tyłu, do jakiego punktu ma wyszukiwać,
* {{Code|liczba_obiekt_start_nowe}} - jak w: {{LinkPatrz|liczba_obiekt_start_nowe}}, wykorzystywane w funkcji: {{linkPatrz|AnalizowanieSekcjowe}}, do sprawdzania pomiędzy znakami: końcem wyszukiwanego nagłówka, wraz ze znakiem nowej linii, a tą zmienną, do sprawdzania, czy tekst rozdziału spełnia ściśle określone normy określone przez tą funkcję, jest to pozycja taka na jaką wskazuje również pozycja jakaś artykularna, prze którym sprawdzamy tą funkcją tekst,
* {{Code|liczba_obiekt_start_spac_par}} {{Patrz|liczba_obiekt_start_spac_par}} - numer znaku, od którego ma wyszukiwać od tytułu pewne linie,
* {{Code|czy_dodatni}} {{Patrz|czy_dodatni}} - typ wyszukiwania rozdziałów, tzn. {{LinkZobaczTeż|czy_dodatni}},
* {{Code|czy_bez_naglowka}} {{Patrz|czy_bez_naglowka}} - czy ma wyszukiwać do: {{Code|1}}, od tytułu, a nie do: {{LinkPatrz|liczba_start_rozdzial}},
* {{Code|AnalizowanieSekcjowe}} {{Patrz|AnalizowanieSekcjowe}} - to nic innego jest, jak funkcja inicjowana przez zwracaną procedurę przez: {{LinkŚródtytuł|p.AnalizowanieSekcjowe}}, która ma w sobie pewne elementy początkowe w sobie wsadzonych jako parametry, które są wykorzystywane prze obiekt przez nią zwracany, która coś robi.
; Typy dopasowywania rozdziałów paarametru{{dk}} {{nobold|czy_dodatni {{Code|{{=}}}} {{LinkPatrz|czy_dodatni}} {{ZobaczTeż|czy_dodatni}}}}{{dk}}
* {{Code|1}} - wyszukuje rozdziały wskazywane przez funkcję: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}},
* {{Code|2}} - wyszukuje pozycje list zaczynające się od znaków: {{Code|<nowiki>[%*#:;<>]+</nowiki>}}, jako pewne rozdziały, które trzeba wyszukać,
* Inna wartość niż dwie powyższe - wtedy są wyszukiwane rozdziały niezaczynające się od: {{Code|<nowiki>[^%*#:;<>\n]</nowiki>}}, i kończące się na dwukropek.
: Dla dwóch ostatnich powyższych punktów są wyszukiwane linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
: Funkcja dla tych dwóch pierwszych sprawdza, tylko raz, czy to jest rozdział spisu treści wskazywaną przez funkcję: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, jeżeli parsowanie przeszło niepomyślnie, a funkcja {{LinkPatrz|AnalizowanieSekcjowe}} zrzuci wartość prawdziwą, wtedy ta cała funkcja z nagłówka zrzuca wartość logiczną fałszywą. Ta funkcja wykorzystuje wartość: {{LinkPatrz|liczba_obiekt_start_nowe}}, jako drugi parametr, dla którego liczy ona tekst przed, ta zmienna może wskazywać na początek pozycji linii artykularnej (z artykułami), aby ona policzyła swoją wartość.
Funkcja działa w pętli do zakończenia zasobu danych lub w inny sposób, ale też do zakończenia. Funkcja wtedy robi operacje zawsze dla {{LinkPatrz|czy_dodatni}} równe {{Code|1}} lub dla tych, gdzie: {{LinkŚródtytuł|p.CzyTamElementyNieSpisoweArtykularne|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, zwraca wartość logiczną prawdziwą, własnie dla tego, jeśli ta operacja zwróci prawdę, to dla tego są dopasowywane elementy zwracane. Wtedy wiadomo, że wyszukane tak pozycje są rozdziałami.
Funkcja zwraca wyniku w postaci wartości szegu zwracanych:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej;
</syntaxhighlight>
Wytłumaczenie tych elementów zrzuconych przez nią dla dopasowań, licząc od tyłu:
; Ostanie dopasowanie nagłówka pasujące, gdy tekst jego rozdziału jest równy znakom odstępu lub jest pusty{{dk}}
* {{Code|liczba_start_naglowek}} - początek ostatniego wyszukanego takiego nagłówka,
* {{Code|liczba_koniec_naglowek_poczt}} - koniec pierwszego wyszukanego nagłówka,
* {{Code|naglowek}} - wartość nagłówka dla tego ostatniego dopasowania,
* {{Code|poziom_naglowka}} - poziom takiego nagłówka,
; Niepasujący nagłówek, wyszukane pierwsze z kolei po pasującym{{dk}}
: Według wartości zwracanych powyższych w pierwszej kolejności, dla którego tekst rozdziału nie jest równa znakom odstępu i nie jest pusty:
* {{Code|liczba_start_naglowek_dalej}} - początek po pasującym tak nagłówku,
* {{Code|liczba_koniec_naglowek_dalej}} - a tutaj jego koniec,
* {{Code|naglowek_dalej}} - wartość tekstu napisu wprowadzenia tekstu,
* {{Code|poziom_naglowek_dalej}} - tutaj jego poziom.
W przypadku nieznalezienia takich nagłówków funkcja nie zwraca niczego.
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
Funkcja służy do zaawansowanego szukania, od tyłu, nagłówków w przeciwieństwie do: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, która służy przede wszystkim do szukania sekcji kolejnych jednego rodzaju, a ta funkcja znajduje się w postaci wielu typów, ona wie, że w tekście może być równy układ nagłówków różnych typów.
Funkcja wyszukuje od tyłu, znajduje parametry ostatniego nagłówka i je zwraca, jeżeli je znalazł, a jeśli nie, to nie zwraca żadnej wartości, tylko funkcja się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Jedynie funkcja nie ma parametru: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, ponieważ ta funkcji nie szuka kolejnych rozdziałów tylko jednego rodzaju, lecz wielu.
=== {{Śródtytuł|str_spacja_lub_zerowy_naglowek}}{{Code|str_spacja_lub_zerowy_naglowek}} ===
Dla każdej takiej niepustej linii, sprawdzane jest, czy to są linie z odstępami lub nie będące elementami listy, ale w sposób rozszerzony, tzn. ten początek nie może składać się z pewnych znaków, czyli: {{Code|<nowiki>^[^%*#:;<>\n]</nowiki>}}.
Funkcja sprawdza, czy liczba takich linii, jest taka sama, ile jest niepustych linii, wtedy funkcja zwraca wartość logiczną prawdziwą, przeciwnie wartość nilową.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local str_spacja_lub_zerowy_naglowek=function(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do sprawdzenia.
=== Ciąg dalszy opisu funkcji ===
; Etapy dopasowania ostatniego dopasowania rozdziałów, jego pozycja w tekście i jego napis wprowadzenia tekstu
* Etap ogólny
Funkcja najpierw wyszukuje rozdziały poprzez wskazanie przez funkcję: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, a jeżeli znalazł artykuł, o niepustych secjach pomiędzy ostatnim wskazanym artykułen (przed artykułem), a rozdziałem, wtedy ta funkcja zwraca wartość logiczną fałszywą i zwraca wartość nilową, czyli nic nie zwraca, i funkcja się zakańcza, i wskazuje, że nie znalazł takiego nagłówka, to się dzieje pod warunkiem, że funkcja: {{LinkPatrz|AnalizowanieSekcjowe}}, została podana, w przeciwnym wypadku, to już tak się nie dzieje, a nagłówek z tego wywołania mógł być znaleziony, ale nie musiał.
; Etapy alternatywy
* Pierwszy etap
** To dotyczy, że znalazł ostatnie dopasowanie, ale niepasującego nagłówka przed nim nie ma.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli tego nie znalazł, wtedy przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, w pętli nieskończonej, najpierw dla parametru: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, najpierw jest to pierwsze, a później to drugie, jeśli z tego pierwszego zostało wykonana komenda przerwania pętli, to drugie dopasowanie nie zostanie wykonane w danym obiegu jego, normalnie, bez tego są dwa wywołania.
W każdym takim wywołaniu i dopasowaniu, w pierwszym, czy drugim, będzie sprawdzane, czy tego dokonano, czy taki nagłówek znaleziono, a jeśli tak, to sprawdzany jest tekst pomiędzy ostatnim końcem w wykrytym nagłówku, a początkiem tego przedostatniego, lub z etapu ogólnego, funkcją: {{LinkŚródtytuł|str_spacja_lub_zerowy_naglowek}}, jeżeli funkcja zwróciła wartość logiczną odpowiadającej fałszywej, to pętla jest przerywana, w przeciwnym wypadku są inicjowane parametry tego dopasowania, które przygotowuje ona zwrócić do funkcji w nagłówku.
: Ogólnie po drugim taki wywołaniu następuje sprawdzenie parametrów zwróconych:
Jeżeli w ostatnim takim wywołaniu w tym funkcja zwraca niedopasowanie, wtedy zwracane jest przerywanie pętli, wtedy mamy parametry ostatniego dopasowania, jeśli istnieją takie.
* Drugi
** To dotyczy, że takiego dopasowania pasującego nie znalazł.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli to znalazł, to wyszukany stąd nagłówek jest rozwijany przy pomocy funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}. Jeżeli parser funkcji nie wykrył wykrzyknika na końcu takiego nagłówka, wtedy jest sprawdzane przy pomocy iteratora w zakodowanym tekście przy pomocy: {{Code|{{m|Szablonowe}}}}, na podstawie: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, czy w nagłówku istnieje artykuły bieżącej ksiązki, czy analizowanej, i czy to nie jest okładka, czy strona niedozwolona. Jeżeli wykryto takie artykuły, lub pętla nie została wykonana, bo nie ma takich wykrytym nagłówku kodów, to funkcja inicjuje parametry zwracanych wartości przez funkcję w nagłówku.
* Trzeci
** To dotyczy pozostałych przypadków, w którym znalazł ostatnie dopasowanie, a niepasujące przed nim też znalazł.
Jest wywoływane wywołanie: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, najpierw w pierwszym wywołaniu dla: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, a w każdym takim wywołaniu po jest sprawdzane, czy tekst pomiędzy końcem ostatniego wykrytego nagłówka, a początkiem przedostatniego nagłówka, a nawet artykułu wykrytego, czyli czy taki tekst rozdziału, czy składa się z samych znaków odstępów, a jeśli tak, to inicjowane są parametry zwracane przez funkcję. Dalej przechodzimy z pierwszego do drugiego wywołania, w którym oba wywołania są podobnie zbudowane.
; Parametry wychodzące z funkcji{{dk}}
* Oto parametry inicjowane przez funkcję w tych powyższych trzech etapach alternatywnych, które na końcu funkcji w nagłówku są zwracane:
: Funkcja zwraca wartości określone przez kod:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka;
</syntaxhighlight>
Wytłumaczenia parametrów zwracanych:
; Parametry określają ostatnie dopasowanie nagłówkowe w wewnątrz funkcji{{dk}}
* {{Code|liczba_start_naglowek}} - początek tego dopasowania,
* {{Code|liczba_koniec_naglowek}} - jego koniec,
* {{Code|naglowek}} - wartość napisu wprowadzenia tekstu nagłówka,
* {{Code|poziom_naglowka}} - poziom tego nagłówka.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
Funkcja służy do wyszukiwania, od tyłu, pozycji artykularnej przed wykrytym ostatnim rozdziałem, lub gdy nie ma rozdziałów, to liczy pozycję tylko artykularną, lub nawet pozycji rozdziałów zerowych spisu treści albo nawet tych z dwukropkiem na końcu danej linii, i szuka od tyłu takie coś, by to uznać za początek spisu treści wyciętej z tekstu zakodowanego spisu, czyli ogólnie mówiąc funkcja szuka dalej takiego początku dalszego.
Funkcja służy też do wydzielania części spisu spełniające powyższe kryteria, aby można było ją parsować przez inne funkcje '''Stronicowego parsera''', do wydzielania dalszych rozdziałów, a z nich wydzielania nagłówków (napisów wprowadzenia tekstu) i tekstów rozdziałów.
Funkcja pętluje przy wykrytych liniach składających się z odstępów, a się zatrzymuje na normalnych danych lub po zakończeniu zasobów.
Główny opis funkcji {{ZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}:
* Funkcja działa w oętli nieskończnonej, aż do zakończenia danych, lub do zwrócenia elementów przez nią,
* W tej pętli funkcja wyszukuje kolejne linie, które nie są pozycjami listy, z którego wyodrębiona linia jest analizowana bez przerwy, jeżeli istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje parametry:
** {{Code|liczba_start}} {{Patrz|liczba_start}} - od której pozycji od tyłu ma wyszukiwać pozycje artykularne,
** {{Code|czy_dalej_rozdzial}} {{Patrz|czy_dalej_rozdzial}} - czy {{ZobaczTeż|czy_dalej_rozdzial}} uznać za pierwszeństwo, w przypadku wykrytego rozdziału dodatniego w linii, lub nie wykrycia takiej linii, która nie jest częścią listy, wtedy jest ważny element (zmienna) {{LinkPatrz|liczba_start}}, przeciwnie jest brane, coś przeciwnego,
** {{Code|liczba_pierwszy_rozdzialowy_artykul}} - jak w: {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}}.
Parametry {{ZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}} zwracane przez funkcję, które są zwracane kolejno w niej na końcu jej działania:
* Początek takiego punktu, uzyskanym w końcu na końcowym obiektu pętli (wyjaśnienie w tekście),
* Liczba znaków odstępów wykrytych poczasz wszystkich obiektów pętli (jest to reprezzentowane przez: {{Code|liczba_spac}} {{Patrz|liczba_spac}}),
* Czy ta tak, uzyskana i zwrócona, linia jest rozdziałem spisu treści (jest to reprezentowane przez: {{Code|czy_spis}} {{Patrz|czy_spis}}).
Etapy zwracania przez funkcję elementów:
; Uzyskanie linii według ogólnego wzoru
* Według {{LinkZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}, tą linia, byłoby takie coś pomiędzy ewentualnie znakami nowymi liniami, która spełnia wzór: {{Code|<nowiki>([^%*#:;<>\n][^\n]*)</nowiki>}}. To wyszukiwanie jest według funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wyszukujący w sposób ogólny linie, niezależnie jak są one realizowane w tekście.
; Początek i koniec uzyskanej linii według powyższego sposobu{{dk}}
* Początek i koniec przechwyconej linii, to są pewne liczby, wraz ze znakami nowej linii, jeśli po któreś stronie istnieją, lub nawet gdy to są w tym elementy, początku lub końca, tekstu, wtedy długość tych elementów jest zero.
; Brak dopasowania linii
* A jeżeli dopasowanie tej linii nie zgłasza niedopasowania, wtedy przy prawdziwości zmiennej: {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według: {{LinkZobaczTeż|czy_dalej_rozdzial}}, zwracane jest: {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie, wartość minimalną, pomiędzy tą zmienną a inną {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}} (jeśli ta zmienna nie istnieje, to domyślnie ma wartość {{Code|1}}).
; Rozdział równaniowy{{dk}}
* Jeżeli tą linią jest rozdział równaniowy, to zwracane jest, jeżeli wartość {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według {{LinkZobaczTeż|czy_dalej_rozdzial}}, ma wartość fałszywą, wtedy jest to dopasowanie końca tej linii, w pierwszym parametrze zwracanym, wraz z innymi danymi, według {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}, a jeżeli ta wartość jest prawdą, to zwracane jest {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, bo w tej funkcji nie ma prawa takich rozdziałów dopasowywać.Ma dopaasowywać tylko normalne linie niebędące pozycjami listy.
; Pierwsze rozgałęzenie specjalne instrukcji warunkowej{{dk}}
: Znaki odstępów - linia to białe znaki:
* Jeżeli linia istnieje i składa się z samych znaków odstępów, to liczmy długość tych znaków, wraz z nowymi liniami po prawej lub lewej stronie, jeśli istnieją, i wsadzamy to do ogólnego licznika {{Code|liczba_spac}} {{LinkPatrz|liczba_spac}}, która jest zwracana na końcu działania funkcji, jako drugi parametr w: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}. Funkcja wykonuje tych okrążeń pętli tyle, ile jest kolejnych linii składających się z tych znaków.
; Przypadek istnienia linii nie składającej się ze znaków odstępów{{dk}}
: Rozdział spisu treści i rozdział zerowy:
* Jeśli linia jest spisem względem {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przyjmuje wartość początkowi takiej ustalonej linii w tekście, a {{Code|czy_spis}} {{LinkPatrz|czy_spis}} przyjmuje wartość prawdziwą.
* A jeśli tak nie jest, to sprawdzamy, czy przed tą linią jest rozdział zerowy na podstawie funkcji: {{LinkŚródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}. Jeżeli ona jest tym rozdziałem, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma już nową wartość, przeciwnie, jeśli ta linia ma na końcu dwukropek, to ta wartość nowa jest równa początkowi wyszukania tej linii, a jeśli nie, to końcowi. Zmienna, czy jest rozdział spisu {{Code|czy_spis}} {{LinkPatrz|czy_spis}} ma wartość prawdziwą, gdy ten rozdział zerowy istnieje, a jeśli nie, to fałszywą.
; Przypadek istnienia, lub nie, rozdziału zerowego{{dk}}
* Jeśli znaleziono taki rozdział (zerowy), to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, to wtedy nie ma żadnych dodatkowych instrukcji do wykonania.
* Punkty zwracania zmiennych, jeśli przeciwnie do poprzedniego:
** Jeśli znaleziono taki spis, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma wartość początkowi takiej linii
** A jeżeli przeciwnie, nie ma w nim kodów, to końcowi, jeśli wyszukana linia nie jest rozdziałem z dwukropkiem na końcu, a jeśli jest, to początkowi tej linii,
*** Wtedy ją, tą uzyskaną z obliczeń, trzeba wliczać w ramach wydzielonego spisu, wtedy zmienna {{Code|czy_spis}} jest prawdą,
** A jeśli jednak ma je, wtedy, czy linia ma pozycje artykularne, które nie są okładkami lub stronami niedozwolonymi, a jeśli tak jest, na podstawie wywołania funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, to zwracany jest początek wyszukania takiej linii w tej zmiennej, przeciwnie powtarzana jest ta wartość.
*** Wtedy, gdy linia nie ma takich artykułów, wtedy jeśli ona ma dwukropek na końcu, wtedy ustalamy zmienną {{Code|czy_spis}} na prawdę.
: Na samym końcu zwracane jest to wszystko w postaci parametrów: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}.
== {{Śródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}{{Code|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}} ==
Funkcja wyszukuje, czy dla obiektu o typie {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} o numerze liczbowym {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} - nie jako łańcuch znakowy, dla ich generowanego odpowiednika {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, generowanego z {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, są linki w zależności od podanej zmiennej {{LinkPatrz|czy_wszystkie_linki}}, a jeżeli tam nie ma linków, to przeszukiwany jest {{LinkPatrz|dalszy_tekst}} w ich poszukiwaniu, którymi zrządzą prawa w zależności od przyporządkowanej zmiennej {{LinkPatrz|czy_nieoddzielone}}, wartość prawdziwa tej zmiennej, włącza dowolność układu obiektów typu: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}.
Funkcja wyszukuje w linii, ale najwierw w: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, a później w: {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, jeżeli w poprzednim nie znalazł, pierwszego takiego linku przyporządkowagp, któremuś z tych obiektów, i przy pierwszym wykryciu zwraca wartość, ale dany obiekt uwwzględniany względem tego poprzedniegomusi spełniać prawa lub nie, w zależności od podanej zmiennej {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieLinkuWeSzablonieOrazDalszymNapisie(obiekt,kod,dalszy_tekst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_oddzielone,czy_wszystkie_linki)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}}, {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|czy_nieoddzielone}} {{Patrz|czy_nieoddzielone}} - czy linki mają być oddzielone interpunkcją, czy odstępami, w przypadu przeciwnym, jeżeli tak nie jest, to funkcja zwraca wartość fałszywą,
** {{Code|czy_wszystkie_linki}} {{Patrz|czy_wszystkie_linki}} - czy uwzględniaj wszystkie linki, czy tylko artykuły, nie okładki, (dozwolone), danej książki,
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy tekst, do przeszukiwania linkowego.
Funkcja zwraca wartość logiczną, jeżeli prawa linkowe tekstu są przyporządkowane przez zmienne: {{LinkPatrz|czy_nieoddzielone}} i {{LinkPatrz|czy_wszystkie_linki}}, to jeśli znalazłeś takie linki, to zwracaj wartość prrawdziwą, a jeśli nie, to fałszywą.
Jeśli zmienna {{LinkPatrz|czy_nieoddzielone}} przyjmuje wartość fałszywą, to te rozważane obiekty, muszą być oddzielone pewnymi znakami, tutaj: {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, a jak nie spełniają tego warunku, to funkcja zwraca wartość fałszywą, w innym wypadku dalej liczy i sprawdza.
== {{Śródtytuł|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}}{{Code|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}} ==
Funkcja jest rozszerzeniem funkcji: {{LinkŚródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}, dla ustalonych dwóch ostatnich zmiennych, które przyjmują wartość {{Code|true}} (prawdziwą), o nazwach: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}} i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, dla tej funkcji, mamy już zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, i {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, a funkcja w nagłówku je ustala, w wyniku działania w pętli.
Funkcja wyszukuje, od tyłu, w tekście, nabliższej pozycji typu: {{Code|SZABLON}}, {{Code|LINKW}} lub {{Code|LINKZ}}, w danej linii, i zwraca odpowiednio dwie wartości, pozycje wykrytą i wartość logiczną powodzenia, w innym przypadku, pozycję poczatkową z drugim parametrem fałszem.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako arguementy:
** {{Code|liczba_start_rozdzial}} - jak w: {{LinkPatrz|liczba_start_rozdzial}}, pozycja wyszukiwania końcowa,
** {{Code|liczba_spisowa}} {{Patrz|liczba_spisowa}} - pozycja wyszukiwania początkowa.
Parametry zwracane:
* Pierwszy parametr:
** Pozycja, w którym taką pozycję określona przez funkcję znaleziono, drugi parametr wtedy przyjmuje prawdę, jeśli nie znaleziono, takiej pozycji, to ta pozycja przymuje wartość początkową, adrugi parametr jest fałszem,
* Drugi parametr:
** Czy elementy są odzielone od sibie pewnymi znakami, według tej dokumentacji, i czy to są linki artykułów nieokładkowych dozwolonych, w najbliższej linii, wtedy zwraca w drugim parametrze prawdę, w przecciwnym wypadku, w przypadku znalezienia obiektu w najbliższej linii z: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, ale nie wykryto odpowiwdnich linków, według wspomnianej funkcji, wtedy zwracony ten paramtr będzie fałszem, kub do wyczerpania zasobów, też odpowiadającej fałśzowi,
Funkcja wyszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wykorzystując, że tekst jest zakodowany, i znajduje one przy pomocy wyrażenia regularnego generowanego przez: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, na podstawie kodu, którego fragment jest napisany tutaj:
<syntaxhighlight lang="lua">
local liczba_spisu=liczba_spisowa;
local szablonowe_modul=require("Module:Szablonowe");
---- Ustalenie wzoru kodowania, czyli jest to dowolny kod;
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu()
while(true)do
---- Wyszukuje dowolną linię według wyrażenia regularnego podanego w kodzie, zawartą całkowicie w linii;
local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
</syntaxhighlight>
Fukcja sprawdza, czy dokonano sprawdzenia, jeśli pozytywnie ono przeszło, to musi istnieć zmienna {{Code|liczba_linki_nierozdzialowe_szablonu}} {{Patrz|liczba_linki_nierozdzialowe_szablonu}} oraz musi być spełniona alternatywa dwóch warunków: {{Code|przed_tekst}} {{Patrz|przed_tekst}} musi być puste lub ma spełniać warunek według wzoru: {{Code|<nowiki>^[%p%s%d%.]*$</nowiki>}}.
Jeżeli funkcja nie dopasowała kodu: {{Code|obiekt_szablon}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, do wartości: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, to działa w pętli aż dopasuje je, aż do zakończenia zasobu danych dostępnych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, jeżeli nie mogła by tego zrobić. A jeśli je dopasowała, to sprawdza, czy te kody są odpowiednimi obiektami, ewentualnie oddzielonych od siebie znakami {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, poprzez sprawdzanie funkcją wspomnianą w nagłówku. Jeśli ta funkcja zwróci wartość prawdziwą, to zwrócone zostaną parametry:
<syntaxhighlight lang="lua">
return liczba_linki_nierozdzialowe_szablonu,true;
</syntaxhighlight>
W innych przypadkach, jeżeli takiego dopasowania nie znalazła, to zwróć szereg wartości:
<syntaxhighlight lang="lua">
return liczba_spisowa,false;
</syntaxhighlight>
W tym przypadku wartość {{Code|liczba_spisowa}} {{LinkPatrz|liczba_spisowa}}, to nic innego jak ostatni argument naszej funkcji, czyli w przypadku niepowoddzenia dopasowania, zwracana jest wartość ta początkowa, zdrugą wartością, że niezaleziono poszukiwanego obiektu.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowychZakresowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowychZakresowych}} ==
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowychZakresowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_pierwszy_rozdzialowy_artykul,liczba_przed_rozdzialem,liczba_start_naglowek_przed,czy_znajdz)...end;
</syntaxhighlight>
Parametry funkcji:
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
dn0e04qtmdkjrk4zs0f4t1ohwwo7u44
554545
554544
2026-09-05T19:56:07Z
Persino
2851
/* {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} */
554545
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
Jest to funkcja do sprawdzania tekstu zawartości (tekstu rozdziału, bez zawartości nagłówka) napisu wprowadzenia tekstu sekcji, za pomocą funkcji zwracanej, czy ona spełnia pewne określone warunki.
Funkcja, gdy co jest nie tak, to zwraca wartość {{Code|true}}, i przy okazji może zerować pewne określone zmienne, jeśli ona przy tym została odpowiednio ustawiona, przeciwnie ona zawsze zwraca wartość {{Code|nil}}, czyli nie zwraca żadnej wartości.
Za pomocą tej funkcji można sprawdzić, czy funkcja zawiera niedozwolone znaki wikikodu, i dlatego zwraca tą prawdziwość.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe)
... ---- ciało funkcji zwracanej
end;
end;
</syntaxhighlight>
Parametry ogólne funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|czy_zeruj}} {{Patrz|czy_zeruj}} - czy ma zerować, ścisle określone zmienne, które mieszczą się w niezerowej tablicy zmiennych składowych, tzn. w: {{LinkPatrz|tab_zmienne}},
* {{Code|tab_zmienne}} {{Patrz|tab_zmienne}} - zmienne w nim do zerowania,
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Parametry funkcji zwracanej dla tekstu rozważanego {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}:
* {{Code|liczba_koniec_naglowek}} {{Patrz|liczba_koniec_naglowek}} - numer znaku, po którym coś rozważamy,
* {{Code|liczba_obiekt_start_nowe}} {{Patrz|liczba_obiekt_start_nowe}} - numer znaku, przed którym coś rozważamy.
Funkcja zwracana sprawdza, czy zmienne: {{LinkPatrz|liczba_koniec_naglowek}} i {{LinkPatrz|liczba_obiekt_start_nowe}}, istnieją, i te zmienne sugerują punkty znakowe w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, ale jeżeli te zmienne liczbowe punktów znakowych mają takie wartości, że nie da się znaleźć dla tej zmiennej tekstowej treści pomiędzy nimi, to ta funkcja nie zwraca żadnej wartości, to zachodzi, kiedy nie jest spełniony warunek:
<syntaxhighlight lang="lua">
if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then
</syntaxhighlight>
* Liczenie zmiennej tekstowej za pomocą, którą będziemy sprawdzać:
: A jeżeli jest jednak tak, tzn. spełniony jest ten warunek, to znajdujemy taki tekst, robi to za pomocą funkcji: {{LzLua|mw.ustring.sub}}, i zapisuje to pod zmienną {{Code|str}} {{Patrz|str}}.
* Pierwszy etap analizowania tej zmiennej, czy jest poprawna, tzn. czy nie zwraca żadnej wartości, ale czy się zakańcza:
: Następnie sprawdza, czy ona jest w cudzysłowach, tzn. czy spełnia warunek: {{Code|<nowiki>^%s*'+(.+)'+%s*$</nowiki>}}, lub czy początek zaczyna się od znaków: {{Code|<nowiki>^[%*#:;<>]+</nowiki>}}, lub czy ten tekst zawiera dozwolone znaki z przedziału: {{Code|<nowiki>^[%s%p%w]*$</nowiki>}} - tzn. czy tekst składa się ze znaków odstępu, interpunkcyjnych, znaków alfanumerycznych lub z dolnym myślników, jeżeli któreś z tych warunków jest spełnione, to funkcja nie zwraca żadnej wartości, ale zatrzymuje się, tzn. zakańcza się, to oznacza, że wszystko jest w porządku. A jeżeli nie spełnione z żadnych z tych warunków, to ona idzie dalej, i robi następne czynności następne, aby sprawdzić dalsze warunki, czy wszystko jest w porządku.
* Sprawdzanie niepustych linii po liniach, ewentualnie składających się ze znaków odstępów:
: Funkcja liczy ile takich linii znalał, zapisuje to pod zmienną {{Code|ile}} {{Patrz|ile}}, jeśli wśród takich linii znalazł linie pasujące do: {{Code|<nowiki>^[%*#;:<>]</nowiki>}}, lub składające się znaków odstępów: {{Code|<nowiki>^%s*$</nowiki>}}, wtedy funkcja to liczy licznikiem: {{Code|ile_punktowanych}} {{Patrz|ile_punktowanych}}.
Funkcja w tak wyszukanych liniach w przeciwnym razie sprawdza, w liniach niepasujących do tych wzorów, czy tam są artykuły (strony) nie z rozważanej danej książki, przy pomocy funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}} {{Patrz|p.CzyGeneralnieElementSpisuRzeczy}}, jeśli są takie elementy, to funkcja dodaje to do licznika {{LinkPatrz|ile_punktowanych}}, aby dodać jeden do licznika, dla każdej takiej linii funkcja sprawdza, czy przynajmniej jeden taki artykuł się znajduje tam, w każdej takiej wykrytej linii.
Jeśli liczba określona przez zmienną: {{LinkPatrz|ile_punktowanych}}, jeżeli jest co najmniej równa wyszukanym liniom {{LinkPatrz|ile}}, to funcja się zatrzymuje, i nie zwraca żadnej wartości, czyli wskazuje na powodzenie.
* Zerowanie się pewnych wartości:
** Funkcja z tak policzonego {{LinkPatrz|str}} usuwa formy kodów z obiektami {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, a jeżeli znalazł w nim same, wtedy znaki odstępów, to ona nie zwraca żadnej wartości, ale się zakańcza, przeciwnie, sprawdza, czy jest zmienna: {{LinkPatrz|czy_zeruj}}, która jest prawdziwa, a jeśli tak, to elementy zmiennej {{LinkPatrz|tab_zmienne}} są nilowane, tzn. podzmienne o kluczach:
* {{Code|liczba_nie_okladka_artykul}} {{Patrz|liczba_nie_okladka_artykul}} - liczba pozycji sekcji wskazująca, czy istnieje pierwszy taki artykuł (nie okładka, nie strona niedozwolona) aktualnej książki, lub bezpośrednio taki artykuł, niekoniecznie tej książki, czy znajduje się bezpośrednio w pozycji sekcji, i tylko sam tam się znajduje,
* {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{Patrz|liczba_pierwszy_rozdzialowy_artykul}} - liczba pozycji sekcji, która wskazuje na pierwszy taki wykryty artykuł, licząc od przodu, który spełnia pewne ścisle okreslone kryteria, jest to dowolny artykuł,jaki może być w książce,
: Kryteria określone przez te zmienne powyżej są określone przez funkcję: {{LinkPatrz|p.CzyGeneralnieElementSpisuRzeczy}},
* {{Code|czy_ten_rozdzial}} {{Patrz|czy_ten_rozdzial}} - wartość prawdziwą wskazuje, czy wynilowano zmienne należące do rozważanej tablicy.
Ale niezależnie od wartości {{LinkPatrz|czy_zeruj}}, funkcja wtedy zwraca zawsze wraca wartość {{Code|true}}, czyli ona zwraca to niepowodzenie.
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
Funkcja wyszukuje, od tyłu, kolejne rozdziały (napisy wprowadzenia tekstu), którego tekst rozdziału składa się z samych znaków odstępów, lub jest pusty, albo o poziomie wyższym rozdziałowo, nawet gdy jego tekst rozdziału jednak nie jest pusty.
Funkcja jest przerywana po najbliższych niespełniających warunkach. Funkcja zwraca parametry, z ostatniego pasującego dopasowana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - podczas wyszukiwania od tyłu, do jakiego punktu ma wyszukiwać,
* {{Code|liczba_obiekt_start_nowe}} - jak w: {{LinkPatrz|liczba_obiekt_start_nowe}}, wykorzystywane w funkcji: {{linkPatrz|AnalizowanieSekcjowe}}, do sprawdzania pomiędzy znakami: końcem wyszukiwanego nagłówka, wraz ze znakiem nowej linii, a tą zmienną, do sprawdzania, czy tekst rozdziału spełnia ściśle określone normy określone przez tą funkcję, jest to pozycja taka na jaką wskazuje również pozycja jakaś artykularna, prze którym sprawdzamy tą funkcją tekst,
* {{Code|liczba_obiekt_start_spac_par}} {{Patrz|liczba_obiekt_start_spac_par}} - numer znaku, od którego ma wyszukiwać od tytułu pewne linie,
* {{Code|czy_dodatni}} {{Patrz|czy_dodatni}} - typ wyszukiwania rozdziałów, tzn. {{LinkZobaczTeż|czy_dodatni}},
* {{Code|czy_bez_naglowka}} {{Patrz|czy_bez_naglowka}} - czy ma wyszukiwać do: {{Code|1}}, od tytułu, a nie do: {{LinkPatrz|liczba_start_rozdzial}},
* {{Code|AnalizowanieSekcjowe}} {{Patrz|AnalizowanieSekcjowe}} - to nic innego jest, jak funkcja inicjowana przez zwracaną procedurę przez: {{LinkŚródtytuł|p.AnalizowanieSekcjowe}}, która ma w sobie pewne elementy początkowe w sobie wsadzonych jako parametry, które są wykorzystywane prze obiekt przez nią zwracany, która coś robi.
; Typy dopasowywania rozdziałów paarametru{{dk}} {{nobold|czy_dodatni {{Code|{{=}}}} {{LinkPatrz|czy_dodatni}} {{ZobaczTeż|czy_dodatni}}}}{{dk}}
* {{Code|1}} - wyszukuje rozdziały wskazywane przez funkcję: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}},
* {{Code|2}} - wyszukuje pozycje list zaczynające się od znaków: {{Code|<nowiki>[%*#:;<>]+</nowiki>}}, jako pewne rozdziały, które trzeba wyszukać,
* Inna wartość niż dwie powyższe - wtedy są wyszukiwane rozdziały niezaczynające się od: {{Code|<nowiki>[^%*#:;<>\n]</nowiki>}}, i kończące się na dwukropek.
: Dla dwóch ostatnich powyższych punktów są wyszukiwane linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
: Funkcja dla tych dwóch pierwszych sprawdza, tylko raz, czy to jest rozdział spisu treści wskazywaną przez funkcję: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, jeżeli parsowanie przeszło niepomyślnie, a funkcja {{LinkPatrz|AnalizowanieSekcjowe}} zrzuci wartość prawdziwą, wtedy ta cała funkcja z nagłówka zrzuca wartość logiczną fałszywą. Ta funkcja wykorzystuje wartość: {{LinkPatrz|liczba_obiekt_start_nowe}}, jako drugi parametr, dla którego liczy ona tekst przed, ta zmienna może wskazywać na początek pozycji linii artykularnej (z artykułami), aby ona policzyła swoją wartość.
Funkcja działa w pętli do zakończenia zasobu danych lub w inny sposób, ale też do zakończenia. Funkcja wtedy robi operacje zawsze dla {{LinkPatrz|czy_dodatni}} równe {{Code|1}} lub dla tych, gdzie: {{LinkŚródtytuł|p.CzyTamElementyNieSpisoweArtykularne|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, zwraca wartość logiczną prawdziwą, własnie dla tego, jeśli ta operacja zwróci prawdę, to dla tego są dopasowywane elementy zwracane. Wtedy wiadomo, że wyszukane tak pozycje są rozdziałami.
Funkcja zwraca wyniku w postaci wartości szegu zwracanych:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej;
</syntaxhighlight>
Wytłumaczenie tych elementów zrzuconych przez nią dla dopasowań, licząc od tyłu:
; Ostanie dopasowanie nagłówka pasujące, gdy tekst jego rozdziału jest równy znakom odstępu lub jest pusty{{dk}}
* {{Code|liczba_start_naglowek}} - początek ostatniego wyszukanego takiego nagłówka,
* {{Code|liczba_koniec_naglowek_poczt}} - koniec pierwszego wyszukanego nagłówka,
* {{Code|naglowek}} - wartość nagłówka dla tego ostatniego dopasowania,
* {{Code|poziom_naglowka}} - poziom takiego nagłówka,
; Niepasujący nagłówek, wyszukane pierwsze z kolei po pasującym{{dk}}
: Według wartości zwracanych powyższych w pierwszej kolejności, dla którego tekst rozdziału nie jest równa znakom odstępu i nie jest pusty:
* {{Code|liczba_start_naglowek_dalej}} - początek po pasującym tak nagłówku,
* {{Code|liczba_koniec_naglowek_dalej}} - a tutaj jego koniec,
* {{Code|naglowek_dalej}} - wartość tekstu napisu wprowadzenia tekstu,
* {{Code|poziom_naglowek_dalej}} - tutaj jego poziom.
W przypadku nieznalezienia takich nagłówków funkcja nie zwraca niczego.
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
Funkcja służy do zaawansowanego szukania, od tyłu, nagłówków w przeciwieństwie do: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, która służy przede wszystkim do szukania sekcji kolejnych jednego rodzaju, a ta funkcja znajduje się w postaci wielu typów, ona wie, że w tekście może być równy układ nagłówków różnych typów.
Funkcja wyszukuje od tyłu, znajduje parametry ostatniego nagłówka i je zwraca, jeżeli je znalazł, a jeśli nie, to nie zwraca żadnej wartości, tylko funkcja się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Jedynie funkcja nie ma parametru: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, ponieważ ta funkcji nie szuka kolejnych rozdziałów tylko jednego rodzaju, lecz wielu.
=== {{Śródtytuł|str_spacja_lub_zerowy_naglowek}}{{Code|str_spacja_lub_zerowy_naglowek}} ===
Dla każdej takiej niepustej linii, sprawdzane jest, czy to są linie z odstępami lub nie będące elementami listy, ale w sposób rozszerzony, tzn. ten początek nie może składać się z pewnych znaków, czyli: {{Code|<nowiki>^[^%*#:;<>\n]</nowiki>}}.
Funkcja sprawdza, czy liczba takich linii, jest taka sama, ile jest niepustych linii, wtedy funkcja zwraca wartość logiczną prawdziwą, przeciwnie wartość nilową.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local str_spacja_lub_zerowy_naglowek=function(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do sprawdzenia.
=== Ciąg dalszy opisu funkcji ===
; Etapy dopasowania ostatniego dopasowania rozdziałów, jego pozycja w tekście i jego napis wprowadzenia tekstu
* Etap ogólny
Funkcja najpierw wyszukuje rozdziały poprzez wskazanie przez funkcję: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, a jeżeli znalazł artykuł, o niepustych secjach pomiędzy ostatnim wskazanym artykułen (przed artykułem), a rozdziałem, wtedy ta funkcja zwraca wartość logiczną fałszywą i zwraca wartość nilową, czyli nic nie zwraca, i funkcja się zakańcza, i wskazuje, że nie znalazł takiego nagłówka, to się dzieje pod warunkiem, że funkcja: {{LinkPatrz|AnalizowanieSekcjowe}}, została podana, w przeciwnym wypadku, to już tak się nie dzieje, a nagłówek z tego wywołania mógł być znaleziony, ale nie musiał.
; Etapy alternatywy
* Pierwszy etap
** To dotyczy, że znalazł ostatnie dopasowanie, ale niepasującego nagłówka przed nim nie ma.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli tego nie znalazł, wtedy przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, w pętli nieskończonej, najpierw dla parametru: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, najpierw jest to pierwsze, a później to drugie, jeśli z tego pierwszego zostało wykonana komenda przerwania pętli, to drugie dopasowanie nie zostanie wykonane w danym obiegu jego, normalnie, bez tego są dwa wywołania.
W każdym takim wywołaniu i dopasowaniu, w pierwszym, czy drugim, będzie sprawdzane, czy tego dokonano, czy taki nagłówek znaleziono, a jeśli tak, to sprawdzany jest tekst pomiędzy ostatnim końcem w wykrytym nagłówku, a początkiem tego przedostatniego, lub z etapu ogólnego, funkcją: {{LinkŚródtytuł|str_spacja_lub_zerowy_naglowek}}, jeżeli funkcja zwróciła wartość logiczną odpowiadającej fałszywej, to pętla jest przerywana, w przeciwnym wypadku są inicjowane parametry tego dopasowania, które przygotowuje ona zwrócić do funkcji w nagłówku.
: Ogólnie po drugim taki wywołaniu następuje sprawdzenie parametrów zwróconych:
Jeżeli w ostatnim takim wywołaniu w tym funkcja zwraca niedopasowanie, wtedy zwracane jest przerywanie pętli, wtedy mamy parametry ostatniego dopasowania, jeśli istnieją takie.
* Drugi
** To dotyczy, że takiego dopasowania pasującego nie znalazł.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli to znalazł, to wyszukany stąd nagłówek jest rozwijany przy pomocy funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}. Jeżeli parser funkcji nie wykrył wykrzyknika na końcu takiego nagłówka, wtedy jest sprawdzane przy pomocy iteratora w zakodowanym tekście przy pomocy: {{Code|{{m|Szablonowe}}}}, na podstawie: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, czy w nagłówku istnieje artykuły bieżącej ksiązki, czy analizowanej, i czy to nie jest okładka, czy strona niedozwolona. Jeżeli wykryto takie artykuły, lub pętla nie została wykonana, bo nie ma takich wykrytym nagłówku kodów, to funkcja inicjuje parametry zwracanych wartości przez funkcję w nagłówku.
* Trzeci
** To dotyczy pozostałych przypadków, w którym znalazł ostatnie dopasowanie, a niepasujące przed nim też znalazł.
Jest wywoływane wywołanie: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, najpierw w pierwszym wywołaniu dla: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, a w każdym takim wywołaniu po jest sprawdzane, czy tekst pomiędzy końcem ostatniego wykrytego nagłówka, a początkiem przedostatniego nagłówka, a nawet artykułu wykrytego, czyli czy taki tekst rozdziału, czy składa się z samych znaków odstępów, a jeśli tak, to inicjowane są parametry zwracane przez funkcję. Dalej przechodzimy z pierwszego do drugiego wywołania, w którym oba wywołania są podobnie zbudowane.
; Parametry wychodzące z funkcji{{dk}}
* Oto parametry inicjowane przez funkcję w tych powyższych trzech etapach alternatywnych, które na końcu funkcji w nagłówku są zwracane:
: Funkcja zwraca wartości określone przez kod:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka;
</syntaxhighlight>
Wytłumaczenia parametrów zwracanych:
; Parametry określają ostatnie dopasowanie nagłówkowe w wewnątrz funkcji{{dk}}
* {{Code|liczba_start_naglowek}} - początek tego dopasowania,
* {{Code|liczba_koniec_naglowek}} - jego koniec,
* {{Code|naglowek}} - wartość napisu wprowadzenia tekstu nagłówka,
* {{Code|poziom_naglowka}} - poziom tego nagłówka.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
Funkcja służy do wyszukiwania, od tyłu, pozycji artykularnej przed wykrytym ostatnim rozdziałem, lub gdy nie ma rozdziałów, to liczy pozycję tylko artykularną, lub nawet pozycji rozdziałów zerowych spisu treści albo nawet tych z dwukropkiem na końcu danej linii, i szuka od tyłu takie coś, by to uznać za początek spisu treści wyciętej z tekstu zakodowanego spisu, czyli ogólnie mówiąc funkcja szuka dalej takiego początku dalszego.
Funkcja służy też do wydzielania części spisu spełniające powyższe kryteria, aby można było ją parsować przez inne funkcje '''Stronicowego parsera''', do wydzielania dalszych rozdziałów, a z nich wydzielania nagłówków (napisów wprowadzenia tekstu) i tekstów rozdziałów.
Funkcja pętluje przy wykrytych liniach składających się z odstępów, a się zatrzymuje na normalnych danych lub po zakończeniu zasobów.
Główny opis funkcji {{ZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}:
* Funkcja działa w oętli nieskończnonej, aż do zakończenia danych, lub do zwrócenia elementów przez nią,
* W tej pętli funkcja wyszukuje kolejne linie, które nie są pozycjami listy, z którego wyodrębiona linia jest analizowana bez przerwy, jeżeli istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje parametry:
** {{Code|liczba_start}} {{Patrz|liczba_start}} - od której pozycji od tyłu ma wyszukiwać pozycje artykularne,
** {{Code|czy_dalej_rozdzial}} {{Patrz|czy_dalej_rozdzial}} - czy {{ZobaczTeż|czy_dalej_rozdzial}} uznać za pierwszeństwo, w przypadku wykrytego rozdziału dodatniego w linii, lub nie wykrycia takiej linii, która nie jest częścią listy, wtedy jest ważny element (zmienna) {{LinkPatrz|liczba_start}}, przeciwnie jest brane, coś przeciwnego,
** {{Code|liczba_pierwszy_rozdzialowy_artykul}} - jak w: {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}}.
Parametry {{ZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}} zwracane przez funkcję, które są zwracane kolejno w niej na końcu jej działania:
* Początek takiego punktu, uzyskanym w końcu na końcowym obiektu pętli (wyjaśnienie w tekście),
* Liczba znaków odstępów wykrytych poczasz wszystkich obiektów pętli (jest to reprezzentowane przez: {{Code|liczba_spac}} {{Patrz|liczba_spac}}),
* Czy ta tak, uzyskana i zwrócona, linia jest rozdziałem spisu treści (jest to reprezentowane przez: {{Code|czy_spis}} {{Patrz|czy_spis}}).
Etapy zwracania przez funkcję elementów:
; Uzyskanie linii według ogólnego wzoru
* Według {{LinkZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}, tą linia, byłoby takie coś pomiędzy ewentualnie znakami nowymi liniami, która spełnia wzór: {{Code|<nowiki>([^%*#:;<>\n][^\n]*)</nowiki>}}. To wyszukiwanie jest według funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wyszukujący w sposób ogólny linie, niezależnie jak są one realizowane w tekście.
; Początek i koniec uzyskanej linii według powyższego sposobu{{dk}}
* Początek i koniec przechwyconej linii, to są pewne liczby, wraz ze znakami nowej linii, jeśli po któreś stronie istnieją, lub nawet gdy to są w tym elementy, początku lub końca, tekstu, wtedy długość tych elementów jest zero.
; Brak dopasowania linii
* A jeżeli dopasowanie tej linii nie zgłasza niedopasowania, wtedy przy prawdziwości zmiennej: {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według: {{LinkZobaczTeż|czy_dalej_rozdzial}}, zwracane jest: {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie, wartość minimalną, pomiędzy tą zmienną a inną {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}} (jeśli ta zmienna nie istnieje, to domyślnie ma wartość {{Code|1}}).
; Rozdział równaniowy{{dk}}
* Jeżeli tą linią jest rozdział równaniowy, to zwracane jest, jeżeli wartość {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według {{LinkZobaczTeż|czy_dalej_rozdzial}}, ma wartość fałszywą, wtedy jest to dopasowanie końca tej linii, w pierwszym parametrze zwracanym, wraz z innymi danymi, według {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}, a jeżeli ta wartość jest prawdą, to zwracane jest {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, bo w tej funkcji nie ma prawa takich rozdziałów dopasowywać.Ma dopaasowywać tylko normalne linie niebędące pozycjami listy.
; Pierwsze rozgałęzenie specjalne instrukcji warunkowej{{dk}}
: Znaki odstępów - linia to białe znaki:
* Jeżeli linia istnieje i składa się z samych znaków odstępów, to liczmy długość tych znaków, wraz z nowymi liniami po prawej lub lewej stronie, jeśli istnieją, i wsadzamy to do ogólnego licznika {{Code|liczba_spac}} {{LinkPatrz|liczba_spac}}, która jest zwracana na końcu działania funkcji, jako drugi parametr w: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}. Funkcja wykonuje tych okrążeń pętli tyle, ile jest kolejnych linii składających się z tych znaków.
; Przypadek istnienia linii nie składającej się ze znaków odstępów{{dk}}
: Rozdział spisu treści i rozdział zerowy:
* Jeśli linia jest spisem względem {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przyjmuje wartość początkowi takiej ustalonej linii w tekście, a {{Code|czy_spis}} {{LinkPatrz|czy_spis}} przyjmuje wartość prawdziwą.
* A jeśli tak nie jest, to sprawdzamy, czy przed tą linią jest rozdział zerowy na podstawie funkcji: {{LinkŚródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}. Jeżeli ona jest tym rozdziałem, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma już nową wartość, przeciwnie, jeśli ta linia ma na końcu dwukropek, to ta wartość nowa jest równa początkowi wyszukania tej linii, a jeśli nie, to końcowi. Zmienna, czy jest rozdział spisu {{Code|czy_spis}} {{LinkPatrz|czy_spis}} ma wartość prawdziwą, gdy ten rozdział zerowy istnieje, a jeśli nie, to fałszywą.
; Przypadek istnienia, lub nie, rozdziału zerowego{{dk}}
* Jeśli znaleziono taki rozdział (zerowy), to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, to wtedy nie ma żadnych dodatkowych instrukcji do wykonania.
* Punkty zwracania zmiennych, jeśli przeciwnie do poprzedniego:
** Jeśli znaleziono taki spis, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma wartość początkowi takiej linii
** A jeżeli przeciwnie, nie ma w nim kodów, to końcowi, jeśli wyszukana linia nie jest rozdziałem z dwukropkiem na końcu, a jeśli jest, to początkowi tej linii,
*** Wtedy ją, tą uzyskaną z obliczeń, trzeba wliczać w ramach wydzielonego spisu, wtedy zmienna {{Code|czy_spis}} jest prawdą,
** A jeśli jednak ma je, wtedy, czy linia ma pozycje artykularne, które nie są okładkami lub stronami niedozwolonymi, a jeśli tak jest, na podstawie wywołania funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, to zwracany jest początek wyszukania takiej linii w tej zmiennej, przeciwnie powtarzana jest ta wartość.
*** Wtedy, gdy linia nie ma takich artykułów, wtedy jeśli ona ma dwukropek na końcu, wtedy ustalamy zmienną {{Code|czy_spis}} na prawdę.
: Na samym końcu zwracane jest to wszystko w postaci parametrów: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}.
== {{Śródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}{{Code|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}} ==
Funkcja wyszukuje, czy dla obiektu o typie {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} o numerze liczbowym {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} - nie jako łańcuch znakowy, dla ich generowanego odpowiednika {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, generowanego z {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, są linki w zależności od podanej zmiennej {{LinkPatrz|czy_wszystkie_linki}}, a jeżeli tam nie ma linków, to przeszukiwany jest {{LinkPatrz|dalszy_tekst}} w ich poszukiwaniu, którymi zrządzą prawa w zależności od przyporządkowanej zmiennej {{LinkPatrz|czy_nieoddzielone}}, wartość prawdziwa tej zmiennej, włącza dowolność układu obiektów typu: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}.
Funkcja wyszukuje w linii, ale najwierw w: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, a później w: {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, jeżeli w poprzednim nie znalazł, pierwszego takiego linku przyporządkowagp, któremuś z tych obiektów, i przy pierwszym wykryciu zwraca wartość, ale dany obiekt uwwzględniany względem tego poprzedniegomusi spełniać prawa lub nie, w zależności od podanej zmiennej {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieLinkuWeSzablonieOrazDalszymNapisie(obiekt,kod,dalszy_tekst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_oddzielone,czy_wszystkie_linki)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}}, {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|czy_nieoddzielone}} {{Patrz|czy_nieoddzielone}} - czy linki mają być oddzielone interpunkcją, czy odstępami, w przypadu przeciwnym, jeżeli tak nie jest, to funkcja zwraca wartość fałszywą,
** {{Code|czy_wszystkie_linki}} {{Patrz|czy_wszystkie_linki}} - czy uwzględniaj wszystkie linki, czy tylko artykuły, nie okładki, (dozwolone), danej książki,
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy tekst, do przeszukiwania linkowego.
Funkcja zwraca wartość logiczną, jeżeli prawa linkowe tekstu są przyporządkowane przez zmienne: {{LinkPatrz|czy_nieoddzielone}} i {{LinkPatrz|czy_wszystkie_linki}}, to jeśli znalazłeś takie linki, to zwracaj wartość prrawdziwą, a jeśli nie, to fałszywą.
Jeśli zmienna {{LinkPatrz|czy_nieoddzielone}} przyjmuje wartość fałszywą, to te rozważane obiekty, muszą być oddzielone pewnymi znakami, tutaj: {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, a jak nie spełniają tego warunku, to funkcja zwraca wartość fałszywą, w innym wypadku dalej liczy i sprawdza.
== {{Śródtytuł|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}}{{Code|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}} ==
Funkcja jest rozszerzeniem funkcji: {{LinkŚródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}, dla ustalonych dwóch ostatnich zmiennych, które przyjmują wartość {{Code|true}} (prawdziwą), o nazwach: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}} i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, dla tej funkcji, mamy już zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, i {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, a funkcja w nagłówku je ustala, w wyniku działania w pętli.
Funkcja wyszukuje, od tyłu, w tekście, nabliższej pozycji typu: {{Code|SZABLON}}, {{Code|LINKW}} lub {{Code|LINKZ}}, w danej linii, i zwraca odpowiednio dwie wartości, pozycje wykrytą i wartość logiczną powodzenia, w innym przypadku, pozycję poczatkową z drugim parametrem fałszem.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako arguementy:
** {{Code|liczba_start_rozdzial}} - jak w: {{LinkPatrz|liczba_start_rozdzial}}, pozycja wyszukiwania końcowa,
** {{Code|liczba_spisowa}} {{Patrz|liczba_spisowa}} - pozycja wyszukiwania początkowa.
Parametry zwracane:
* Pierwszy parametr:
** Pozycja, w którym taką pozycję określona przez funkcję znaleziono, drugi parametr wtedy przyjmuje prawdę, jeśli nie znaleziono, takiej pozycji, to ta pozycja przymuje wartość początkową, adrugi parametr jest fałszem,
* Drugi parametr:
** Czy elementy są odzielone od sibie pewnymi znakami, według tej dokumentacji, i czy to są linki artykułów nieokładkowych dozwolonych, w najbliższej linii, wtedy zwraca w drugim parametrze prawdę, w przecciwnym wypadku, w przypadku znalezienia obiektu w najbliższej linii z: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, ale nie wykryto odpowiwdnich linków, według wspomnianej funkcji, wtedy zwracony ten paramtr będzie fałszem, kub do wyczerpania zasobów, też odpowiadającej fałśzowi,
Funkcja wyszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wykorzystując, że tekst jest zakodowany, i znajduje one przy pomocy wyrażenia regularnego generowanego przez: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, na podstawie kodu, którego fragment jest napisany tutaj:
<syntaxhighlight lang="lua">
local liczba_spisu=liczba_spisowa;
local szablonowe_modul=require("Module:Szablonowe");
---- Ustalenie wzoru kodowania, czyli jest to dowolny kod;
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu()
while(true)do
---- Wyszukuje dowolną linię według wyrażenia regularnego podanego w kodzie, zawartą całkowicie w linii;
local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
</syntaxhighlight>
Fukcja sprawdza, czy dokonano sprawdzenia, jeśli pozytywnie ono przeszło, to musi istnieć zmienna {{Code|liczba_linki_nierozdzialowe_szablonu}} {{Patrz|liczba_linki_nierozdzialowe_szablonu}} oraz musi być spełniona alternatywa dwóch warunków: {{Code|przed_tekst}} {{Patrz|przed_tekst}} musi być puste lub ma spełniać warunek według wzoru: {{Code|<nowiki>^[%p%s%d%.]*$</nowiki>}}.
Jeżeli funkcja nie dopasowała kodu: {{Code|obiekt_szablon}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, do wartości: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, to działa w pętli aż dopasuje je, aż do zakończenia zasobu danych dostępnych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, jeżeli nie mogła by tego zrobić. A jeśli je dopasowała, to sprawdza, czy te kody są odpowiednimi obiektami, ewentualnie oddzielonych od siebie znakami {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, poprzez sprawdzanie funkcją wspomnianą w nagłówku. Jeśli ta funkcja zwróci wartość prawdziwą, to zwrócone zostaną parametry:
<syntaxhighlight lang="lua">
return liczba_linki_nierozdzialowe_szablonu,true;
</syntaxhighlight>
W innych przypadkach, jeżeli takiego dopasowania nie znalazła, to zwróć szereg wartości:
<syntaxhighlight lang="lua">
return liczba_spisowa,false;
</syntaxhighlight>
W tym przypadku wartość {{Code|liczba_spisowa}} {{LinkPatrz|liczba_spisowa}}, to nic innego jak ostatni argument naszej funkcji, czyli w przypadku niepowoddzenia dopasowania, zwracana jest wartość ta początkowa, zdrugą wartością, że niezaleziono poszukiwanego obiektu.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowychZakresowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowychZakresowych}} ==
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowychZakresowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_pierwszy_rozdzialowy_artykul,liczba_przed_rozdzialem,liczba_start_naglowek_przed,czy_znajdz)...end;
</syntaxhighlight>
Parametry funkcji:
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
fit2c3ur1btujy4eumxpwv48io2nfus
554546
554545
2026-09-05T19:56:40Z
Persino
2851
/* {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} */
554546
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
Jest to funkcja do sprawdzania tekstu zawartości (tekstu rozdziału, bez zawartości nagłówka) napisu wprowadzenia tekstu sekcji, za pomocą funkcji zwracanej, czy ona spełnia pewne określone warunki.
Funkcja, gdy co jest nie tak, to zwraca wartość {{Code|true}}, i przy okazji może zerować pewne określone zmienne, jeśli ona przy tym została odpowiednio ustawiona, przeciwnie ona zawsze zwraca wartość {{Code|nil}}, czyli nie zwraca żadnej wartości.
Za pomocą tej funkcji można sprawdzić, czy funkcja zawiera niedozwolone znaki wikikodu, i dlatego zwraca tą prawdziwość.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe)
... ---- ciało funkcji zwracanej
end;
end;
</syntaxhighlight>
Parametry ogólne funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|czy_zeruj}} {{Patrz|czy_zeruj}} - czy ma zerować, ścisle określone zmienne, które mieszczą się w niezerowej tablicy zmiennych składowych, tzn. w: {{LinkPatrz|tab_zmienne}},
* {{Code|tab_zmienne}} {{Patrz|tab_zmienne}} - zmienne w nim do zerowania,
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Parametry funkcji zwracanej dla tekstu rozważanego {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}:
* {{Code|liczba_koniec_naglowek}} {{Patrz|liczba_koniec_naglowek}} - numer znaku, po którym coś rozważamy,
* {{Code|liczba_obiekt_start_nowe}} {{Patrz|liczba_obiekt_start_nowe}} - numer znaku, przed którym coś rozważamy.
Funkcja zwracana sprawdza, czy zmienne: {{LinkPatrz|liczba_koniec_naglowek}} i {{LinkPatrz|liczba_obiekt_start_nowe}}, istnieją, i te zmienne sugerują punkty znakowe w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, ale jeżeli te zmienne liczbowe punktów znakowych mają takie wartości, że nie da się znaleźć dla tej zmiennej tekstowej treści pomiędzy nimi, to ta funkcja nie zwraca żadnej wartości, to zachodzi, kiedy nie jest spełniony warunek:
<syntaxhighlight lang="lua">
if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then
</syntaxhighlight>
* Liczenie zmiennej tekstowej za pomocą, którą będziemy sprawdzać:
: A jeżeli jest jednak tak, tzn. spełniony jest ten warunek, to znajdujemy taki tekst, robi to za pomocą funkcji: {{LzLua|mw.ustring.sub}}, i zapisuje to pod zmienną {{Code|str}} {{Patrz|str}}.
* Pierwszy etap analizowania tej zmiennej, czy jest poprawna, tzn. czy nie zwraca żadnej wartości, ale czy się zakańcza:
: Następnie sprawdza, czy ona jest w cudzysłowach, tzn. czy spełnia warunek: {{Code|<nowiki>^%s*'+(.+)'+%s*$</nowiki>}}, lub czy początek zaczyna się od znaków: {{Code|<nowiki>^[%*#:;<>]+</nowiki>}}, lub czy ten tekst zawiera dozwolone znaki z przedziału: {{Code|<nowiki>^[%s%p%w]*$</nowiki>}} - tzn. czy tekst składa się ze znaków odstępu, interpunkcyjnych, znaków alfanumerycznych lub z dolnym myślników, jeżeli któreś z tych warunków jest spełnione, to funkcja nie zwraca żadnej wartości, ale zatrzymuje się, tzn. zakańcza się, to oznacza, że wszystko jest w porządku. A jeżeli nie spełnione z żadnych z tych warunków, to ona idzie dalej, i robi następne czynności następne, aby sprawdzić dalsze warunki, czy wszystko jest w porządku.
* Sprawdzanie niepustych linii po liniach, ewentualnie składających się ze znaków odstępów:
: Funkcja liczy ile takich linii znalał, zapisuje to pod zmienną {{Code|ile}} {{Patrz|ile}}, jeśli wśród takich linii znalazł linie pasujące do: {{Code|<nowiki>^[%*#;:<>]</nowiki>}}, lub składające się znaków odstępów: {{Code|<nowiki>^%s*$</nowiki>}}, wtedy funkcja to liczy licznikiem: {{Code|ile_punktowanych}} {{Patrz|ile_punktowanych}}.
Funkcja w tak wyszukanych liniach w przeciwnym razie sprawdza, w liniach niepasujących do tych wzorów, czy tam są artykuły (strony) nie z rozważanej danej książki, przy pomocy funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}} {{Patrz|p.CzyGeneralnieElementSpisuRzeczy}}, jeśli są takie elementy, to funkcja dodaje to do licznika {{LinkPatrz|ile_punktowanych}}, aby dodać jeden do licznika, dla każdej takiej linii funkcja sprawdza, czy przynajmniej jeden taki artykuł się znajduje tam, w każdej takiej wykrytej linii.
Jeśli liczba określona przez zmienną: {{LinkPatrz|ile_punktowanych}}, jeżeli jest co najmniej równa wyszukanym liniom {{LinkPatrz|ile}}, to funcja się zatrzymuje, i nie zwraca żadnej wartości, czyli wskazuje na powodzenie.
* Zerowanie się pewnych wartości:
** Funkcja z tak policzonego {{LinkPatrz|str}} usuwa formy kodów z obiektami {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, a jeżeli znalazł w nim same, wtedy znaki odstępów, to ona nie zwraca żadnej wartości, ale się zakańcza, przeciwnie, sprawdza, czy jest zmienna: {{LinkPatrz|czy_zeruj}}, która jest prawdziwa, a jeśli tak, to elementy zmiennej {{LinkPatrz|tab_zmienne}} są nilowane, tzn. podzmienne o kluczach:
* {{Code|liczba_nie_okladka_artykul}} {{Patrz|liczba_nie_okladka_artykul}} - liczba pozycji sekcji wskazująca, czy istnieje pierwszy taki artykuł (nie okładka, nie strona niedozwolona) aktualnej książki, lub bezpośrednio taki artykuł, niekoniecznie tej książki, czy znajduje się bezpośrednio w pozycji sekcji, i tylko sam tam się znajduje,
* {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{Patrz|liczba_pierwszy_rozdzialowy_artykul}} - liczba pozycji sekcji, która wskazuje na pierwszy taki wykryty artykuł, licząc od przodu, który spełnia pewne ścisle okreslone kryteria, jest to dowolny artykuł,jaki może być w książce,
: Kryteria określone przez te zmienne powyżej są określone przez funkcję: {{LinkPatrz|p.CzyGeneralnieElementSpisuRzeczy}},
* {{Code|czy_ten_rozdzial}} {{Patrz|czy_ten_rozdzial}} - wartość prawdziwą wskazuje, czy wynilowano zmienne należące do rozważanej tablicy.
Ale niezależnie od wartości {{LinkPatrz|czy_zeruj}}, funkcja wtedy zwraca zawsze wraca wartość {{Code|true}}, czyli ona zwraca to niepowodzenie.
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
Funkcja wyszukuje, od tyłu, kolejne rozdziały (napisy wprowadzenia tekstu), którego tekst rozdziału składa się z samych znaków odstępów, lub jest pusty, albo o poziomie wyższym rozdziałowo, nawet gdy jego tekst rozdziału jednak nie jest pusty.
Funkcja jest przerywana po najbliższych niespełniających warunkach. Funkcja zwraca parametry, z ostatniego pasującego dopasowana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - podczas wyszukiwania od tyłu, do jakiego punktu ma wyszukiwać,
* {{Code|liczba_obiekt_start_nowe}} - jak w: {{LinkPatrz|liczba_obiekt_start_nowe}}, wykorzystywane w funkcji: {{linkPatrz|AnalizowanieSekcjowe}}, do sprawdzania pomiędzy znakami: końcem wyszukiwanego nagłówka, wraz ze znakiem nowej linii, a tą zmienną, do sprawdzania, czy tekst rozdziału spełnia ściśle określone normy określone przez tą funkcję, jest to pozycja taka na jaką wskazuje również pozycja jakaś artykularna, prze którym sprawdzamy tą funkcją tekst,
* {{Code|liczba_obiekt_start_spac_par}} {{Patrz|liczba_obiekt_start_spac_par}} - numer znaku, od którego ma wyszukiwać od tytułu pewne linie,
* {{Code|czy_dodatni}} {{Patrz|czy_dodatni}} - typ wyszukiwania rozdziałów, tzn. {{LinkZobaczTeż|czy_dodatni}},
* {{Code|czy_bez_naglowka}} {{Patrz|czy_bez_naglowka}} - czy ma wyszukiwać do: {{Code|1}}, od tytułu, a nie do: {{LinkPatrz|liczba_start_rozdzial}},
* {{Code|AnalizowanieSekcjowe}} {{Patrz|AnalizowanieSekcjowe}} - to nic innego jest, jak funkcja inicjowana przez zwracaną procedurę przez: {{LinkŚródtytuł|p.AnalizowanieSekcjowe}}, która ma w sobie pewne elementy początkowe w sobie wsadzonych jako parametry, które są wykorzystywane prze obiekt przez nią zwracany, która coś robi.
; Typy dopasowywania rozdziałów paarametru{{dk}} {{nobold|czy_dodatni {{Code|{{=}}}} {{LinkPatrz|czy_dodatni}} {{ZobaczTeż|czy_dodatni}}}}{{dk}}
* {{Code|1}} - wyszukuje rozdziały wskazywane przez funkcję: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}},
* {{Code|2}} - wyszukuje pozycje list zaczynające się od znaków: {{Code|<nowiki>[%*#:;<>]+</nowiki>}}, jako pewne rozdziały, które trzeba wyszukać,
* Inna wartość niż dwie powyższe - wtedy są wyszukiwane rozdziały niezaczynające się od: {{Code|<nowiki>[^%*#:;<>\n]</nowiki>}}, i kończące się na dwukropek.
: Dla dwóch ostatnich powyższych punktów są wyszukiwane linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
: Funkcja dla tych dwóch pierwszych sprawdza, tylko raz, czy to jest rozdział spisu treści wskazywaną przez funkcję: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, jeżeli parsowanie przeszło niepomyślnie, a funkcja {{LinkPatrz|AnalizowanieSekcjowe}} zrzuci wartość prawdziwą, wtedy ta cała funkcja z nagłówka zrzuca wartość logiczną fałszywą. Ta funkcja wykorzystuje wartość: {{LinkPatrz|liczba_obiekt_start_nowe}}, jako drugi parametr, dla którego liczy ona tekst przed, ta zmienna może wskazywać na początek pozycji linii artykularnej (z artykułami), aby ona policzyła swoją wartość.
Funkcja działa w pętli do zakończenia zasobu danych lub w inny sposób, ale też do zakończenia. Funkcja wtedy robi operacje zawsze dla {{LinkPatrz|czy_dodatni}} równe {{Code|1}} lub dla tych, gdzie: {{LinkŚródtytuł|p.CzyTamElementyNieSpisoweArtykularne|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, zwraca wartość logiczną prawdziwą, własnie dla tego, jeśli ta operacja zwróci prawdę, to dla tego są dopasowywane elementy zwracane. Wtedy wiadomo, że wyszukane tak pozycje są rozdziałami.
Funkcja zwraca wyniku w postaci wartości szegu zwracanych:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej;
</syntaxhighlight>
Wytłumaczenie tych elementów zrzuconych przez nią dla dopasowań, licząc od tyłu:
; Ostanie dopasowanie nagłówka pasujące, gdy tekst jego rozdziału jest równy znakom odstępu lub jest pusty{{dk}}
* {{Code|liczba_start_naglowek}} - początek ostatniego wyszukanego takiego nagłówka,
* {{Code|liczba_koniec_naglowek_poczt}} - koniec pierwszego wyszukanego nagłówka,
* {{Code|naglowek}} - wartość nagłówka dla tego ostatniego dopasowania,
* {{Code|poziom_naglowka}} - poziom takiego nagłówka,
; Niepasujący nagłówek, wyszukane pierwsze z kolei po pasującym{{dk}}
: Według wartości zwracanych powyższych w pierwszej kolejności, dla którego tekst rozdziału nie jest równa znakom odstępu i nie jest pusty:
* {{Code|liczba_start_naglowek_dalej}} - początek po pasującym tak nagłówku,
* {{Code|liczba_koniec_naglowek_dalej}} - a tutaj jego koniec,
* {{Code|naglowek_dalej}} - wartość tekstu napisu wprowadzenia tekstu,
* {{Code|poziom_naglowek_dalej}} - tutaj jego poziom.
W przypadku nieznalezienia takich nagłówków funkcja nie zwraca niczego.
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
Funkcja służy do zaawansowanego szukania, od tyłu, nagłówków w przeciwieństwie do: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, która służy przede wszystkim do szukania sekcji kolejnych jednego rodzaju, a ta funkcja znajduje się w postaci wielu typów, ona wie, że w tekście może być równy układ nagłówków różnych typów.
Funkcja wyszukuje od tyłu, znajduje parametry ostatniego nagłówka i je zwraca, jeżeli je znalazł, a jeśli nie, to nie zwraca żadnej wartości, tylko funkcja się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Jedynie funkcja nie ma parametru: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, ponieważ ta funkcji nie szuka kolejnych rozdziałów tylko jednego rodzaju, lecz wielu.
=== {{Śródtytuł|str_spacja_lub_zerowy_naglowek}}{{Code|str_spacja_lub_zerowy_naglowek}} ===
Dla każdej takiej niepustej linii, sprawdzane jest, czy to są linie z odstępami lub nie będące elementami listy, ale w sposób rozszerzony, tzn. ten początek nie może składać się z pewnych znaków, czyli: {{Code|<nowiki>^[^%*#:;<>\n]</nowiki>}}.
Funkcja sprawdza, czy liczba takich linii, jest taka sama, ile jest niepustych linii, wtedy funkcja zwraca wartość logiczną prawdziwą, przeciwnie wartość nilową.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local str_spacja_lub_zerowy_naglowek=function(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do sprawdzenia.
=== Ciąg dalszy opisu funkcji ===
; Etapy dopasowania ostatniego dopasowania rozdziałów, jego pozycja w tekście i jego napis wprowadzenia tekstu
* Etap ogólny
Funkcja najpierw wyszukuje rozdziały poprzez wskazanie przez funkcję: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, a jeżeli znalazł artykuł, o niepustych secjach pomiędzy ostatnim wskazanym artykułen (przed artykułem), a rozdziałem, wtedy ta funkcja zwraca wartość logiczną fałszywą i zwraca wartość nilową, czyli nic nie zwraca, i funkcja się zakańcza, i wskazuje, że nie znalazł takiego nagłówka, to się dzieje pod warunkiem, że funkcja: {{LinkPatrz|AnalizowanieSekcjowe}}, została podana, w przeciwnym wypadku, to już tak się nie dzieje, a nagłówek z tego wywołania mógł być znaleziony, ale nie musiał.
; Etapy alternatywy
* Pierwszy etap
** To dotyczy, że znalazł ostatnie dopasowanie, ale niepasującego nagłówka przed nim nie ma.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli tego nie znalazł, wtedy przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, w pętli nieskończonej, najpierw dla parametru: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, najpierw jest to pierwsze, a później to drugie, jeśli z tego pierwszego zostało wykonana komenda przerwania pętli, to drugie dopasowanie nie zostanie wykonane w danym obiegu jego, normalnie, bez tego są dwa wywołania.
W każdym takim wywołaniu i dopasowaniu, w pierwszym, czy drugim, będzie sprawdzane, czy tego dokonano, czy taki nagłówek znaleziono, a jeśli tak, to sprawdzany jest tekst pomiędzy ostatnim końcem w wykrytym nagłówku, a początkiem tego przedostatniego, lub z etapu ogólnego, funkcją: {{LinkŚródtytuł|str_spacja_lub_zerowy_naglowek}}, jeżeli funkcja zwróciła wartość logiczną odpowiadającej fałszywej, to pętla jest przerywana, w przeciwnym wypadku są inicjowane parametry tego dopasowania, które przygotowuje ona zwrócić do funkcji w nagłówku.
: Ogólnie po drugim taki wywołaniu następuje sprawdzenie parametrów zwróconych:
Jeżeli w ostatnim takim wywołaniu w tym funkcja zwraca niedopasowanie, wtedy zwracane jest przerywanie pętli, wtedy mamy parametry ostatniego dopasowania, jeśli istnieją takie.
* Drugi
** To dotyczy, że takiego dopasowania pasującego nie znalazł.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli to znalazł, to wyszukany stąd nagłówek jest rozwijany przy pomocy funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}. Jeżeli parser funkcji nie wykrył wykrzyknika na końcu takiego nagłówka, wtedy jest sprawdzane przy pomocy iteratora w zakodowanym tekście przy pomocy: {{Code|{{m|Szablonowe}}}}, na podstawie: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, czy w nagłówku istnieje artykuły bieżącej ksiązki, czy analizowanej, i czy to nie jest okładka, czy strona niedozwolona. Jeżeli wykryto takie artykuły, lub pętla nie została wykonana, bo nie ma takich wykrytym nagłówku kodów, to funkcja inicjuje parametry zwracanych wartości przez funkcję w nagłówku.
* Trzeci
** To dotyczy pozostałych przypadków, w którym znalazł ostatnie dopasowanie, a niepasujące przed nim też znalazł.
Jest wywoływane wywołanie: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, najpierw w pierwszym wywołaniu dla: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, a w każdym takim wywołaniu po jest sprawdzane, czy tekst pomiędzy końcem ostatniego wykrytego nagłówka, a początkiem przedostatniego nagłówka, a nawet artykułu wykrytego, czyli czy taki tekst rozdziału, czy składa się z samych znaków odstępów, a jeśli tak, to inicjowane są parametry zwracane przez funkcję. Dalej przechodzimy z pierwszego do drugiego wywołania, w którym oba wywołania są podobnie zbudowane.
; Parametry wychodzące z funkcji{{dk}}
* Oto parametry inicjowane przez funkcję w tych powyższych trzech etapach alternatywnych, które na końcu funkcji w nagłówku są zwracane:
: Funkcja zwraca wartości określone przez kod:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka;
</syntaxhighlight>
Wytłumaczenia parametrów zwracanych:
; Parametry określają ostatnie dopasowanie nagłówkowe w wewnątrz funkcji{{dk}}
* {{Code|liczba_start_naglowek}} - początek tego dopasowania,
* {{Code|liczba_koniec_naglowek}} - jego koniec,
* {{Code|naglowek}} - wartość napisu wprowadzenia tekstu nagłówka,
* {{Code|poziom_naglowka}} - poziom tego nagłówka.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
Funkcja służy do wyszukiwania, od tyłu, pozycji artykularnej przed wykrytym ostatnim rozdziałem, lub gdy nie ma rozdziałów, to liczy pozycję tylko artykularną, lub nawet pozycji rozdziałów zerowych spisu treści albo nawet tych z dwukropkiem na końcu danej linii, i szuka od tyłu takie coś, by to uznać za początek spisu treści wyciętej z tekstu zakodowanego spisu, czyli ogólnie mówiąc funkcja szuka dalej takiego początku dalszego.
Funkcja służy też do wydzielania części spisu spełniające powyższe kryteria, aby można było ją parsować przez inne funkcje '''Stronicowego parsera''', do wydzielania dalszych rozdziałów, a z nich wydzielania nagłówków (napisów wprowadzenia tekstu) i tekstów rozdziałów.
Funkcja pętluje przy wykrytych liniach składających się z odstępów, a się zatrzymuje na normalnych danych lub po zakończeniu zasobów.
Główny opis funkcji {{ZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}:
* Funkcja działa w oętli nieskończnonej, aż do zakończenia danych, lub do zwrócenia elementów przez nią,
* W tej pętli funkcja wyszukuje kolejne linie, które nie są pozycjami listy, z którego wyodrębiona linia jest analizowana bez przerwy, jeżeli istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje parametry:
** {{Code|liczba_start}} {{Patrz|liczba_start}} - od której pozycji od tyłu ma wyszukiwać pozycje artykularne,
** {{Code|czy_dalej_rozdzial}} {{Patrz|czy_dalej_rozdzial}} - czy {{ZobaczTeż|czy_dalej_rozdzial}} uznać za pierwszeństwo, w przypadku wykrytego rozdziału dodatniego w linii, lub nie wykrycia takiej linii, która nie jest częścią listy, wtedy jest ważny element (zmienna) {{LinkPatrz|liczba_start}}, przeciwnie jest brane, coś przeciwnego,
** {{Code|liczba_pierwszy_rozdzialowy_artykul}} - jak w: {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}}.
Parametry {{ZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}} zwracane przez funkcję, które są zwracane kolejno w niej na końcu jej działania:
* Początek takiego punktu, uzyskanym w końcu na końcowym obiektu pętli (wyjaśnienie w tekście),
* Liczba znaków odstępów wykrytych poczasz wszystkich obiektów pętli (jest to reprezzentowane przez: {{Code|liczba_spac}} {{Patrz|liczba_spac}}),
* Czy ta tak, uzyskana i zwrócona, linia jest rozdziałem spisu treści (jest to reprezentowane przez: {{Code|czy_spis}} {{Patrz|czy_spis}}).
Etapy zwracania przez funkcję elementów:
; Uzyskanie linii według ogólnego wzoru
* Według {{LinkZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}, tą linia, byłoby takie coś pomiędzy ewentualnie znakami nowymi liniami, która spełnia wzór: {{Code|<nowiki>([^%*#:;<>\n][^\n]*)</nowiki>}}. To wyszukiwanie jest według funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wyszukujący w sposób ogólny linie, niezależnie jak są one realizowane w tekście.
; Początek i koniec uzyskanej linii według powyższego sposobu{{dk}}
* Początek i koniec przechwyconej linii, to są pewne liczby, wraz ze znakami nowej linii, jeśli po któreś stronie istnieją, lub nawet gdy to są w tym elementy, początku lub końca, tekstu, wtedy długość tych elementów jest zero.
; Brak dopasowania linii
* A jeżeli dopasowanie tej linii nie zgłasza niedopasowania, wtedy przy prawdziwości zmiennej: {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według: {{LinkZobaczTeż|czy_dalej_rozdzial}}, zwracane jest: {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie, wartość minimalną, pomiędzy tą zmienną a inną {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}} (jeśli ta zmienna nie istnieje, to domyślnie ma wartość {{Code|1}}).
; Rozdział równaniowy{{dk}}
* Jeżeli tą linią jest rozdział równaniowy, to zwracane jest, jeżeli wartość {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według {{LinkZobaczTeż|czy_dalej_rozdzial}}, ma wartość fałszywą, wtedy jest to dopasowanie końca tej linii, w pierwszym parametrze zwracanym, wraz z innymi danymi, według {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}, a jeżeli ta wartość jest prawdą, to zwracane jest {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, bo w tej funkcji nie ma prawa takich rozdziałów dopasowywać.Ma dopaasowywać tylko normalne linie niebędące pozycjami listy.
; Pierwsze rozgałęzenie specjalne instrukcji warunkowej{{dk}}
: Znaki odstępów - linia to białe znaki:
* Jeżeli linia istnieje i składa się z samych znaków odstępów, to liczmy długość tych znaków, wraz z nowymi liniami po prawej lub lewej stronie, jeśli istnieją, i wsadzamy to do ogólnego licznika {{Code|liczba_spac}} {{LinkPatrz|liczba_spac}}, która jest zwracana na końcu działania funkcji, jako drugi parametr w: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}. Funkcja wykonuje tych okrążeń pętli tyle, ile jest kolejnych linii składających się z tych znaków.
; Przypadek istnienia linii nie składającej się ze znaków odstępów{{dk}}
: Rozdział spisu treści i rozdział zerowy:
* Jeśli linia jest spisem względem {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przyjmuje wartość początkowi takiej ustalonej linii w tekście, a {{Code|czy_spis}} {{LinkPatrz|czy_spis}} przyjmuje wartość prawdziwą.
* A jeśli tak nie jest, to sprawdzamy, czy przed tą linią jest rozdział zerowy na podstawie funkcji: {{LinkŚródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}. Jeżeli ona jest tym rozdziałem, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma już nową wartość, przeciwnie, jeśli ta linia ma na końcu dwukropek, to ta wartość nowa jest równa początkowi wyszukania tej linii, a jeśli nie, to końcowi. Zmienna, czy jest rozdział spisu {{Code|czy_spis}} {{LinkPatrz|czy_spis}} ma wartość prawdziwą, gdy ten rozdział zerowy istnieje, a jeśli nie, to fałszywą.
; Przypadek istnienia, lub nie, rozdziału zerowego{{dk}}
* Jeśli znaleziono taki rozdział (zerowy), to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, to wtedy nie ma żadnych dodatkowych instrukcji do wykonania.
* Punkty zwracania zmiennych, jeśli przeciwnie do poprzedniego:
** Jeśli znaleziono taki spis, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma wartość początkowi takiej linii
** A jeżeli przeciwnie, nie ma w nim kodów, to końcowi, jeśli wyszukana linia nie jest rozdziałem z dwukropkiem na końcu, a jeśli jest, to początkowi tej linii,
*** Wtedy ją, tą uzyskaną z obliczeń, trzeba wliczać w ramach wydzielonego spisu, wtedy zmienna {{Code|czy_spis}} jest prawdą,
** A jeśli jednak ma je, wtedy, czy linia ma pozycje artykularne, które nie są okładkami lub stronami niedozwolonymi, a jeśli tak jest, na podstawie wywołania funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, to zwracany jest początek wyszukania takiej linii w tej zmiennej, przeciwnie powtarzana jest ta wartość.
*** Wtedy, gdy linia nie ma takich artykułów, wtedy jeśli ona ma dwukropek na końcu, wtedy ustalamy zmienną {{Code|czy_spis}} na prawdę.
: Na samym końcu zwracane jest to wszystko w postaci parametrów: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}.
== {{Śródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}{{Code|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}} ==
Funkcja wyszukuje, czy dla obiektu o typie {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} o numerze liczbowym {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} - nie jako łańcuch znakowy, dla ich generowanego odpowiednika {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, generowanego z {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, są linki w zależności od podanej zmiennej {{LinkPatrz|czy_wszystkie_linki}}, a jeżeli tam nie ma linków, to przeszukiwany jest {{LinkPatrz|dalszy_tekst}} w ich poszukiwaniu, którymi zrządzą prawa w zależności od przyporządkowanej zmiennej {{LinkPatrz|czy_nieoddzielone}}, wartość prawdziwa tej zmiennej, włącza dowolność układu obiektów typu: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}.
Funkcja wyszukuje w linii, ale najwierw w: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, a później w: {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, jeżeli w poprzednim nie znalazł, pierwszego takiego linku przyporządkowagp, któremuś z tych obiektów, i przy pierwszym wykryciu zwraca wartość, ale dany obiekt uwwzględniany względem tego poprzedniegomusi spełniać prawa lub nie, w zależności od podanej zmiennej {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieLinkuWeSzablonieOrazDalszymNapisie(obiekt,kod,dalszy_tekst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_oddzielone,czy_wszystkie_linki)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}}, {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|czy_nieoddzielone}} {{Patrz|czy_nieoddzielone}} - czy linki mają być oddzielone interpunkcją, czy odstępami, w przypadu przeciwnym, jeżeli tak nie jest, to funkcja zwraca wartość fałszywą,
** {{Code|czy_wszystkie_linki}} {{Patrz|czy_wszystkie_linki}} - czy uwzględniaj wszystkie linki, czy tylko artykuły, nie okładki, (dozwolone), danej książki,
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy tekst, do przeszukiwania linkowego.
Funkcja zwraca wartość logiczną, jeżeli prawa linkowe tekstu są przyporządkowane przez zmienne: {{LinkPatrz|czy_nieoddzielone}} i {{LinkPatrz|czy_wszystkie_linki}}, to jeśli znalazłeś takie linki, to zwracaj wartość prrawdziwą, a jeśli nie, to fałszywą.
Jeśli zmienna {{LinkPatrz|czy_nieoddzielone}} przyjmuje wartość fałszywą, to te rozważane obiekty, muszą być oddzielone pewnymi znakami, tutaj: {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, a jak nie spełniają tego warunku, to funkcja zwraca wartość fałszywą, w innym wypadku dalej liczy i sprawdza.
== {{Śródtytuł|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}}{{Code|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}} ==
Funkcja jest rozszerzeniem funkcji: {{LinkŚródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}, dla ustalonych dwóch ostatnich zmiennych, które przyjmują wartość {{Code|true}} (prawdziwą), o nazwach: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}} i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, dla tej funkcji, mamy już zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, i {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, a funkcja w nagłówku je ustala, w wyniku działania w pętli.
Funkcja wyszukuje, od tyłu, w tekście, nabliższej pozycji typu: {{Code|SZABLON}}, {{Code|LINKW}} lub {{Code|LINKZ}}, w danej linii, i zwraca odpowiednio dwie wartości, pozycje wykrytą i wartość logiczną powodzenia, w innym przypadku, pozycję poczatkową z drugim parametrem fałszem.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako arguementy:
** {{Code|liczba_start_rozdzial}} - jak w: {{LinkPatrz|liczba_start_rozdzial}}, pozycja wyszukiwania końcowa,
** {{Code|liczba_spisowa}} {{Patrz|liczba_spisowa}} - pozycja wyszukiwania początkowa.
Parametry zwracane:
* Pierwszy parametr:
** Pozycja, w którym taką pozycję określona przez funkcję znaleziono, drugi parametr wtedy przyjmuje prawdę, jeśli nie znaleziono, takiej pozycji, to ta pozycja przymuje wartość początkową, adrugi parametr jest fałszem,
* Drugi parametr:
** Czy elementy są odzielone od sibie pewnymi znakami, według tej dokumentacji, i czy to są linki artykułów nieokładkowych dozwolonych, w najbliższej linii, wtedy zwraca w drugim parametrze prawdę, w przecciwnym wypadku, w przypadku znalezienia obiektu w najbliższej linii z: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, ale nie wykryto odpowiwdnich linków, według wspomnianej funkcji, wtedy zwracony ten paramtr będzie fałszem, kub do wyczerpania zasobów, też odpowiadającej fałśzowi,
Funkcja wyszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wykorzystując, że tekst jest zakodowany, i znajduje one przy pomocy wyrażenia regularnego generowanego przez: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, na podstawie kodu, którego fragment jest napisany tutaj:
<syntaxhighlight lang="lua">
local liczba_spisu=liczba_spisowa;
local szablonowe_modul=require("Module:Szablonowe");
---- Ustalenie wzoru kodowania, czyli jest to dowolny kod;
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu()
while(true)do
---- Wyszukuje dowolną linię według wyrażenia regularnego podanego w kodzie, zawartą całkowicie w linii;
local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
</syntaxhighlight>
Fukcja sprawdza, czy dokonano sprawdzenia, jeśli pozytywnie ono przeszło, to musi istnieć zmienna {{Code|liczba_linki_nierozdzialowe_szablonu}} {{Patrz|liczba_linki_nierozdzialowe_szablonu}} oraz musi być spełniona alternatywa dwóch warunków: {{Code|przed_tekst}} {{Patrz|przed_tekst}} musi być puste lub ma spełniać warunek według wzoru: {{Code|<nowiki>^[%p%s%d%.]*$</nowiki>}}.
Jeżeli funkcja nie dopasowała kodu: {{Code|obiekt_szablon}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, do wartości: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, to działa w pętli aż dopasuje je, aż do zakończenia zasobu danych dostępnych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, jeżeli nie mogła by tego zrobić. A jeśli je dopasowała, to sprawdza, czy te kody są odpowiednimi obiektami, ewentualnie oddzielonych od siebie znakami {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, poprzez sprawdzanie funkcją wspomnianą w nagłówku. Jeśli ta funkcja zwróci wartość prawdziwą, to zwrócone zostaną parametry:
<syntaxhighlight lang="lua">
return liczba_linki_nierozdzialowe_szablonu,true;
</syntaxhighlight>
W innych przypadkach, jeżeli takiego dopasowania nie znalazła, to zwróć szereg wartości:
<syntaxhighlight lang="lua">
return liczba_spisowa,false;
</syntaxhighlight>
W tym przypadku wartość {{Code|liczba_spisowa}} {{LinkPatrz|liczba_spisowa}}, to nic innego jak ostatni argument naszej funkcji, czyli w przypadku niepowoddzenia dopasowania, zwracana jest wartość ta początkowa, zdrugą wartością, że niezaleziono poszukiwanego obiektu.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowychZakresowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowychZakresowych}} ==
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowychZakresowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_pierwszy_rozdzialowy_artykul,liczba_przed_rozdzialem,liczba_start_naglowek_przed,czy_znajdz)...end;
</syntaxhighlight>
Parametry funkcji:
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
935pvrq8632f2ycoovgw1sow1aiqbvp
554549
554546
2026-09-05T20:12:26Z
Persino
2851
/* {{Śródtytuł|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}}{{Code|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}} */
554549
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
Jest to funkcja do sprawdzania tekstu zawartości (tekstu rozdziału, bez zawartości nagłówka) napisu wprowadzenia tekstu sekcji, za pomocą funkcji zwracanej, czy ona spełnia pewne określone warunki.
Funkcja, gdy co jest nie tak, to zwraca wartość {{Code|true}}, i przy okazji może zerować pewne określone zmienne, jeśli ona przy tym została odpowiednio ustawiona, przeciwnie ona zawsze zwraca wartość {{Code|nil}}, czyli nie zwraca żadnej wartości.
Za pomocą tej funkcji można sprawdzić, czy funkcja zawiera niedozwolone znaki wikikodu, i dlatego zwraca tą prawdziwość.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe)
... ---- ciało funkcji zwracanej
end;
end;
</syntaxhighlight>
Parametry ogólne funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|czy_zeruj}} {{Patrz|czy_zeruj}} - czy ma zerować, ścisle określone zmienne, które mieszczą się w niezerowej tablicy zmiennych składowych, tzn. w: {{LinkPatrz|tab_zmienne}},
* {{Code|tab_zmienne}} {{Patrz|tab_zmienne}} - zmienne w nim do zerowania,
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Parametry funkcji zwracanej dla tekstu rozważanego {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}:
* {{Code|liczba_koniec_naglowek}} {{Patrz|liczba_koniec_naglowek}} - numer znaku, po którym coś rozważamy,
* {{Code|liczba_obiekt_start_nowe}} {{Patrz|liczba_obiekt_start_nowe}} - numer znaku, przed którym coś rozważamy.
Funkcja zwracana sprawdza, czy zmienne: {{LinkPatrz|liczba_koniec_naglowek}} i {{LinkPatrz|liczba_obiekt_start_nowe}}, istnieją, i te zmienne sugerują punkty znakowe w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, ale jeżeli te zmienne liczbowe punktów znakowych mają takie wartości, że nie da się znaleźć dla tej zmiennej tekstowej treści pomiędzy nimi, to ta funkcja nie zwraca żadnej wartości, to zachodzi, kiedy nie jest spełniony warunek:
<syntaxhighlight lang="lua">
if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then
</syntaxhighlight>
* Liczenie zmiennej tekstowej za pomocą, którą będziemy sprawdzać:
: A jeżeli jest jednak tak, tzn. spełniony jest ten warunek, to znajdujemy taki tekst, robi to za pomocą funkcji: {{LzLua|mw.ustring.sub}}, i zapisuje to pod zmienną {{Code|str}} {{Patrz|str}}.
* Pierwszy etap analizowania tej zmiennej, czy jest poprawna, tzn. czy nie zwraca żadnej wartości, ale czy się zakańcza:
: Następnie sprawdza, czy ona jest w cudzysłowach, tzn. czy spełnia warunek: {{Code|<nowiki>^%s*'+(.+)'+%s*$</nowiki>}}, lub czy początek zaczyna się od znaków: {{Code|<nowiki>^[%*#:;<>]+</nowiki>}}, lub czy ten tekst zawiera dozwolone znaki z przedziału: {{Code|<nowiki>^[%s%p%w]*$</nowiki>}} - tzn. czy tekst składa się ze znaków odstępu, interpunkcyjnych, znaków alfanumerycznych lub z dolnym myślników, jeżeli któreś z tych warunków jest spełnione, to funkcja nie zwraca żadnej wartości, ale zatrzymuje się, tzn. zakańcza się, to oznacza, że wszystko jest w porządku. A jeżeli nie spełnione z żadnych z tych warunków, to ona idzie dalej, i robi następne czynności następne, aby sprawdzić dalsze warunki, czy wszystko jest w porządku.
* Sprawdzanie niepustych linii po liniach, ewentualnie składających się ze znaków odstępów:
: Funkcja liczy ile takich linii znalał, zapisuje to pod zmienną {{Code|ile}} {{Patrz|ile}}, jeśli wśród takich linii znalazł linie pasujące do: {{Code|<nowiki>^[%*#;:<>]</nowiki>}}, lub składające się znaków odstępów: {{Code|<nowiki>^%s*$</nowiki>}}, wtedy funkcja to liczy licznikiem: {{Code|ile_punktowanych}} {{Patrz|ile_punktowanych}}.
Funkcja w tak wyszukanych liniach w przeciwnym razie sprawdza, w liniach niepasujących do tych wzorów, czy tam są artykuły (strony) nie z rozważanej danej książki, przy pomocy funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}} {{Patrz|p.CzyGeneralnieElementSpisuRzeczy}}, jeśli są takie elementy, to funkcja dodaje to do licznika {{LinkPatrz|ile_punktowanych}}, aby dodać jeden do licznika, dla każdej takiej linii funkcja sprawdza, czy przynajmniej jeden taki artykuł się znajduje tam, w każdej takiej wykrytej linii.
Jeśli liczba określona przez zmienną: {{LinkPatrz|ile_punktowanych}}, jeżeli jest co najmniej równa wyszukanym liniom {{LinkPatrz|ile}}, to funcja się zatrzymuje, i nie zwraca żadnej wartości, czyli wskazuje na powodzenie.
* Zerowanie się pewnych wartości:
** Funkcja z tak policzonego {{LinkPatrz|str}} usuwa formy kodów z obiektami {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, a jeżeli znalazł w nim same, wtedy znaki odstępów, to ona nie zwraca żadnej wartości, ale się zakańcza, przeciwnie, sprawdza, czy jest zmienna: {{LinkPatrz|czy_zeruj}}, która jest prawdziwa, a jeśli tak, to elementy zmiennej {{LinkPatrz|tab_zmienne}} są nilowane, tzn. podzmienne o kluczach:
* {{Code|liczba_nie_okladka_artykul}} {{Patrz|liczba_nie_okladka_artykul}} - liczba pozycji sekcji wskazująca, czy istnieje pierwszy taki artykuł (nie okładka, nie strona niedozwolona) aktualnej książki, lub bezpośrednio taki artykuł, niekoniecznie tej książki, czy znajduje się bezpośrednio w pozycji sekcji, i tylko sam tam się znajduje,
* {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{Patrz|liczba_pierwszy_rozdzialowy_artykul}} - liczba pozycji sekcji, która wskazuje na pierwszy taki wykryty artykuł, licząc od przodu, który spełnia pewne ścisle okreslone kryteria, jest to dowolny artykuł,jaki może być w książce,
: Kryteria określone przez te zmienne powyżej są określone przez funkcję: {{LinkPatrz|p.CzyGeneralnieElementSpisuRzeczy}},
* {{Code|czy_ten_rozdzial}} {{Patrz|czy_ten_rozdzial}} - wartość prawdziwą wskazuje, czy wynilowano zmienne należące do rozważanej tablicy.
Ale niezależnie od wartości {{LinkPatrz|czy_zeruj}}, funkcja wtedy zwraca zawsze wraca wartość {{Code|true}}, czyli ona zwraca to niepowodzenie.
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
Funkcja wyszukuje, od tyłu, kolejne rozdziały (napisy wprowadzenia tekstu), którego tekst rozdziału składa się z samych znaków odstępów, lub jest pusty, albo o poziomie wyższym rozdziałowo, nawet gdy jego tekst rozdziału jednak nie jest pusty.
Funkcja jest przerywana po najbliższych niespełniających warunkach. Funkcja zwraca parametry, z ostatniego pasującego dopasowana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - podczas wyszukiwania od tyłu, do jakiego punktu ma wyszukiwać,
* {{Code|liczba_obiekt_start_nowe}} - jak w: {{LinkPatrz|liczba_obiekt_start_nowe}}, wykorzystywane w funkcji: {{linkPatrz|AnalizowanieSekcjowe}}, do sprawdzania pomiędzy znakami: końcem wyszukiwanego nagłówka, wraz ze znakiem nowej linii, a tą zmienną, do sprawdzania, czy tekst rozdziału spełnia ściśle określone normy określone przez tą funkcję, jest to pozycja taka na jaką wskazuje również pozycja jakaś artykularna, prze którym sprawdzamy tą funkcją tekst,
* {{Code|liczba_obiekt_start_spac_par}} {{Patrz|liczba_obiekt_start_spac_par}} - numer znaku, od którego ma wyszukiwać od tytułu pewne linie,
* {{Code|czy_dodatni}} {{Patrz|czy_dodatni}} - typ wyszukiwania rozdziałów, tzn. {{LinkZobaczTeż|czy_dodatni}},
* {{Code|czy_bez_naglowka}} {{Patrz|czy_bez_naglowka}} - czy ma wyszukiwać do: {{Code|1}}, od tytułu, a nie do: {{LinkPatrz|liczba_start_rozdzial}},
* {{Code|AnalizowanieSekcjowe}} {{Patrz|AnalizowanieSekcjowe}} - to nic innego jest, jak funkcja inicjowana przez zwracaną procedurę przez: {{LinkŚródtytuł|p.AnalizowanieSekcjowe}}, która ma w sobie pewne elementy początkowe w sobie wsadzonych jako parametry, które są wykorzystywane prze obiekt przez nią zwracany, która coś robi.
; Typy dopasowywania rozdziałów paarametru{{dk}} {{nobold|czy_dodatni {{Code|{{=}}}} {{LinkPatrz|czy_dodatni}} {{ZobaczTeż|czy_dodatni}}}}{{dk}}
* {{Code|1}} - wyszukuje rozdziały wskazywane przez funkcję: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}},
* {{Code|2}} - wyszukuje pozycje list zaczynające się od znaków: {{Code|<nowiki>[%*#:;<>]+</nowiki>}}, jako pewne rozdziały, które trzeba wyszukać,
* Inna wartość niż dwie powyższe - wtedy są wyszukiwane rozdziały niezaczynające się od: {{Code|<nowiki>[^%*#:;<>\n]</nowiki>}}, i kończące się na dwukropek.
: Dla dwóch ostatnich powyższych punktów są wyszukiwane linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
: Funkcja dla tych dwóch pierwszych sprawdza, tylko raz, czy to jest rozdział spisu treści wskazywaną przez funkcję: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, jeżeli parsowanie przeszło niepomyślnie, a funkcja {{LinkPatrz|AnalizowanieSekcjowe}} zrzuci wartość prawdziwą, wtedy ta cała funkcja z nagłówka zrzuca wartość logiczną fałszywą. Ta funkcja wykorzystuje wartość: {{LinkPatrz|liczba_obiekt_start_nowe}}, jako drugi parametr, dla którego liczy ona tekst przed, ta zmienna może wskazywać na początek pozycji linii artykularnej (z artykułami), aby ona policzyła swoją wartość.
Funkcja działa w pętli do zakończenia zasobu danych lub w inny sposób, ale też do zakończenia. Funkcja wtedy robi operacje zawsze dla {{LinkPatrz|czy_dodatni}} równe {{Code|1}} lub dla tych, gdzie: {{LinkŚródtytuł|p.CzyTamElementyNieSpisoweArtykularne|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, zwraca wartość logiczną prawdziwą, własnie dla tego, jeśli ta operacja zwróci prawdę, to dla tego są dopasowywane elementy zwracane. Wtedy wiadomo, że wyszukane tak pozycje są rozdziałami.
Funkcja zwraca wyniku w postaci wartości szegu zwracanych:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej;
</syntaxhighlight>
Wytłumaczenie tych elementów zrzuconych przez nią dla dopasowań, licząc od tyłu:
; Ostanie dopasowanie nagłówka pasujące, gdy tekst jego rozdziału jest równy znakom odstępu lub jest pusty{{dk}}
* {{Code|liczba_start_naglowek}} - początek ostatniego wyszukanego takiego nagłówka,
* {{Code|liczba_koniec_naglowek_poczt}} - koniec pierwszego wyszukanego nagłówka,
* {{Code|naglowek}} - wartość nagłówka dla tego ostatniego dopasowania,
* {{Code|poziom_naglowka}} - poziom takiego nagłówka,
; Niepasujący nagłówek, wyszukane pierwsze z kolei po pasującym{{dk}}
: Według wartości zwracanych powyższych w pierwszej kolejności, dla którego tekst rozdziału nie jest równa znakom odstępu i nie jest pusty:
* {{Code|liczba_start_naglowek_dalej}} - początek po pasującym tak nagłówku,
* {{Code|liczba_koniec_naglowek_dalej}} - a tutaj jego koniec,
* {{Code|naglowek_dalej}} - wartość tekstu napisu wprowadzenia tekstu,
* {{Code|poziom_naglowek_dalej}} - tutaj jego poziom.
W przypadku nieznalezienia takich nagłówków funkcja nie zwraca niczego.
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
Funkcja służy do zaawansowanego szukania, od tyłu, nagłówków w przeciwieństwie do: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, która służy przede wszystkim do szukania sekcji kolejnych jednego rodzaju, a ta funkcja znajduje się w postaci wielu typów, ona wie, że w tekście może być równy układ nagłówków różnych typów.
Funkcja wyszukuje od tyłu, znajduje parametry ostatniego nagłówka i je zwraca, jeżeli je znalazł, a jeśli nie, to nie zwraca żadnej wartości, tylko funkcja się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Jedynie funkcja nie ma parametru: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, ponieważ ta funkcji nie szuka kolejnych rozdziałów tylko jednego rodzaju, lecz wielu.
=== {{Śródtytuł|str_spacja_lub_zerowy_naglowek}}{{Code|str_spacja_lub_zerowy_naglowek}} ===
Dla każdej takiej niepustej linii, sprawdzane jest, czy to są linie z odstępami lub nie będące elementami listy, ale w sposób rozszerzony, tzn. ten początek nie może składać się z pewnych znaków, czyli: {{Code|<nowiki>^[^%*#:;<>\n]</nowiki>}}.
Funkcja sprawdza, czy liczba takich linii, jest taka sama, ile jest niepustych linii, wtedy funkcja zwraca wartość logiczną prawdziwą, przeciwnie wartość nilową.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local str_spacja_lub_zerowy_naglowek=function(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do sprawdzenia.
=== Ciąg dalszy opisu funkcji ===
; Etapy dopasowania ostatniego dopasowania rozdziałów, jego pozycja w tekście i jego napis wprowadzenia tekstu
* Etap ogólny
Funkcja najpierw wyszukuje rozdziały poprzez wskazanie przez funkcję: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, a jeżeli znalazł artykuł, o niepustych secjach pomiędzy ostatnim wskazanym artykułen (przed artykułem), a rozdziałem, wtedy ta funkcja zwraca wartość logiczną fałszywą i zwraca wartość nilową, czyli nic nie zwraca, i funkcja się zakańcza, i wskazuje, że nie znalazł takiego nagłówka, to się dzieje pod warunkiem, że funkcja: {{LinkPatrz|AnalizowanieSekcjowe}}, została podana, w przeciwnym wypadku, to już tak się nie dzieje, a nagłówek z tego wywołania mógł być znaleziony, ale nie musiał.
; Etapy alternatywy
* Pierwszy etap
** To dotyczy, że znalazł ostatnie dopasowanie, ale niepasującego nagłówka przed nim nie ma.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli tego nie znalazł, wtedy przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, w pętli nieskończonej, najpierw dla parametru: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, najpierw jest to pierwsze, a później to drugie, jeśli z tego pierwszego zostało wykonana komenda przerwania pętli, to drugie dopasowanie nie zostanie wykonane w danym obiegu jego, normalnie, bez tego są dwa wywołania.
W każdym takim wywołaniu i dopasowaniu, w pierwszym, czy drugim, będzie sprawdzane, czy tego dokonano, czy taki nagłówek znaleziono, a jeśli tak, to sprawdzany jest tekst pomiędzy ostatnim końcem w wykrytym nagłówku, a początkiem tego przedostatniego, lub z etapu ogólnego, funkcją: {{LinkŚródtytuł|str_spacja_lub_zerowy_naglowek}}, jeżeli funkcja zwróciła wartość logiczną odpowiadającej fałszywej, to pętla jest przerywana, w przeciwnym wypadku są inicjowane parametry tego dopasowania, które przygotowuje ona zwrócić do funkcji w nagłówku.
: Ogólnie po drugim taki wywołaniu następuje sprawdzenie parametrów zwróconych:
Jeżeli w ostatnim takim wywołaniu w tym funkcja zwraca niedopasowanie, wtedy zwracane jest przerywanie pętli, wtedy mamy parametry ostatniego dopasowania, jeśli istnieją takie.
* Drugi
** To dotyczy, że takiego dopasowania pasującego nie znalazł.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli to znalazł, to wyszukany stąd nagłówek jest rozwijany przy pomocy funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}. Jeżeli parser funkcji nie wykrył wykrzyknika na końcu takiego nagłówka, wtedy jest sprawdzane przy pomocy iteratora w zakodowanym tekście przy pomocy: {{Code|{{m|Szablonowe}}}}, na podstawie: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, czy w nagłówku istnieje artykuły bieżącej ksiązki, czy analizowanej, i czy to nie jest okładka, czy strona niedozwolona. Jeżeli wykryto takie artykuły, lub pętla nie została wykonana, bo nie ma takich wykrytym nagłówku kodów, to funkcja inicjuje parametry zwracanych wartości przez funkcję w nagłówku.
* Trzeci
** To dotyczy pozostałych przypadków, w którym znalazł ostatnie dopasowanie, a niepasujące przed nim też znalazł.
Jest wywoływane wywołanie: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, najpierw w pierwszym wywołaniu dla: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, a w każdym takim wywołaniu po jest sprawdzane, czy tekst pomiędzy końcem ostatniego wykrytego nagłówka, a początkiem przedostatniego nagłówka, a nawet artykułu wykrytego, czyli czy taki tekst rozdziału, czy składa się z samych znaków odstępów, a jeśli tak, to inicjowane są parametry zwracane przez funkcję. Dalej przechodzimy z pierwszego do drugiego wywołania, w którym oba wywołania są podobnie zbudowane.
; Parametry wychodzące z funkcji{{dk}}
* Oto parametry inicjowane przez funkcję w tych powyższych trzech etapach alternatywnych, które na końcu funkcji w nagłówku są zwracane:
: Funkcja zwraca wartości określone przez kod:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka;
</syntaxhighlight>
Wytłumaczenia parametrów zwracanych:
; Parametry określają ostatnie dopasowanie nagłówkowe w wewnątrz funkcji{{dk}}
* {{Code|liczba_start_naglowek}} - początek tego dopasowania,
* {{Code|liczba_koniec_naglowek}} - jego koniec,
* {{Code|naglowek}} - wartość napisu wprowadzenia tekstu nagłówka,
* {{Code|poziom_naglowka}} - poziom tego nagłówka.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
Funkcja służy do wyszukiwania, od tyłu, pozycji artykularnej przed wykrytym ostatnim rozdziałem, lub gdy nie ma rozdziałów, to liczy pozycję tylko artykularną, lub nawet pozycji rozdziałów zerowych spisu treści albo nawet tych z dwukropkiem na końcu danej linii, i szuka od tyłu takie coś, by to uznać za początek spisu treści wyciętej z tekstu zakodowanego spisu, czyli ogólnie mówiąc funkcja szuka dalej takiego początku dalszego.
Funkcja służy też do wydzielania części spisu spełniające powyższe kryteria, aby można było ją parsować przez inne funkcje '''Stronicowego parsera''', do wydzielania dalszych rozdziałów, a z nich wydzielania nagłówków (napisów wprowadzenia tekstu) i tekstów rozdziałów.
Funkcja pętluje przy wykrytych liniach składających się z odstępów, a się zatrzymuje na normalnych danych lub po zakończeniu zasobów.
Główny opis funkcji {{ZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}:
* Funkcja działa w oętli nieskończnonej, aż do zakończenia danych, lub do zwrócenia elementów przez nią,
* W tej pętli funkcja wyszukuje kolejne linie, które nie są pozycjami listy, z którego wyodrębiona linia jest analizowana bez przerwy, jeżeli istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje parametry:
** {{Code|liczba_start}} {{Patrz|liczba_start}} - od której pozycji od tyłu ma wyszukiwać pozycje artykularne,
** {{Code|czy_dalej_rozdzial}} {{Patrz|czy_dalej_rozdzial}} - czy {{ZobaczTeż|czy_dalej_rozdzial}} uznać za pierwszeństwo, w przypadku wykrytego rozdziału dodatniego w linii, lub nie wykrycia takiej linii, która nie jest częścią listy, wtedy jest ważny element (zmienna) {{LinkPatrz|liczba_start}}, przeciwnie jest brane, coś przeciwnego,
** {{Code|liczba_pierwszy_rozdzialowy_artykul}} - jak w: {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}}.
Parametry {{ZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}} zwracane przez funkcję, które są zwracane kolejno w niej na końcu jej działania:
* Początek takiego punktu, uzyskanym w końcu na końcowym obiektu pętli (wyjaśnienie w tekście),
* Liczba znaków odstępów wykrytych poczasz wszystkich obiektów pętli (jest to reprezzentowane przez: {{Code|liczba_spac}} {{Patrz|liczba_spac}}),
* Czy ta tak, uzyskana i zwrócona, linia jest rozdziałem spisu treści (jest to reprezentowane przez: {{Code|czy_spis}} {{Patrz|czy_spis}}).
Etapy zwracania przez funkcję elementów:
; Uzyskanie linii według ogólnego wzoru
* Według {{LinkZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}, tą linia, byłoby takie coś pomiędzy ewentualnie znakami nowymi liniami, która spełnia wzór: {{Code|<nowiki>([^%*#:;<>\n][^\n]*)</nowiki>}}. To wyszukiwanie jest według funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wyszukujący w sposób ogólny linie, niezależnie jak są one realizowane w tekście.
; Początek i koniec uzyskanej linii według powyższego sposobu{{dk}}
* Początek i koniec przechwyconej linii, to są pewne liczby, wraz ze znakami nowej linii, jeśli po któreś stronie istnieją, lub nawet gdy to są w tym elementy, początku lub końca, tekstu, wtedy długość tych elementów jest zero.
; Brak dopasowania linii
* A jeżeli dopasowanie tej linii nie zgłasza niedopasowania, wtedy przy prawdziwości zmiennej: {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według: {{LinkZobaczTeż|czy_dalej_rozdzial}}, zwracane jest: {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie, wartość minimalną, pomiędzy tą zmienną a inną {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}} (jeśli ta zmienna nie istnieje, to domyślnie ma wartość {{Code|1}}).
; Rozdział równaniowy{{dk}}
* Jeżeli tą linią jest rozdział równaniowy, to zwracane jest, jeżeli wartość {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według {{LinkZobaczTeż|czy_dalej_rozdzial}}, ma wartość fałszywą, wtedy jest to dopasowanie końca tej linii, w pierwszym parametrze zwracanym, wraz z innymi danymi, według {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}, a jeżeli ta wartość jest prawdą, to zwracane jest {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, bo w tej funkcji nie ma prawa takich rozdziałów dopasowywać.Ma dopaasowywać tylko normalne linie niebędące pozycjami listy.
; Pierwsze rozgałęzenie specjalne instrukcji warunkowej{{dk}}
: Znaki odstępów - linia to białe znaki:
* Jeżeli linia istnieje i składa się z samych znaków odstępów, to liczmy długość tych znaków, wraz z nowymi liniami po prawej lub lewej stronie, jeśli istnieją, i wsadzamy to do ogólnego licznika {{Code|liczba_spac}} {{LinkPatrz|liczba_spac}}, która jest zwracana na końcu działania funkcji, jako drugi parametr w: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}. Funkcja wykonuje tych okrążeń pętli tyle, ile jest kolejnych linii składających się z tych znaków.
; Przypadek istnienia linii nie składającej się ze znaków odstępów{{dk}}
: Rozdział spisu treści i rozdział zerowy:
* Jeśli linia jest spisem względem {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przyjmuje wartość początkowi takiej ustalonej linii w tekście, a {{Code|czy_spis}} {{LinkPatrz|czy_spis}} przyjmuje wartość prawdziwą.
* A jeśli tak nie jest, to sprawdzamy, czy przed tą linią jest rozdział zerowy na podstawie funkcji: {{LinkŚródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}. Jeżeli ona jest tym rozdziałem, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma już nową wartość, przeciwnie, jeśli ta linia ma na końcu dwukropek, to ta wartość nowa jest równa początkowi wyszukania tej linii, a jeśli nie, to końcowi. Zmienna, czy jest rozdział spisu {{Code|czy_spis}} {{LinkPatrz|czy_spis}} ma wartość prawdziwą, gdy ten rozdział zerowy istnieje, a jeśli nie, to fałszywą.
; Przypadek istnienia, lub nie, rozdziału zerowego{{dk}}
* Jeśli znaleziono taki rozdział (zerowy), to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, to wtedy nie ma żadnych dodatkowych instrukcji do wykonania.
* Punkty zwracania zmiennych, jeśli przeciwnie do poprzedniego:
** Jeśli znaleziono taki spis, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma wartość początkowi takiej linii
** A jeżeli przeciwnie, nie ma w nim kodów, to końcowi, jeśli wyszukana linia nie jest rozdziałem z dwukropkiem na końcu, a jeśli jest, to początkowi tej linii,
*** Wtedy ją, tą uzyskaną z obliczeń, trzeba wliczać w ramach wydzielonego spisu, wtedy zmienna {{Code|czy_spis}} jest prawdą,
** A jeśli jednak ma je, wtedy, czy linia ma pozycje artykularne, które nie są okładkami lub stronami niedozwolonymi, a jeśli tak jest, na podstawie wywołania funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, to zwracany jest początek wyszukania takiej linii w tej zmiennej, przeciwnie powtarzana jest ta wartość.
*** Wtedy, gdy linia nie ma takich artykułów, wtedy jeśli ona ma dwukropek na końcu, wtedy ustalamy zmienną {{Code|czy_spis}} na prawdę.
: Na samym końcu zwracane jest to wszystko w postaci parametrów: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}.
== {{Śródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}{{Code|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}} ==
Funkcja wyszukuje, czy dla obiektu o typie {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} o numerze liczbowym {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} - nie jako łańcuch znakowy, dla ich generowanego odpowiednika {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, generowanego z {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, są linki w zależności od podanej zmiennej {{LinkPatrz|czy_wszystkie_linki}}, a jeżeli tam nie ma linków, to przeszukiwany jest {{LinkPatrz|dalszy_tekst}} w ich poszukiwaniu, którymi zrządzą prawa w zależności od przyporządkowanej zmiennej {{LinkPatrz|czy_nieoddzielone}}, wartość prawdziwa tej zmiennej, włącza dowolność układu obiektów typu: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}.
Funkcja wyszukuje w linii, ale najwierw w: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, a później w: {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, jeżeli w poprzednim nie znalazł, pierwszego takiego linku przyporządkowagp, któremuś z tych obiektów, i przy pierwszym wykryciu zwraca wartość, ale dany obiekt uwwzględniany względem tego poprzedniegomusi spełniać prawa lub nie, w zależności od podanej zmiennej {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieLinkuWeSzablonieOrazDalszymNapisie(obiekt,kod,dalszy_tekst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_oddzielone,czy_wszystkie_linki)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}}, {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|czy_nieoddzielone}} {{Patrz|czy_nieoddzielone}} - czy linki mają być oddzielone interpunkcją, czy odstępami, w przypadu przeciwnym, jeżeli tak nie jest, to funkcja zwraca wartość fałszywą,
** {{Code|czy_wszystkie_linki}} {{Patrz|czy_wszystkie_linki}} - czy uwzględniaj wszystkie linki, czy tylko artykuły, nie okładki, (dozwolone), danej książki,
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy tekst, do przeszukiwania linkowego.
Funkcja zwraca wartość logiczną, jeżeli prawa linkowe tekstu są przyporządkowane przez zmienne: {{LinkPatrz|czy_nieoddzielone}} i {{LinkPatrz|czy_wszystkie_linki}}, to jeśli znalazłeś takie linki, to zwracaj wartość prrawdziwą, a jeśli nie, to fałszywą.
Jeśli zmienna {{LinkPatrz|czy_nieoddzielone}} przyjmuje wartość fałszywą, to te rozważane obiekty, muszą być oddzielone pewnymi znakami, tutaj: {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, a jak nie spełniają tego warunku, to funkcja zwraca wartość fałszywą, w innym wypadku dalej liczy i sprawdza.
== {{Śródtytuł|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}}{{Code|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}} ==
Funkcja jest rozszerzeniem funkcji: {{LinkŚródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}, dla ustalonych dwóch ostatnich zmiennych, które przyjmują wartość {{Code|true}} (prawdziwą), o nazwach: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}} i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, dla tej funkcji, mamy już zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, i {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, a funkcja w nagłówku je ustala, w wyniku działania w pętli.
Funkcja wyszukuje, od tyłu, w tekście, nabliższej pozycji typu: {{Code|SZABLON}}, {{Code|LINKW}} lub {{Code|LINKZ}}, w danej linii, i zwraca odpowiednio dwie wartości, pozycje wykrytą i wartość logiczną powodzenia, w innym przypadku, pozycję poczatkową z drugim parametrem fałszem.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|liczba_start_rozdzial}} - jak w: {{LinkPatrz|liczba_start_rozdzial}}, pozycja wyszukiwania końcowa,
** {{Code|liczba_spisowa}} {{Patrz|liczba_spisowa}} - pozycja wyszukiwania początkowa.
Parametry zwracane:
* Pierwszy parametr:
** Pozycja, w którym taką pozycję określona przez funkcję znaleziono, drugi parametr wtedy przyjmuje prawdę, jeśli nie znaleziono, takiej pozycji, to ta pozycja przymuje wartość początkową, adrugi parametr jest fałszem,
* Drugi parametr:
** Czy elementy są odzielone od sibie pewnymi znakami, według tej dokumentacji, i czy to są linki artykułów nieokładkowych dozwolonych, w najbliższej linii, wtedy zwraca w drugim parametrze prawdę, w przecciwnym wypadku, w przypadku znalezienia obiektu w najbliższej linii z: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, ale nie wykryto odpowiwdnich linków, według wspomnianej funkcji, wtedy zwracony ten paramtr będzie fałszem, kub do wyczerpania zasobów, też odpowiadającej fałśzowi,
Funkcja wyszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wykorzystując, że tekst jest zakodowany, i znajduje one przy pomocy wyrażenia regularnego generowanego przez: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, na podstawie kodu, którego fragment jest napisany tutaj:
<syntaxhighlight lang="lua">
local liczba_spisu=liczba_spisowa;
local szablonowe_modul=require("Module:Szablonowe");
---- Ustalenie wzoru kodowania, czyli jest to dowolny kod;
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu()
while(true)do
---- Wyszukuje dowolną linię według wyrażenia regularnego podanego w kodzie, zawartą całkowicie w linii;
local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
</syntaxhighlight>
Fukcja sprawdza, czy dokonano sprawdzenia, jeśli pozytywnie ono przeszło, to musi istnieć zmienna {{Code|liczba_linki_nierozdzialowe_szablonu}} {{Patrz|liczba_linki_nierozdzialowe_szablonu}} oraz musi być spełniona alternatywa dwóch warunków: {{Code|przed_tekst}} {{Patrz|przed_tekst}} musi być puste lub ma spełniać warunek według wzoru: {{Code|<nowiki>^[%p%s%d%.]*$</nowiki>}}.
Jeżeli funkcja nie dopasowała kodu: {{Code|obiekt_szablon}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, do wartości: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, to działa w pętli aż dopasuje je, aż do zakończenia zasobu danych dostępnych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, jeżeli nie mogła by tego zrobić. A jeśli je dopasowała, to sprawdza, czy te kody są odpowiednimi obiektami, ewentualnie oddzielonych od siebie znakami {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, poprzez sprawdzanie funkcją wspomnianą w nagłówku. Jeśli ta funkcja zwróci wartość prawdziwą, to zwrócone zostaną parametry:
<syntaxhighlight lang="lua">
return liczba_linki_nierozdzialowe_szablonu,true;
</syntaxhighlight>
W innych przypadkach, jeżeli takiego dopasowania nie znalazła, to zwróć szereg wartości:
<syntaxhighlight lang="lua">
return liczba_spisowa,false;
</syntaxhighlight>
W tym przypadku wartość {{Code|liczba_spisowa}} {{LinkPatrz|liczba_spisowa}}, to nic innego jak ostatni argument naszej funkcji, czyli w przypadku niepowoddzenia dopasowania, zwracana jest wartość ta początkowa, zdrugą wartością, że niezaleziono poszukiwanego obiektu.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowychZakresowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowychZakresowych}} ==
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowychZakresowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_pierwszy_rozdzialowy_artykul,liczba_przed_rozdzialem,liczba_start_naglowek_przed,czy_znajdz)...end;
</syntaxhighlight>
Parametry funkcji:
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
swzso02o09ofkml465vu4x561r4phnz
554550
554549
2026-09-05T20:29:56Z
Persino
2851
/* {{Śródtytuł|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}}{{Code|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}} */
554550
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
Jest to funkcja do sprawdzania tekstu zawartości (tekstu rozdziału, bez zawartości nagłówka) napisu wprowadzenia tekstu sekcji, za pomocą funkcji zwracanej, czy ona spełnia pewne określone warunki.
Funkcja, gdy co jest nie tak, to zwraca wartość {{Code|true}}, i przy okazji może zerować pewne określone zmienne, jeśli ona przy tym została odpowiednio ustawiona, przeciwnie ona zawsze zwraca wartość {{Code|nil}}, czyli nie zwraca żadnej wartości.
Za pomocą tej funkcji można sprawdzić, czy funkcja zawiera niedozwolone znaki wikikodu, i dlatego zwraca tą prawdziwość.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe)
... ---- ciało funkcji zwracanej
end;
end;
</syntaxhighlight>
Parametry ogólne funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|czy_zeruj}} {{Patrz|czy_zeruj}} - czy ma zerować, ścisle określone zmienne, które mieszczą się w niezerowej tablicy zmiennych składowych, tzn. w: {{LinkPatrz|tab_zmienne}},
* {{Code|tab_zmienne}} {{Patrz|tab_zmienne}} - zmienne w nim do zerowania,
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Parametry funkcji zwracanej dla tekstu rozważanego {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}:
* {{Code|liczba_koniec_naglowek}} {{Patrz|liczba_koniec_naglowek}} - numer znaku, po którym coś rozważamy,
* {{Code|liczba_obiekt_start_nowe}} {{Patrz|liczba_obiekt_start_nowe}} - numer znaku, przed którym coś rozważamy.
Funkcja zwracana sprawdza, czy zmienne: {{LinkPatrz|liczba_koniec_naglowek}} i {{LinkPatrz|liczba_obiekt_start_nowe}}, istnieją, i te zmienne sugerują punkty znakowe w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, ale jeżeli te zmienne liczbowe punktów znakowych mają takie wartości, że nie da się znaleźć dla tej zmiennej tekstowej treści pomiędzy nimi, to ta funkcja nie zwraca żadnej wartości, to zachodzi, kiedy nie jest spełniony warunek:
<syntaxhighlight lang="lua">
if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then
</syntaxhighlight>
* Liczenie zmiennej tekstowej za pomocą, którą będziemy sprawdzać:
: A jeżeli jest jednak tak, tzn. spełniony jest ten warunek, to znajdujemy taki tekst, robi to za pomocą funkcji: {{LzLua|mw.ustring.sub}}, i zapisuje to pod zmienną {{Code|str}} {{Patrz|str}}.
* Pierwszy etap analizowania tej zmiennej, czy jest poprawna, tzn. czy nie zwraca żadnej wartości, ale czy się zakańcza:
: Następnie sprawdza, czy ona jest w cudzysłowach, tzn. czy spełnia warunek: {{Code|<nowiki>^%s*'+(.+)'+%s*$</nowiki>}}, lub czy początek zaczyna się od znaków: {{Code|<nowiki>^[%*#:;<>]+</nowiki>}}, lub czy ten tekst zawiera dozwolone znaki z przedziału: {{Code|<nowiki>^[%s%p%w]*$</nowiki>}} - tzn. czy tekst składa się ze znaków odstępu, interpunkcyjnych, znaków alfanumerycznych lub z dolnym myślników, jeżeli któreś z tych warunków jest spełnione, to funkcja nie zwraca żadnej wartości, ale zatrzymuje się, tzn. zakańcza się, to oznacza, że wszystko jest w porządku. A jeżeli nie spełnione z żadnych z tych warunków, to ona idzie dalej, i robi następne czynności następne, aby sprawdzić dalsze warunki, czy wszystko jest w porządku.
* Sprawdzanie niepustych linii po liniach, ewentualnie składających się ze znaków odstępów:
: Funkcja liczy ile takich linii znalał, zapisuje to pod zmienną {{Code|ile}} {{Patrz|ile}}, jeśli wśród takich linii znalazł linie pasujące do: {{Code|<nowiki>^[%*#;:<>]</nowiki>}}, lub składające się znaków odstępów: {{Code|<nowiki>^%s*$</nowiki>}}, wtedy funkcja to liczy licznikiem: {{Code|ile_punktowanych}} {{Patrz|ile_punktowanych}}.
Funkcja w tak wyszukanych liniach w przeciwnym razie sprawdza, w liniach niepasujących do tych wzorów, czy tam są artykuły (strony) nie z rozważanej danej książki, przy pomocy funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}} {{Patrz|p.CzyGeneralnieElementSpisuRzeczy}}, jeśli są takie elementy, to funkcja dodaje to do licznika {{LinkPatrz|ile_punktowanych}}, aby dodać jeden do licznika, dla każdej takiej linii funkcja sprawdza, czy przynajmniej jeden taki artykuł się znajduje tam, w każdej takiej wykrytej linii.
Jeśli liczba określona przez zmienną: {{LinkPatrz|ile_punktowanych}}, jeżeli jest co najmniej równa wyszukanym liniom {{LinkPatrz|ile}}, to funcja się zatrzymuje, i nie zwraca żadnej wartości, czyli wskazuje na powodzenie.
* Zerowanie się pewnych wartości:
** Funkcja z tak policzonego {{LinkPatrz|str}} usuwa formy kodów z obiektami {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, a jeżeli znalazł w nim same, wtedy znaki odstępów, to ona nie zwraca żadnej wartości, ale się zakańcza, przeciwnie, sprawdza, czy jest zmienna: {{LinkPatrz|czy_zeruj}}, która jest prawdziwa, a jeśli tak, to elementy zmiennej {{LinkPatrz|tab_zmienne}} są nilowane, tzn. podzmienne o kluczach:
* {{Code|liczba_nie_okladka_artykul}} {{Patrz|liczba_nie_okladka_artykul}} - liczba pozycji sekcji wskazująca, czy istnieje pierwszy taki artykuł (nie okładka, nie strona niedozwolona) aktualnej książki, lub bezpośrednio taki artykuł, niekoniecznie tej książki, czy znajduje się bezpośrednio w pozycji sekcji, i tylko sam tam się znajduje,
* {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{Patrz|liczba_pierwszy_rozdzialowy_artykul}} - liczba pozycji sekcji, która wskazuje na pierwszy taki wykryty artykuł, licząc od przodu, który spełnia pewne ścisle okreslone kryteria, jest to dowolny artykuł,jaki może być w książce,
: Kryteria określone przez te zmienne powyżej są określone przez funkcję: {{LinkPatrz|p.CzyGeneralnieElementSpisuRzeczy}},
* {{Code|czy_ten_rozdzial}} {{Patrz|czy_ten_rozdzial}} - wartość prawdziwą wskazuje, czy wynilowano zmienne należące do rozważanej tablicy.
Ale niezależnie od wartości {{LinkPatrz|czy_zeruj}}, funkcja wtedy zwraca zawsze wraca wartość {{Code|true}}, czyli ona zwraca to niepowodzenie.
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
Funkcja wyszukuje, od tyłu, kolejne rozdziały (napisy wprowadzenia tekstu), którego tekst rozdziału składa się z samych znaków odstępów, lub jest pusty, albo o poziomie wyższym rozdziałowo, nawet gdy jego tekst rozdziału jednak nie jest pusty.
Funkcja jest przerywana po najbliższych niespełniających warunkach. Funkcja zwraca parametry, z ostatniego pasującego dopasowana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - podczas wyszukiwania od tyłu, do jakiego punktu ma wyszukiwać,
* {{Code|liczba_obiekt_start_nowe}} - jak w: {{LinkPatrz|liczba_obiekt_start_nowe}}, wykorzystywane w funkcji: {{linkPatrz|AnalizowanieSekcjowe}}, do sprawdzania pomiędzy znakami: końcem wyszukiwanego nagłówka, wraz ze znakiem nowej linii, a tą zmienną, do sprawdzania, czy tekst rozdziału spełnia ściśle określone normy określone przez tą funkcję, jest to pozycja taka na jaką wskazuje również pozycja jakaś artykularna, prze którym sprawdzamy tą funkcją tekst,
* {{Code|liczba_obiekt_start_spac_par}} {{Patrz|liczba_obiekt_start_spac_par}} - numer znaku, od którego ma wyszukiwać od tytułu pewne linie,
* {{Code|czy_dodatni}} {{Patrz|czy_dodatni}} - typ wyszukiwania rozdziałów, tzn. {{LinkZobaczTeż|czy_dodatni}},
* {{Code|czy_bez_naglowka}} {{Patrz|czy_bez_naglowka}} - czy ma wyszukiwać do: {{Code|1}}, od tytułu, a nie do: {{LinkPatrz|liczba_start_rozdzial}},
* {{Code|AnalizowanieSekcjowe}} {{Patrz|AnalizowanieSekcjowe}} - to nic innego jest, jak funkcja inicjowana przez zwracaną procedurę przez: {{LinkŚródtytuł|p.AnalizowanieSekcjowe}}, która ma w sobie pewne elementy początkowe w sobie wsadzonych jako parametry, które są wykorzystywane prze obiekt przez nią zwracany, która coś robi.
; Typy dopasowywania rozdziałów paarametru{{dk}} {{nobold|czy_dodatni {{Code|{{=}}}} {{LinkPatrz|czy_dodatni}} {{ZobaczTeż|czy_dodatni}}}}{{dk}}
* {{Code|1}} - wyszukuje rozdziały wskazywane przez funkcję: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}},
* {{Code|2}} - wyszukuje pozycje list zaczynające się od znaków: {{Code|<nowiki>[%*#:;<>]+</nowiki>}}, jako pewne rozdziały, które trzeba wyszukać,
* Inna wartość niż dwie powyższe - wtedy są wyszukiwane rozdziały niezaczynające się od: {{Code|<nowiki>[^%*#:;<>\n]</nowiki>}}, i kończące się na dwukropek.
: Dla dwóch ostatnich powyższych punktów są wyszukiwane linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
: Funkcja dla tych dwóch pierwszych sprawdza, tylko raz, czy to jest rozdział spisu treści wskazywaną przez funkcję: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, jeżeli parsowanie przeszło niepomyślnie, a funkcja {{LinkPatrz|AnalizowanieSekcjowe}} zrzuci wartość prawdziwą, wtedy ta cała funkcja z nagłówka zrzuca wartość logiczną fałszywą. Ta funkcja wykorzystuje wartość: {{LinkPatrz|liczba_obiekt_start_nowe}}, jako drugi parametr, dla którego liczy ona tekst przed, ta zmienna może wskazywać na początek pozycji linii artykularnej (z artykułami), aby ona policzyła swoją wartość.
Funkcja działa w pętli do zakończenia zasobu danych lub w inny sposób, ale też do zakończenia. Funkcja wtedy robi operacje zawsze dla {{LinkPatrz|czy_dodatni}} równe {{Code|1}} lub dla tych, gdzie: {{LinkŚródtytuł|p.CzyTamElementyNieSpisoweArtykularne|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, zwraca wartość logiczną prawdziwą, własnie dla tego, jeśli ta operacja zwróci prawdę, to dla tego są dopasowywane elementy zwracane. Wtedy wiadomo, że wyszukane tak pozycje są rozdziałami.
Funkcja zwraca wyniku w postaci wartości szegu zwracanych:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej;
</syntaxhighlight>
Wytłumaczenie tych elementów zrzuconych przez nią dla dopasowań, licząc od tyłu:
; Ostanie dopasowanie nagłówka pasujące, gdy tekst jego rozdziału jest równy znakom odstępu lub jest pusty{{dk}}
* {{Code|liczba_start_naglowek}} - początek ostatniego wyszukanego takiego nagłówka,
* {{Code|liczba_koniec_naglowek_poczt}} - koniec pierwszego wyszukanego nagłówka,
* {{Code|naglowek}} - wartość nagłówka dla tego ostatniego dopasowania,
* {{Code|poziom_naglowka}} - poziom takiego nagłówka,
; Niepasujący nagłówek, wyszukane pierwsze z kolei po pasującym{{dk}}
: Według wartości zwracanych powyższych w pierwszej kolejności, dla którego tekst rozdziału nie jest równa znakom odstępu i nie jest pusty:
* {{Code|liczba_start_naglowek_dalej}} - początek po pasującym tak nagłówku,
* {{Code|liczba_koniec_naglowek_dalej}} - a tutaj jego koniec,
* {{Code|naglowek_dalej}} - wartość tekstu napisu wprowadzenia tekstu,
* {{Code|poziom_naglowek_dalej}} - tutaj jego poziom.
W przypadku nieznalezienia takich nagłówków funkcja nie zwraca niczego.
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
Funkcja służy do zaawansowanego szukania, od tyłu, nagłówków w przeciwieństwie do: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, która służy przede wszystkim do szukania sekcji kolejnych jednego rodzaju, a ta funkcja znajduje się w postaci wielu typów, ona wie, że w tekście może być równy układ nagłówków różnych typów.
Funkcja wyszukuje od tyłu, znajduje parametry ostatniego nagłówka i je zwraca, jeżeli je znalazł, a jeśli nie, to nie zwraca żadnej wartości, tylko funkcja się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Jedynie funkcja nie ma parametru: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, ponieważ ta funkcji nie szuka kolejnych rozdziałów tylko jednego rodzaju, lecz wielu.
=== {{Śródtytuł|str_spacja_lub_zerowy_naglowek}}{{Code|str_spacja_lub_zerowy_naglowek}} ===
Dla każdej takiej niepustej linii, sprawdzane jest, czy to są linie z odstępami lub nie będące elementami listy, ale w sposób rozszerzony, tzn. ten początek nie może składać się z pewnych znaków, czyli: {{Code|<nowiki>^[^%*#:;<>\n]</nowiki>}}.
Funkcja sprawdza, czy liczba takich linii, jest taka sama, ile jest niepustych linii, wtedy funkcja zwraca wartość logiczną prawdziwą, przeciwnie wartość nilową.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local str_spacja_lub_zerowy_naglowek=function(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do sprawdzenia.
=== Ciąg dalszy opisu funkcji ===
; Etapy dopasowania ostatniego dopasowania rozdziałów, jego pozycja w tekście i jego napis wprowadzenia tekstu
* Etap ogólny
Funkcja najpierw wyszukuje rozdziały poprzez wskazanie przez funkcję: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, a jeżeli znalazł artykuł, o niepustych secjach pomiędzy ostatnim wskazanym artykułen (przed artykułem), a rozdziałem, wtedy ta funkcja zwraca wartość logiczną fałszywą i zwraca wartość nilową, czyli nic nie zwraca, i funkcja się zakańcza, i wskazuje, że nie znalazł takiego nagłówka, to się dzieje pod warunkiem, że funkcja: {{LinkPatrz|AnalizowanieSekcjowe}}, została podana, w przeciwnym wypadku, to już tak się nie dzieje, a nagłówek z tego wywołania mógł być znaleziony, ale nie musiał.
; Etapy alternatywy
* Pierwszy etap
** To dotyczy, że znalazł ostatnie dopasowanie, ale niepasującego nagłówka przed nim nie ma.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli tego nie znalazł, wtedy przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, w pętli nieskończonej, najpierw dla parametru: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, najpierw jest to pierwsze, a później to drugie, jeśli z tego pierwszego zostało wykonana komenda przerwania pętli, to drugie dopasowanie nie zostanie wykonane w danym obiegu jego, normalnie, bez tego są dwa wywołania.
W każdym takim wywołaniu i dopasowaniu, w pierwszym, czy drugim, będzie sprawdzane, czy tego dokonano, czy taki nagłówek znaleziono, a jeśli tak, to sprawdzany jest tekst pomiędzy ostatnim końcem w wykrytym nagłówku, a początkiem tego przedostatniego, lub z etapu ogólnego, funkcją: {{LinkŚródtytuł|str_spacja_lub_zerowy_naglowek}}, jeżeli funkcja zwróciła wartość logiczną odpowiadającej fałszywej, to pętla jest przerywana, w przeciwnym wypadku są inicjowane parametry tego dopasowania, które przygotowuje ona zwrócić do funkcji w nagłówku.
: Ogólnie po drugim taki wywołaniu następuje sprawdzenie parametrów zwróconych:
Jeżeli w ostatnim takim wywołaniu w tym funkcja zwraca niedopasowanie, wtedy zwracane jest przerywanie pętli, wtedy mamy parametry ostatniego dopasowania, jeśli istnieją takie.
* Drugi
** To dotyczy, że takiego dopasowania pasującego nie znalazł.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli to znalazł, to wyszukany stąd nagłówek jest rozwijany przy pomocy funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}. Jeżeli parser funkcji nie wykrył wykrzyknika na końcu takiego nagłówka, wtedy jest sprawdzane przy pomocy iteratora w zakodowanym tekście przy pomocy: {{Code|{{m|Szablonowe}}}}, na podstawie: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, czy w nagłówku istnieje artykuły bieżącej ksiązki, czy analizowanej, i czy to nie jest okładka, czy strona niedozwolona. Jeżeli wykryto takie artykuły, lub pętla nie została wykonana, bo nie ma takich wykrytym nagłówku kodów, to funkcja inicjuje parametry zwracanych wartości przez funkcję w nagłówku.
* Trzeci
** To dotyczy pozostałych przypadków, w którym znalazł ostatnie dopasowanie, a niepasujące przed nim też znalazł.
Jest wywoływane wywołanie: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, najpierw w pierwszym wywołaniu dla: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, a w każdym takim wywołaniu po jest sprawdzane, czy tekst pomiędzy końcem ostatniego wykrytego nagłówka, a początkiem przedostatniego nagłówka, a nawet artykułu wykrytego, czyli czy taki tekst rozdziału, czy składa się z samych znaków odstępów, a jeśli tak, to inicjowane są parametry zwracane przez funkcję. Dalej przechodzimy z pierwszego do drugiego wywołania, w którym oba wywołania są podobnie zbudowane.
; Parametry wychodzące z funkcji{{dk}}
* Oto parametry inicjowane przez funkcję w tych powyższych trzech etapach alternatywnych, które na końcu funkcji w nagłówku są zwracane:
: Funkcja zwraca wartości określone przez kod:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka;
</syntaxhighlight>
Wytłumaczenia parametrów zwracanych:
; Parametry określają ostatnie dopasowanie nagłówkowe w wewnątrz funkcji{{dk}}
* {{Code|liczba_start_naglowek}} - początek tego dopasowania,
* {{Code|liczba_koniec_naglowek}} - jego koniec,
* {{Code|naglowek}} - wartość napisu wprowadzenia tekstu nagłówka,
* {{Code|poziom_naglowka}} - poziom tego nagłówka.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
Funkcja służy do wyszukiwania, od tyłu, pozycji artykularnej przed wykrytym ostatnim rozdziałem, lub gdy nie ma rozdziałów, to liczy pozycję tylko artykularną, lub nawet pozycji rozdziałów zerowych spisu treści albo nawet tych z dwukropkiem na końcu danej linii, i szuka od tyłu takie coś, by to uznać za początek spisu treści wyciętej z tekstu zakodowanego spisu, czyli ogólnie mówiąc funkcja szuka dalej takiego początku dalszego.
Funkcja służy też do wydzielania części spisu spełniające powyższe kryteria, aby można było ją parsować przez inne funkcje '''Stronicowego parsera''', do wydzielania dalszych rozdziałów, a z nich wydzielania nagłówków (napisów wprowadzenia tekstu) i tekstów rozdziałów.
Funkcja pętluje przy wykrytych liniach składających się z odstępów, a się zatrzymuje na normalnych danych lub po zakończeniu zasobów.
Główny opis funkcji {{ZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}:
* Funkcja działa w oętli nieskończnonej, aż do zakończenia danych, lub do zwrócenia elementów przez nią,
* W tej pętli funkcja wyszukuje kolejne linie, które nie są pozycjami listy, z którego wyodrębiona linia jest analizowana bez przerwy, jeżeli istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje parametry:
** {{Code|liczba_start}} {{Patrz|liczba_start}} - od której pozycji od tyłu ma wyszukiwać pozycje artykularne,
** {{Code|czy_dalej_rozdzial}} {{Patrz|czy_dalej_rozdzial}} - czy {{ZobaczTeż|czy_dalej_rozdzial}} uznać za pierwszeństwo, w przypadku wykrytego rozdziału dodatniego w linii, lub nie wykrycia takiej linii, która nie jest częścią listy, wtedy jest ważny element (zmienna) {{LinkPatrz|liczba_start}}, przeciwnie jest brane, coś przeciwnego,
** {{Code|liczba_pierwszy_rozdzialowy_artykul}} - jak w: {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}}.
Parametry {{ZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}} zwracane przez funkcję, które są zwracane kolejno w niej na końcu jej działania:
* Początek takiego punktu, uzyskanym w końcu na końcowym obiektu pętli (wyjaśnienie w tekście),
* Liczba znaków odstępów wykrytych poczasz wszystkich obiektów pętli (jest to reprezzentowane przez: {{Code|liczba_spac}} {{Patrz|liczba_spac}}),
* Czy ta tak, uzyskana i zwrócona, linia jest rozdziałem spisu treści (jest to reprezentowane przez: {{Code|czy_spis}} {{Patrz|czy_spis}}).
Etapy zwracania przez funkcję elementów:
; Uzyskanie linii według ogólnego wzoru
* Według {{LinkZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}, tą linia, byłoby takie coś pomiędzy ewentualnie znakami nowymi liniami, która spełnia wzór: {{Code|<nowiki>([^%*#:;<>\n][^\n]*)</nowiki>}}. To wyszukiwanie jest według funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wyszukujący w sposób ogólny linie, niezależnie jak są one realizowane w tekście.
; Początek i koniec uzyskanej linii według powyższego sposobu{{dk}}
* Początek i koniec przechwyconej linii, to są pewne liczby, wraz ze znakami nowej linii, jeśli po któreś stronie istnieją, lub nawet gdy to są w tym elementy, początku lub końca, tekstu, wtedy długość tych elementów jest zero.
; Brak dopasowania linii
* A jeżeli dopasowanie tej linii nie zgłasza niedopasowania, wtedy przy prawdziwości zmiennej: {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według: {{LinkZobaczTeż|czy_dalej_rozdzial}}, zwracane jest: {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie, wartość minimalną, pomiędzy tą zmienną a inną {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}} (jeśli ta zmienna nie istnieje, to domyślnie ma wartość {{Code|1}}).
; Rozdział równaniowy{{dk}}
* Jeżeli tą linią jest rozdział równaniowy, to zwracane jest, jeżeli wartość {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według {{LinkZobaczTeż|czy_dalej_rozdzial}}, ma wartość fałszywą, wtedy jest to dopasowanie końca tej linii, w pierwszym parametrze zwracanym, wraz z innymi danymi, według {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}, a jeżeli ta wartość jest prawdą, to zwracane jest {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, bo w tej funkcji nie ma prawa takich rozdziałów dopasowywać.Ma dopaasowywać tylko normalne linie niebędące pozycjami listy.
; Pierwsze rozgałęzenie specjalne instrukcji warunkowej{{dk}}
: Znaki odstępów - linia to białe znaki:
* Jeżeli linia istnieje i składa się z samych znaków odstępów, to liczmy długość tych znaków, wraz z nowymi liniami po prawej lub lewej stronie, jeśli istnieją, i wsadzamy to do ogólnego licznika {{Code|liczba_spac}} {{LinkPatrz|liczba_spac}}, która jest zwracana na końcu działania funkcji, jako drugi parametr w: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}. Funkcja wykonuje tych okrążeń pętli tyle, ile jest kolejnych linii składających się z tych znaków.
; Przypadek istnienia linii nie składającej się ze znaków odstępów{{dk}}
: Rozdział spisu treści i rozdział zerowy:
* Jeśli linia jest spisem względem {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przyjmuje wartość początkowi takiej ustalonej linii w tekście, a {{Code|czy_spis}} {{LinkPatrz|czy_spis}} przyjmuje wartość prawdziwą.
* A jeśli tak nie jest, to sprawdzamy, czy przed tą linią jest rozdział zerowy na podstawie funkcji: {{LinkŚródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}. Jeżeli ona jest tym rozdziałem, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma już nową wartość, przeciwnie, jeśli ta linia ma na końcu dwukropek, to ta wartość nowa jest równa początkowi wyszukania tej linii, a jeśli nie, to końcowi. Zmienna, czy jest rozdział spisu {{Code|czy_spis}} {{LinkPatrz|czy_spis}} ma wartość prawdziwą, gdy ten rozdział zerowy istnieje, a jeśli nie, to fałszywą.
; Przypadek istnienia, lub nie, rozdziału zerowego{{dk}}
* Jeśli znaleziono taki rozdział (zerowy), to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, to wtedy nie ma żadnych dodatkowych instrukcji do wykonania.
* Punkty zwracania zmiennych, jeśli przeciwnie do poprzedniego:
** Jeśli znaleziono taki spis, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma wartość początkowi takiej linii
** A jeżeli przeciwnie, nie ma w nim kodów, to końcowi, jeśli wyszukana linia nie jest rozdziałem z dwukropkiem na końcu, a jeśli jest, to początkowi tej linii,
*** Wtedy ją, tą uzyskaną z obliczeń, trzeba wliczać w ramach wydzielonego spisu, wtedy zmienna {{Code|czy_spis}} jest prawdą,
** A jeśli jednak ma je, wtedy, czy linia ma pozycje artykularne, które nie są okładkami lub stronami niedozwolonymi, a jeśli tak jest, na podstawie wywołania funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, to zwracany jest początek wyszukania takiej linii w tej zmiennej, przeciwnie powtarzana jest ta wartość.
*** Wtedy, gdy linia nie ma takich artykułów, wtedy jeśli ona ma dwukropek na końcu, wtedy ustalamy zmienną {{Code|czy_spis}} na prawdę.
: Na samym końcu zwracane jest to wszystko w postaci parametrów: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}.
== {{Śródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}{{Code|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}} ==
Funkcja wyszukuje, czy dla obiektu o typie {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} o numerze liczbowym {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} - nie jako łańcuch znakowy, dla ich generowanego odpowiednika {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, generowanego z {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, są linki w zależności od podanej zmiennej {{LinkPatrz|czy_wszystkie_linki}}, a jeżeli tam nie ma linków, to przeszukiwany jest {{LinkPatrz|dalszy_tekst}} w ich poszukiwaniu, którymi zrządzą prawa w zależności od przyporządkowanej zmiennej {{LinkPatrz|czy_nieoddzielone}}, wartość prawdziwa tej zmiennej, włącza dowolność układu obiektów typu: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}.
Funkcja wyszukuje w linii, ale najwierw w: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, a później w: {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, jeżeli w poprzednim nie znalazł, pierwszego takiego linku przyporządkowagp, któremuś z tych obiektów, i przy pierwszym wykryciu zwraca wartość, ale dany obiekt uwwzględniany względem tego poprzedniegomusi spełniać prawa lub nie, w zależności od podanej zmiennej {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieLinkuWeSzablonieOrazDalszymNapisie(obiekt,kod,dalszy_tekst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_oddzielone,czy_wszystkie_linki)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}}, {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|czy_nieoddzielone}} {{Patrz|czy_nieoddzielone}} - czy linki mają być oddzielone interpunkcją, czy odstępami, w przypadu przeciwnym, jeżeli tak nie jest, to funkcja zwraca wartość fałszywą,
** {{Code|czy_wszystkie_linki}} {{Patrz|czy_wszystkie_linki}} - czy uwzględniaj wszystkie linki, czy tylko artykuły, nie okładki, (dozwolone), danej książki,
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy tekst, do przeszukiwania linkowego.
Funkcja zwraca wartość logiczną, jeżeli prawa linkowe tekstu są przyporządkowane przez zmienne: {{LinkPatrz|czy_nieoddzielone}} i {{LinkPatrz|czy_wszystkie_linki}}, to jeśli znalazłeś takie linki, to zwracaj wartość prrawdziwą, a jeśli nie, to fałszywą.
Jeśli zmienna {{LinkPatrz|czy_nieoddzielone}} przyjmuje wartość fałszywą, to te rozważane obiekty, muszą być oddzielone pewnymi znakami, tutaj: {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, a jak nie spełniają tego warunku, to funkcja zwraca wartość fałszywą, w innym wypadku dalej liczy i sprawdza.
== {{Śródtytuł|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}}{{Code|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}} ==
Funkcja jest rozszerzeniem funkcji: {{LinkŚródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}, dla ustalonych dwóch ostatnich zmiennych, które przyjmują wartość {{Code|true}} (prawdziwą), o nazwach: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}} i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, dla tej funkcji, mamy już zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, i {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, a funkcja w nagłówku je ustala, w wyniku działania w pętli.
Funkcja wyszukuje, od tyłu, w tekście, nabliższej pozycji typu: {{Code|SZABLON}}, {{Code|LINKW}} lub {{Code|LINKZ}}, w danej linii, i zwraca odpowiednio dwie wartości, pozycje wykrytą i wartość logiczną powodzenia, w innym przypadku, pozycję początkową z drugim parametrem fałszem.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|liczba_start_rozdzial}} - jak w: {{LinkPatrz|liczba_start_rozdzial}}, pozycja wyszukiwania końcowa,
** {{Code|liczba_spisowa}} {{Patrz|liczba_spisowa}} - pozycja wyszukiwania początkowa.
Parametry zwracane:
* Pierwszy parametr:
** Pozycja, w którym taką pozycję określona przez funkcję znaleziono, drugi parametr wtedy przyjmuje prawdę, jeśli nie znaleziono, takiej pozycji, to ta pozycja przymuje wartość początkową, adrugi parametr jest fałszem,
* Drugi parametr:
** Czy elementy są odzielone od sibie pewnymi znakami, według tej dokumentacji, i czy to są linki artykułów nieokładkowych dozwolonych, w najbliższej linii, wtedy zwraca w drugim parametrze prawdę, w przecciwnym wypadku, w przypadku znalezienia obiektu w najbliższej linii z: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, ale nie wykryto odpowiwdnich linków, według wspomnianej funkcji, wtedy zwracony ten paramtr będzie fałszem, kub do wyczerpania zasobów, też odpowiadającej fałśzowi,
Funkcja wyszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wykorzystując, że tekst jest zakodowany, i znajduje one przy pomocy wyrażenia regularnego generowanego przez: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, na podstawie kodu, którego fragment jest napisany tutaj:
<syntaxhighlight lang="lua">
local liczba_spisu=liczba_spisowa;
local szablonowe_modul=require("Module:Szablonowe");
---- Ustalenie wzoru kodowania, czyli jest to dowolny kod;
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu()
while(true)do
---- Wyszukuje dowolną linię według wyrażenia regularnego podanego w kodzie, zawartą całkowicie w linii;
local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
</syntaxhighlight>
Fukcja sprawdza, czy dokonano sprawdzenia, jeśli pozytywnie ono przeszło, to musi istnieć zmienna {{Code|liczba_linki_nierozdzialowe_szablonu}} {{Patrz|liczba_linki_nierozdzialowe_szablonu}} oraz musi być spełniona alternatywa dwóch warunków: {{Code|przed_tekst}} {{Patrz|przed_tekst}} musi być puste lub ma spełniać warunek według wzoru: {{Code|<nowiki>^[%p%s%d%.]*$</nowiki>}}.
Jeżeli funkcja nie dopasowała kodu: {{Code|obiekt_szablon}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, do wartości: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, to działa w pętli aż dopasuje je, aż do zakończenia zasobu danych dostępnych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, jeżeli nie mogła by tego zrobić. A jeśli je dopasowała, to sprawdza, czy te kody są odpowiednimi obiektami, ewentualnie oddzielonych od siebie znakami {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, poprzez sprawdzanie funkcją wspomnianą w nagłówku. Jeśli ta funkcja zwróci wartość prawdziwą, to zwrócone zostaną parametry:
<syntaxhighlight lang="lua">
return liczba_linki_nierozdzialowe_szablonu,true;
</syntaxhighlight>
W innych przypadkach, jeżeli takiego dopasowania nie znalazła, to zwróć szereg wartości:
<syntaxhighlight lang="lua">
return liczba_spisowa,false;
</syntaxhighlight>
W tym przypadku wartość {{Code|liczba_spisowa}} {{LinkPatrz|liczba_spisowa}}, to nic innego jak ostatni argument naszej funkcji, czyli w przypadku niepowoddzenia dopasowania, zwracana jest wartość ta początkowa, zdrugą wartością, że niezaleziono poszukiwanego obiektu.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowychZakresowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowychZakresowych}} ==
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowychZakresowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_pierwszy_rozdzialowy_artykul,liczba_przed_rozdzialem,liczba_start_naglowek_przed,czy_znajdz)...end;
</syntaxhighlight>
Parametry funkcji:
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
84zxbd1i29tapzhs33z0zuakqajiqsr
554551
554550
2026-09-05T20:38:58Z
Persino
2851
/* {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} */
554551
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
Jest to funkcja do sprawdzania tekstu zawartości (tekstu rozdziału, bez zawartości nagłówka) napisu wprowadzenia tekstu sekcji, za pomocą funkcji zwracanej, czy ona spełnia pewne określone warunki.
Funkcja, gdy co jest nie tak, to zwraca wartość {{Code|true}}, i przy okazji może zerować pewne określone zmienne, jeśli ona przy tym została odpowiednio ustawiona, przeciwnie ona zawsze zwraca wartość {{Code|nil}}, czyli nie zwraca żadnej wartości.
Za pomocą tej funkcji można sprawdzić, czy funkcja zawiera niedozwolone znaki wikikodu, i dlatego zwraca tą prawdziwość.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe)
... ---- ciało funkcji zwracanej
end;
end;
</syntaxhighlight>
Parametry ogólne funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|czy_zeruj}} {{Patrz|czy_zeruj}} - czy ma zerować, ścisle określone zmienne, które mieszczą się w niezerowej tablicy zmiennych składowych, tzn. w: {{LinkPatrz|tab_zmienne}},
* {{Code|tab_zmienne}} {{Patrz|tab_zmienne}} - zmienne w nim do zerowania,
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Parametry funkcji zwracanej dla tekstu rozważanego {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}:
* {{Code|liczba_koniec_naglowek}} {{Patrz|liczba_koniec_naglowek}} - numer znaku, po którym coś rozważamy,
* {{Code|liczba_obiekt_start_nowe}} {{Patrz|liczba_obiekt_start_nowe}} - numer znaku, przed którym coś rozważamy.
Funkcja zwracana sprawdza, czy zmienne: {{LinkPatrz|liczba_koniec_naglowek}} i {{LinkPatrz|liczba_obiekt_start_nowe}}, istnieją, i te zmienne sugerują punkty znakowe w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, ale jeżeli te zmienne liczbowe punktów znakowych mają takie wartości, że nie da się znaleźć dla tej zmiennej tekstowej treści pomiędzy nimi, to ta funkcja nie zwraca żadnej wartości, to zachodzi, kiedy nie jest spełniony warunek:
<syntaxhighlight lang="lua">
if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then
</syntaxhighlight>
* Liczenie zmiennej tekstowej za pomocą, którą będziemy sprawdzać:
: A jeżeli jest jednak tak, tzn. spełniony jest ten warunek, to znajdujemy taki tekst, robi to za pomocą funkcji: {{LzLua|mw.ustring.sub}}, i zapisuje to pod zmienną {{Code|str}} {{Patrz|str}}.
* Pierwszy etap analizowania tej zmiennej, czy jest poprawna, tzn. czy nie zwraca żadnej wartości, ale czy się zakańcza:
: Następnie sprawdza, czy ona jest w cudzysłowach, tzn. czy spełnia warunek: {{Code|<nowiki>^%s*'+(.+)'+%s*$</nowiki>}}, lub czy początek zaczyna się od znaków: {{Code|<nowiki>^[%*#:;<>]+</nowiki>}}, lub czy ten tekst zawiera dozwolone znaki z przedziału: {{Code|<nowiki>^[%s%p%w]*$</nowiki>}} - tzn. czy tekst składa się ze znaków odstępu, interpunkcyjnych, znaków alfanumerycznych lub z dolnym myślników, jeżeli któreś z tych warunków jest spełnione, to funkcja nie zwraca żadnej wartości, ale zatrzymuje się, tzn. zakańcza się, to oznacza, że wszystko jest w porządku. A jeżeli nie spełnione z żadnych z tych warunków, to ona idzie dalej, i robi następne czynności następne, aby sprawdzić dalsze warunki, czy wszystko jest w porządku.
* Sprawdzanie niepustych linii po liniach, ewentualnie składających się ze znaków odstępów:
: Funkcja liczy ile takich linii znalał, zapisuje to pod zmienną {{Code|ile}} {{Patrz|ile}}, jeśli wśród takich linii znalazł linie pasujące do: {{Code|<nowiki>^[%*#;:<>]</nowiki>}}, lub składające się znaków odstępów: {{Code|<nowiki>^%s*$</nowiki>}}, wtedy funkcja to liczy licznikiem: {{Code|ile_punktowanych}} {{Patrz|ile_punktowanych}}.
Funkcja w tak wyszukanych liniach w przeciwnym razie sprawdza, w liniach niepasujących do tych wzorów, czy tam są artykuły (strony) nie z rozważanej danej książki, przy pomocy funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}} {{Patrz|p.CzyGeneralnieElementSpisuRzeczy}}, jeśli są takie elementy, to funkcja dodaje to do licznika {{LinkPatrz|ile_punktowanych}}, aby dodać jeden do licznika, dla każdej takiej linii funkcja sprawdza, czy przynajmniej jeden taki artykuł się znajduje tam, w każdej takiej wykrytej linii.
* Jeśli liczba określona przez zmienną: {{LinkPatrz|ile_punktowanych}}, jeżeli jest co najmniej równa wyszukanym liniom {{LinkPatrz|ile}}, to funcja się zatrzymuje, i nie zwraca żadnej wartości, czyli wskazuje na powodzenie.
* Gdy liczba tego jest mniejsza niż wykrytych linii, to coś jest nie tak, wtedy funkcja nic nie zwraca, tylko idzie dalej.
* Zerowanie się pewnych wartości:
** Funkcja z tak policzonego {{LinkPatrz|str}} usuwa formy kodów z obiektami {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, a jeżeli znalazł w nim same, wtedy znaki odstępów, to ona nie zwraca żadnej wartości, ale się zakańcza, przeciwnie, sprawdza, czy jest zmienna: {{LinkPatrz|czy_zeruj}}, która jest prawdziwa, a jeśli tak, to elementy zmiennej {{LinkPatrz|tab_zmienne}} są nilowane, tzn. podzmienne o kluczach:
* {{Code|liczba_nie_okladka_artykul}} {{Patrz|liczba_nie_okladka_artykul}} - liczba pozycji sekcji wskazująca, czy istnieje pierwszy taki artykuł (nie okładka, nie strona niedozwolona) aktualnej książki, lub bezpośrednio taki artykuł, niekoniecznie tej książki, czy znajduje się bezpośrednio w pozycji sekcji, i tylko sam tam się znajduje,
* {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{Patrz|liczba_pierwszy_rozdzialowy_artykul}} - liczba pozycji sekcji, która wskazuje na pierwszy taki wykryty artykuł, licząc od przodu, który spełnia pewne ścisle okreslone kryteria, jest to dowolny artykuł,jaki może być w książce,
: Kryteria określone przez te zmienne powyżej są określone przez funkcję: {{LinkPatrz|p.CzyGeneralnieElementSpisuRzeczy}},
* {{Code|czy_ten_rozdzial}} {{Patrz|czy_ten_rozdzial}} - wartość prawdziwą wskazuje, czy wynilowano zmienne należące do rozważanej tablicy.
Ale niezależnie od wartości {{LinkPatrz|czy_zeruj}}, funkcja wtedy zwraca zawsze wraca wartość {{Code|true}}, czyli ona zwraca to niepowodzenie.
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
Funkcja wyszukuje, od tyłu, kolejne rozdziały (napisy wprowadzenia tekstu), którego tekst rozdziału składa się z samych znaków odstępów, lub jest pusty, albo o poziomie wyższym rozdziałowo, nawet gdy jego tekst rozdziału jednak nie jest pusty.
Funkcja jest przerywana po najbliższych niespełniających warunkach. Funkcja zwraca parametry, z ostatniego pasującego dopasowana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - podczas wyszukiwania od tyłu, do jakiego punktu ma wyszukiwać,
* {{Code|liczba_obiekt_start_nowe}} - jak w: {{LinkPatrz|liczba_obiekt_start_nowe}}, wykorzystywane w funkcji: {{linkPatrz|AnalizowanieSekcjowe}}, do sprawdzania pomiędzy znakami: końcem wyszukiwanego nagłówka, wraz ze znakiem nowej linii, a tą zmienną, do sprawdzania, czy tekst rozdziału spełnia ściśle określone normy określone przez tą funkcję, jest to pozycja taka na jaką wskazuje również pozycja jakaś artykularna, prze którym sprawdzamy tą funkcją tekst,
* {{Code|liczba_obiekt_start_spac_par}} {{Patrz|liczba_obiekt_start_spac_par}} - numer znaku, od którego ma wyszukiwać od tytułu pewne linie,
* {{Code|czy_dodatni}} {{Patrz|czy_dodatni}} - typ wyszukiwania rozdziałów, tzn. {{LinkZobaczTeż|czy_dodatni}},
* {{Code|czy_bez_naglowka}} {{Patrz|czy_bez_naglowka}} - czy ma wyszukiwać do: {{Code|1}}, od tytułu, a nie do: {{LinkPatrz|liczba_start_rozdzial}},
* {{Code|AnalizowanieSekcjowe}} {{Patrz|AnalizowanieSekcjowe}} - to nic innego jest, jak funkcja inicjowana przez zwracaną procedurę przez: {{LinkŚródtytuł|p.AnalizowanieSekcjowe}}, która ma w sobie pewne elementy początkowe w sobie wsadzonych jako parametry, które są wykorzystywane prze obiekt przez nią zwracany, która coś robi.
; Typy dopasowywania rozdziałów paarametru{{dk}} {{nobold|czy_dodatni {{Code|{{=}}}} {{LinkPatrz|czy_dodatni}} {{ZobaczTeż|czy_dodatni}}}}{{dk}}
* {{Code|1}} - wyszukuje rozdziały wskazywane przez funkcję: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}},
* {{Code|2}} - wyszukuje pozycje list zaczynające się od znaków: {{Code|<nowiki>[%*#:;<>]+</nowiki>}}, jako pewne rozdziały, które trzeba wyszukać,
* Inna wartość niż dwie powyższe - wtedy są wyszukiwane rozdziały niezaczynające się od: {{Code|<nowiki>[^%*#:;<>\n]</nowiki>}}, i kończące się na dwukropek.
: Dla dwóch ostatnich powyższych punktów są wyszukiwane linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
: Funkcja dla tych dwóch pierwszych sprawdza, tylko raz, czy to jest rozdział spisu treści wskazywaną przez funkcję: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, jeżeli parsowanie przeszło niepomyślnie, a funkcja {{LinkPatrz|AnalizowanieSekcjowe}} zrzuci wartość prawdziwą, wtedy ta cała funkcja z nagłówka zrzuca wartość logiczną fałszywą. Ta funkcja wykorzystuje wartość: {{LinkPatrz|liczba_obiekt_start_nowe}}, jako drugi parametr, dla którego liczy ona tekst przed, ta zmienna może wskazywać na początek pozycji linii artykularnej (z artykułami), aby ona policzyła swoją wartość.
Funkcja działa w pętli do zakończenia zasobu danych lub w inny sposób, ale też do zakończenia. Funkcja wtedy robi operacje zawsze dla {{LinkPatrz|czy_dodatni}} równe {{Code|1}} lub dla tych, gdzie: {{LinkŚródtytuł|p.CzyTamElementyNieSpisoweArtykularne|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, zwraca wartość logiczną prawdziwą, własnie dla tego, jeśli ta operacja zwróci prawdę, to dla tego są dopasowywane elementy zwracane. Wtedy wiadomo, że wyszukane tak pozycje są rozdziałami.
Funkcja zwraca wyniku w postaci wartości szegu zwracanych:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej;
</syntaxhighlight>
Wytłumaczenie tych elementów zrzuconych przez nią dla dopasowań, licząc od tyłu:
; Ostanie dopasowanie nagłówka pasujące, gdy tekst jego rozdziału jest równy znakom odstępu lub jest pusty{{dk}}
* {{Code|liczba_start_naglowek}} - początek ostatniego wyszukanego takiego nagłówka,
* {{Code|liczba_koniec_naglowek_poczt}} - koniec pierwszego wyszukanego nagłówka,
* {{Code|naglowek}} - wartość nagłówka dla tego ostatniego dopasowania,
* {{Code|poziom_naglowka}} - poziom takiego nagłówka,
; Niepasujący nagłówek, wyszukane pierwsze z kolei po pasującym{{dk}}
: Według wartości zwracanych powyższych w pierwszej kolejności, dla którego tekst rozdziału nie jest równa znakom odstępu i nie jest pusty:
* {{Code|liczba_start_naglowek_dalej}} - początek po pasującym tak nagłówku,
* {{Code|liczba_koniec_naglowek_dalej}} - a tutaj jego koniec,
* {{Code|naglowek_dalej}} - wartość tekstu napisu wprowadzenia tekstu,
* {{Code|poziom_naglowek_dalej}} - tutaj jego poziom.
W przypadku nieznalezienia takich nagłówków funkcja nie zwraca niczego.
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
Funkcja służy do zaawansowanego szukania, od tyłu, nagłówków w przeciwieństwie do: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, która służy przede wszystkim do szukania sekcji kolejnych jednego rodzaju, a ta funkcja znajduje się w postaci wielu typów, ona wie, że w tekście może być równy układ nagłówków różnych typów.
Funkcja wyszukuje od tyłu, znajduje parametry ostatniego nagłówka i je zwraca, jeżeli je znalazł, a jeśli nie, to nie zwraca żadnej wartości, tylko funkcja się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Jedynie funkcja nie ma parametru: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, ponieważ ta funkcji nie szuka kolejnych rozdziałów tylko jednego rodzaju, lecz wielu.
=== {{Śródtytuł|str_spacja_lub_zerowy_naglowek}}{{Code|str_spacja_lub_zerowy_naglowek}} ===
Dla każdej takiej niepustej linii, sprawdzane jest, czy to są linie z odstępami lub nie będące elementami listy, ale w sposób rozszerzony, tzn. ten początek nie może składać się z pewnych znaków, czyli: {{Code|<nowiki>^[^%*#:;<>\n]</nowiki>}}.
Funkcja sprawdza, czy liczba takich linii, jest taka sama, ile jest niepustych linii, wtedy funkcja zwraca wartość logiczną prawdziwą, przeciwnie wartość nilową.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local str_spacja_lub_zerowy_naglowek=function(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do sprawdzenia.
=== Ciąg dalszy opisu funkcji ===
; Etapy dopasowania ostatniego dopasowania rozdziałów, jego pozycja w tekście i jego napis wprowadzenia tekstu
* Etap ogólny
Funkcja najpierw wyszukuje rozdziały poprzez wskazanie przez funkcję: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, a jeżeli znalazł artykuł, o niepustych secjach pomiędzy ostatnim wskazanym artykułen (przed artykułem), a rozdziałem, wtedy ta funkcja zwraca wartość logiczną fałszywą i zwraca wartość nilową, czyli nic nie zwraca, i funkcja się zakańcza, i wskazuje, że nie znalazł takiego nagłówka, to się dzieje pod warunkiem, że funkcja: {{LinkPatrz|AnalizowanieSekcjowe}}, została podana, w przeciwnym wypadku, to już tak się nie dzieje, a nagłówek z tego wywołania mógł być znaleziony, ale nie musiał.
; Etapy alternatywy
* Pierwszy etap
** To dotyczy, że znalazł ostatnie dopasowanie, ale niepasującego nagłówka przed nim nie ma.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli tego nie znalazł, wtedy przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, w pętli nieskończonej, najpierw dla parametru: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, najpierw jest to pierwsze, a później to drugie, jeśli z tego pierwszego zostało wykonana komenda przerwania pętli, to drugie dopasowanie nie zostanie wykonane w danym obiegu jego, normalnie, bez tego są dwa wywołania.
W każdym takim wywołaniu i dopasowaniu, w pierwszym, czy drugim, będzie sprawdzane, czy tego dokonano, czy taki nagłówek znaleziono, a jeśli tak, to sprawdzany jest tekst pomiędzy ostatnim końcem w wykrytym nagłówku, a początkiem tego przedostatniego, lub z etapu ogólnego, funkcją: {{LinkŚródtytuł|str_spacja_lub_zerowy_naglowek}}, jeżeli funkcja zwróciła wartość logiczną odpowiadającej fałszywej, to pętla jest przerywana, w przeciwnym wypadku są inicjowane parametry tego dopasowania, które przygotowuje ona zwrócić do funkcji w nagłówku.
: Ogólnie po drugim taki wywołaniu następuje sprawdzenie parametrów zwróconych:
Jeżeli w ostatnim takim wywołaniu w tym funkcja zwraca niedopasowanie, wtedy zwracane jest przerywanie pętli, wtedy mamy parametry ostatniego dopasowania, jeśli istnieją takie.
* Drugi
** To dotyczy, że takiego dopasowania pasującego nie znalazł.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli to znalazł, to wyszukany stąd nagłówek jest rozwijany przy pomocy funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}. Jeżeli parser funkcji nie wykrył wykrzyknika na końcu takiego nagłówka, wtedy jest sprawdzane przy pomocy iteratora w zakodowanym tekście przy pomocy: {{Code|{{m|Szablonowe}}}}, na podstawie: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, czy w nagłówku istnieje artykuły bieżącej ksiązki, czy analizowanej, i czy to nie jest okładka, czy strona niedozwolona. Jeżeli wykryto takie artykuły, lub pętla nie została wykonana, bo nie ma takich wykrytym nagłówku kodów, to funkcja inicjuje parametry zwracanych wartości przez funkcję w nagłówku.
* Trzeci
** To dotyczy pozostałych przypadków, w którym znalazł ostatnie dopasowanie, a niepasujące przed nim też znalazł.
Jest wywoływane wywołanie: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, najpierw w pierwszym wywołaniu dla: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, a w każdym takim wywołaniu po jest sprawdzane, czy tekst pomiędzy końcem ostatniego wykrytego nagłówka, a początkiem przedostatniego nagłówka, a nawet artykułu wykrytego, czyli czy taki tekst rozdziału, czy składa się z samych znaków odstępów, a jeśli tak, to inicjowane są parametry zwracane przez funkcję. Dalej przechodzimy z pierwszego do drugiego wywołania, w którym oba wywołania są podobnie zbudowane.
; Parametry wychodzące z funkcji{{dk}}
* Oto parametry inicjowane przez funkcję w tych powyższych trzech etapach alternatywnych, które na końcu funkcji w nagłówku są zwracane:
: Funkcja zwraca wartości określone przez kod:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka;
</syntaxhighlight>
Wytłumaczenia parametrów zwracanych:
; Parametry określają ostatnie dopasowanie nagłówkowe w wewnątrz funkcji{{dk}}
* {{Code|liczba_start_naglowek}} - początek tego dopasowania,
* {{Code|liczba_koniec_naglowek}} - jego koniec,
* {{Code|naglowek}} - wartość napisu wprowadzenia tekstu nagłówka,
* {{Code|poziom_naglowka}} - poziom tego nagłówka.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
Funkcja służy do wyszukiwania, od tyłu, pozycji artykularnej przed wykrytym ostatnim rozdziałem, lub gdy nie ma rozdziałów, to liczy pozycję tylko artykularną, lub nawet pozycji rozdziałów zerowych spisu treści albo nawet tych z dwukropkiem na końcu danej linii, i szuka od tyłu takie coś, by to uznać za początek spisu treści wyciętej z tekstu zakodowanego spisu, czyli ogólnie mówiąc funkcja szuka dalej takiego początku dalszego.
Funkcja służy też do wydzielania części spisu spełniające powyższe kryteria, aby można było ją parsować przez inne funkcje '''Stronicowego parsera''', do wydzielania dalszych rozdziałów, a z nich wydzielania nagłówków (napisów wprowadzenia tekstu) i tekstów rozdziałów.
Funkcja pętluje przy wykrytych liniach składających się z odstępów, a się zatrzymuje na normalnych danych lub po zakończeniu zasobów.
Główny opis funkcji {{ZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}:
* Funkcja działa w oętli nieskończnonej, aż do zakończenia danych, lub do zwrócenia elementów przez nią,
* W tej pętli funkcja wyszukuje kolejne linie, które nie są pozycjami listy, z którego wyodrębiona linia jest analizowana bez przerwy, jeżeli istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje parametry:
** {{Code|liczba_start}} {{Patrz|liczba_start}} - od której pozycji od tyłu ma wyszukiwać pozycje artykularne,
** {{Code|czy_dalej_rozdzial}} {{Patrz|czy_dalej_rozdzial}} - czy {{ZobaczTeż|czy_dalej_rozdzial}} uznać za pierwszeństwo, w przypadku wykrytego rozdziału dodatniego w linii, lub nie wykrycia takiej linii, która nie jest częścią listy, wtedy jest ważny element (zmienna) {{LinkPatrz|liczba_start}}, przeciwnie jest brane, coś przeciwnego,
** {{Code|liczba_pierwszy_rozdzialowy_artykul}} - jak w: {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}}.
Parametry {{ZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}} zwracane przez funkcję, które są zwracane kolejno w niej na końcu jej działania:
* Początek takiego punktu, uzyskanym w końcu na końcowym obiektu pętli (wyjaśnienie w tekście),
* Liczba znaków odstępów wykrytych poczasz wszystkich obiektów pętli (jest to reprezzentowane przez: {{Code|liczba_spac}} {{Patrz|liczba_spac}}),
* Czy ta tak, uzyskana i zwrócona, linia jest rozdziałem spisu treści (jest to reprezentowane przez: {{Code|czy_spis}} {{Patrz|czy_spis}}).
Etapy zwracania przez funkcję elementów:
; Uzyskanie linii według ogólnego wzoru
* Według {{LinkZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}, tą linia, byłoby takie coś pomiędzy ewentualnie znakami nowymi liniami, która spełnia wzór: {{Code|<nowiki>([^%*#:;<>\n][^\n]*)</nowiki>}}. To wyszukiwanie jest według funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wyszukujący w sposób ogólny linie, niezależnie jak są one realizowane w tekście.
; Początek i koniec uzyskanej linii według powyższego sposobu{{dk}}
* Początek i koniec przechwyconej linii, to są pewne liczby, wraz ze znakami nowej linii, jeśli po któreś stronie istnieją, lub nawet gdy to są w tym elementy, początku lub końca, tekstu, wtedy długość tych elementów jest zero.
; Brak dopasowania linii
* A jeżeli dopasowanie tej linii nie zgłasza niedopasowania, wtedy przy prawdziwości zmiennej: {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według: {{LinkZobaczTeż|czy_dalej_rozdzial}}, zwracane jest: {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie, wartość minimalną, pomiędzy tą zmienną a inną {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}} (jeśli ta zmienna nie istnieje, to domyślnie ma wartość {{Code|1}}).
; Rozdział równaniowy{{dk}}
* Jeżeli tą linią jest rozdział równaniowy, to zwracane jest, jeżeli wartość {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według {{LinkZobaczTeż|czy_dalej_rozdzial}}, ma wartość fałszywą, wtedy jest to dopasowanie końca tej linii, w pierwszym parametrze zwracanym, wraz z innymi danymi, według {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}, a jeżeli ta wartość jest prawdą, to zwracane jest {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, bo w tej funkcji nie ma prawa takich rozdziałów dopasowywać.Ma dopaasowywać tylko normalne linie niebędące pozycjami listy.
; Pierwsze rozgałęzenie specjalne instrukcji warunkowej{{dk}}
: Znaki odstępów - linia to białe znaki:
* Jeżeli linia istnieje i składa się z samych znaków odstępów, to liczmy długość tych znaków, wraz z nowymi liniami po prawej lub lewej stronie, jeśli istnieją, i wsadzamy to do ogólnego licznika {{Code|liczba_spac}} {{LinkPatrz|liczba_spac}}, która jest zwracana na końcu działania funkcji, jako drugi parametr w: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}. Funkcja wykonuje tych okrążeń pętli tyle, ile jest kolejnych linii składających się z tych znaków.
; Przypadek istnienia linii nie składającej się ze znaków odstępów{{dk}}
: Rozdział spisu treści i rozdział zerowy:
* Jeśli linia jest spisem względem {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przyjmuje wartość początkowi takiej ustalonej linii w tekście, a {{Code|czy_spis}} {{LinkPatrz|czy_spis}} przyjmuje wartość prawdziwą.
* A jeśli tak nie jest, to sprawdzamy, czy przed tą linią jest rozdział zerowy na podstawie funkcji: {{LinkŚródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}. Jeżeli ona jest tym rozdziałem, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma już nową wartość, przeciwnie, jeśli ta linia ma na końcu dwukropek, to ta wartość nowa jest równa początkowi wyszukania tej linii, a jeśli nie, to końcowi. Zmienna, czy jest rozdział spisu {{Code|czy_spis}} {{LinkPatrz|czy_spis}} ma wartość prawdziwą, gdy ten rozdział zerowy istnieje, a jeśli nie, to fałszywą.
; Przypadek istnienia, lub nie, rozdziału zerowego{{dk}}
* Jeśli znaleziono taki rozdział (zerowy), to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, to wtedy nie ma żadnych dodatkowych instrukcji do wykonania.
* Punkty zwracania zmiennych, jeśli przeciwnie do poprzedniego:
** Jeśli znaleziono taki spis, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma wartość początkowi takiej linii
** A jeżeli przeciwnie, nie ma w nim kodów, to końcowi, jeśli wyszukana linia nie jest rozdziałem z dwukropkiem na końcu, a jeśli jest, to początkowi tej linii,
*** Wtedy ją, tą uzyskaną z obliczeń, trzeba wliczać w ramach wydzielonego spisu, wtedy zmienna {{Code|czy_spis}} jest prawdą,
** A jeśli jednak ma je, wtedy, czy linia ma pozycje artykularne, które nie są okładkami lub stronami niedozwolonymi, a jeśli tak jest, na podstawie wywołania funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, to zwracany jest początek wyszukania takiej linii w tej zmiennej, przeciwnie powtarzana jest ta wartość.
*** Wtedy, gdy linia nie ma takich artykułów, wtedy jeśli ona ma dwukropek na końcu, wtedy ustalamy zmienną {{Code|czy_spis}} na prawdę.
: Na samym końcu zwracane jest to wszystko w postaci parametrów: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}.
== {{Śródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}{{Code|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}} ==
Funkcja wyszukuje, czy dla obiektu o typie {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} o numerze liczbowym {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} - nie jako łańcuch znakowy, dla ich generowanego odpowiednika {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, generowanego z {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, są linki w zależności od podanej zmiennej {{LinkPatrz|czy_wszystkie_linki}}, a jeżeli tam nie ma linków, to przeszukiwany jest {{LinkPatrz|dalszy_tekst}} w ich poszukiwaniu, którymi zrządzą prawa w zależności od przyporządkowanej zmiennej {{LinkPatrz|czy_nieoddzielone}}, wartość prawdziwa tej zmiennej, włącza dowolność układu obiektów typu: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}.
Funkcja wyszukuje w linii, ale najwierw w: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, a później w: {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, jeżeli w poprzednim nie znalazł, pierwszego takiego linku przyporządkowagp, któremuś z tych obiektów, i przy pierwszym wykryciu zwraca wartość, ale dany obiekt uwwzględniany względem tego poprzedniegomusi spełniać prawa lub nie, w zależności od podanej zmiennej {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieLinkuWeSzablonieOrazDalszymNapisie(obiekt,kod,dalszy_tekst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_oddzielone,czy_wszystkie_linki)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}}, {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|czy_nieoddzielone}} {{Patrz|czy_nieoddzielone}} - czy linki mają być oddzielone interpunkcją, czy odstępami, w przypadu przeciwnym, jeżeli tak nie jest, to funkcja zwraca wartość fałszywą,
** {{Code|czy_wszystkie_linki}} {{Patrz|czy_wszystkie_linki}} - czy uwzględniaj wszystkie linki, czy tylko artykuły, nie okładki, (dozwolone), danej książki,
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy tekst, do przeszukiwania linkowego.
Funkcja zwraca wartość logiczną, jeżeli prawa linkowe tekstu są przyporządkowane przez zmienne: {{LinkPatrz|czy_nieoddzielone}} i {{LinkPatrz|czy_wszystkie_linki}}, to jeśli znalazłeś takie linki, to zwracaj wartość prrawdziwą, a jeśli nie, to fałszywą.
Jeśli zmienna {{LinkPatrz|czy_nieoddzielone}} przyjmuje wartość fałszywą, to te rozważane obiekty, muszą być oddzielone pewnymi znakami, tutaj: {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, a jak nie spełniają tego warunku, to funkcja zwraca wartość fałszywą, w innym wypadku dalej liczy i sprawdza.
== {{Śródtytuł|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}}{{Code|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}} ==
Funkcja jest rozszerzeniem funkcji: {{LinkŚródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}, dla ustalonych dwóch ostatnich zmiennych, które przyjmują wartość {{Code|true}} (prawdziwą), o nazwach: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}} i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, dla tej funkcji, mamy już zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, i {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, a funkcja w nagłówku je ustala, w wyniku działania w pętli.
Funkcja wyszukuje, od tyłu, w tekście, nabliższej pozycji typu: {{Code|SZABLON}}, {{Code|LINKW}} lub {{Code|LINKZ}}, w danej linii, i zwraca odpowiednio dwie wartości, pozycje wykrytą i wartość logiczną powodzenia, w innym przypadku, pozycję początkową z drugim parametrem fałszem.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|liczba_start_rozdzial}} - jak w: {{LinkPatrz|liczba_start_rozdzial}}, pozycja wyszukiwania końcowa,
** {{Code|liczba_spisowa}} {{Patrz|liczba_spisowa}} - pozycja wyszukiwania początkowa.
Parametry zwracane:
* Pierwszy parametr:
** Pozycja, w którym taką pozycję określona przez funkcję znaleziono, drugi parametr wtedy przyjmuje prawdę, jeśli nie znaleziono, takiej pozycji, to ta pozycja przymuje wartość początkową, adrugi parametr jest fałszem,
* Drugi parametr:
** Czy elementy są odzielone od sibie pewnymi znakami, według tej dokumentacji, i czy to są linki artykułów nieokładkowych dozwolonych, w najbliższej linii, wtedy zwraca w drugim parametrze prawdę, w przecciwnym wypadku, w przypadku znalezienia obiektu w najbliższej linii z: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, ale nie wykryto odpowiwdnich linków, według wspomnianej funkcji, wtedy zwracony ten paramtr będzie fałszem, kub do wyczerpania zasobów, też odpowiadającej fałśzowi,
Funkcja wyszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wykorzystując, że tekst jest zakodowany, i znajduje one przy pomocy wyrażenia regularnego generowanego przez: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, na podstawie kodu, którego fragment jest napisany tutaj:
<syntaxhighlight lang="lua">
local liczba_spisu=liczba_spisowa;
local szablonowe_modul=require("Module:Szablonowe");
---- Ustalenie wzoru kodowania, czyli jest to dowolny kod;
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu()
while(true)do
---- Wyszukuje dowolną linię według wyrażenia regularnego podanego w kodzie, zawartą całkowicie w linii;
local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
</syntaxhighlight>
Fukcja sprawdza, czy dokonano sprawdzenia, jeśli pozytywnie ono przeszło, to musi istnieć zmienna {{Code|liczba_linki_nierozdzialowe_szablonu}} {{Patrz|liczba_linki_nierozdzialowe_szablonu}} oraz musi być spełniona alternatywa dwóch warunków: {{Code|przed_tekst}} {{Patrz|przed_tekst}} musi być puste lub ma spełniać warunek według wzoru: {{Code|<nowiki>^[%p%s%d%.]*$</nowiki>}}.
Jeżeli funkcja nie dopasowała kodu: {{Code|obiekt_szablon}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, do wartości: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, to działa w pętli aż dopasuje je, aż do zakończenia zasobu danych dostępnych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, jeżeli nie mogła by tego zrobić. A jeśli je dopasowała, to sprawdza, czy te kody są odpowiednimi obiektami, ewentualnie oddzielonych od siebie znakami {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, poprzez sprawdzanie funkcją wspomnianą w nagłówku. Jeśli ta funkcja zwróci wartość prawdziwą, to zwrócone zostaną parametry:
<syntaxhighlight lang="lua">
return liczba_linki_nierozdzialowe_szablonu,true;
</syntaxhighlight>
W innych przypadkach, jeżeli takiego dopasowania nie znalazła, to zwróć szereg wartości:
<syntaxhighlight lang="lua">
return liczba_spisowa,false;
</syntaxhighlight>
W tym przypadku wartość {{Code|liczba_spisowa}} {{LinkPatrz|liczba_spisowa}}, to nic innego jak ostatni argument naszej funkcji, czyli w przypadku niepowoddzenia dopasowania, zwracana jest wartość ta początkowa, zdrugą wartością, że niezaleziono poszukiwanego obiektu.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowychZakresowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowychZakresowych}} ==
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowychZakresowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_pierwszy_rozdzialowy_artykul,liczba_przed_rozdzialem,liczba_start_naglowek_przed,czy_znajdz)...end;
</syntaxhighlight>
Parametry funkcji:
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
hn28x2cqe9pduzvzp8jll3lg7o697k9
554552
554551
2026-09-05T20:48:39Z
Persino
2851
/* {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} */
554552
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
Jest to funkcja do sprawdzania tekstu zawartości (tekstu rozdziału, bez zawartości nagłówka) napisu wprowadzenia tekstu sekcji, za pomocą funkcji zwracanej, czy ona spełnia pewne określone warunki.
Funkcja, gdy co jest nie tak, to zwraca wartość {{Code|true}}, i przy okazji może zerować pewne określone zmienne, jeśli ona przy tym została odpowiednio ustawiona, przeciwnie ona zawsze zwraca wartość {{Code|nil}}, czyli nie zwraca żadnej wartości.
Za pomocą tej funkcji można sprawdzić, czy funkcja zawiera niedozwolone znaki wikikodu, i dlatego zwraca tą prawdziwość.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe)
... ---- ciało funkcji zwracanej
end;
end;
</syntaxhighlight>
Parametry ogólne funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|czy_zeruj}} {{Patrz|czy_zeruj}} - czy ma zerować, ścisle określone zmienne, które mieszczą się w niezerowej tablicy zmiennych składowych, tzn. w: {{LinkPatrz|tab_zmienne}},
* {{Code|tab_zmienne}} {{Patrz|tab_zmienne}} - zmienne w nim do zerowania,
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Parametry funkcji zwracanej dla tekstu rozważanego {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}:
* {{Code|liczba_koniec_naglowek}} {{Patrz|liczba_koniec_naglowek}} - numer znaku, po którym coś rozważamy,
* {{Code|liczba_obiekt_start_nowe}} {{Patrz|liczba_obiekt_start_nowe}} - numer znaku, przed którym coś rozważamy.
; Sprawdzenie spełnienia warunku, przejście do wnętrza tej instrukcji warunkowej{{dk}}
Funkcja zwracana sprawdza, czy zmienne: {{LinkPatrz|liczba_koniec_naglowek}} i {{LinkPatrz|liczba_obiekt_start_nowe}}, istnieją, i te zmienne sugerują punkty znakowe w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, ale jeżeli te zmienne liczbowe punktów znakowych mają takie wartości, że nie da się znaleźć dla tej zmiennej tekstowej treści pomiędzy nimi, to ta funkcja nie zwraca żadnej wartości, to zachodzi, kiedy nie jest spełniony warunek:
<syntaxhighlight lang="lua">
if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then
</syntaxhighlight>
; Sprawdzenie uzyskanej zmiennej tekstowej, będąca tekstem pomiędzy linkiem, a końcem rozdziału{{dk}}
* Liczenie zmiennej tekstowej za pomocą, którą będziemy sprawdzać:
: A jeżeli jest jednak tak, tzn. spełniony jest ten warunek, to znajdujemy taki tekst, robi to za pomocą funkcji: {{LzLua|mw.ustring.sub}}, i zapisuje to pod zmienną {{Code|str}} {{Patrz|str}}.
* Pierwszy etap analizowania tej zmiennej, czy jest poprawna, tzn. czy nie zwraca żadnej wartości, ale czy się zakańcza:
: Następnie sprawdza, czy ona jest w cudzysłowach, tzn. czy spełnia warunek: {{Code|<nowiki>^%s*'+(.+)'+%s*$</nowiki>}}, lub czy początek zaczyna się od znaków: {{Code|<nowiki>^[%*#:;<>]+</nowiki>}}, lub czy ten tekst zawiera dozwolone znaki z przedziału: {{Code|<nowiki>^[%s%p%w]*$</nowiki>}} - tzn. czy tekst składa się ze znaków odstępu, interpunkcyjnych, znaków alfanumerycznych lub z dolnym myślników, jeżeli któreś z tych warunków jest spełnione, to funkcja nie zwraca żadnej wartości, ale zatrzymuje się, tzn. zakańcza się, to oznacza, że wszystko jest w porządku. A jeżeli nie spełnione z żadnych z tych warunków, to ona idzie dalej, i robi następne czynności następne, aby sprawdzić dalsze warunki, czy wszystko jest w porządku.
; Sprawdzanie niepustych linii{{dk}}
* Sprawdzanie niepustych linii po liniach, ewentualnie składających się ze znaków odstępów:
: Funkcja liczy ile takich linii znalał, zapisuje to pod zmienną {{Code|ile}} {{Patrz|ile}}, jeśli wśród takich linii znalazł linie pasujące do: {{Code|<nowiki>^[%*#;:<>]</nowiki>}}, lub składające się znaków odstępów: {{Code|<nowiki>^%s*$</nowiki>}}, wtedy funkcja to liczy licznikiem: {{Code|ile_punktowanych}} {{Patrz|ile_punktowanych}}.
Funkcja w tak wyszukanych liniach w przeciwnym razie sprawdza, w liniach niepasujących do tych wzorów, czy tam są artykuły (strony) nie z rozważanej danej książki, przy pomocy funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}} {{Patrz|p.CzyGeneralnieElementSpisuRzeczy}}, jeśli są takie elementy, to funkcja dodaje to do licznika {{LinkPatrz|ile_punktowanych}}, aby dodać jeden do licznika, dla każdej takiej linii funkcja sprawdza, czy przynajmniej jeden taki artykuł się znajduje tam, w każdej takiej wykrytej linii.
* Jeśli liczba określona przez zmienną: {{LinkPatrz|ile_punktowanych}}, jeżeli jest co najmniej równa wyszukanym liniom {{LinkPatrz|ile}}, to funcja się zatrzymuje, i nie zwraca żadnej wartości, czyli wskazuje na powodzenie.
* Gdy liczba tego jest mniejsza niż wykrytych linii, to coś jest nie tak, wtedy funkcja nic nie zwraca, tylko idzie dalej.
; Inne operacje w przypadku niestwierdzenia, jak dotąd niepowodzenia przez funkcję, nie ma jeszcze zwróconej wartości {{nobold|{{Code|nil}}}}{{dk}}
* Zerowanie się pewnych wartości:
** Funkcja z tak policzonego {{LinkPatrz|str}} usuwa formy kodów z obiektami {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, a jeżeli znalazł w nim same, wtedy znaki odstępów, to ona nie zwraca żadnej wartości, ale się zakańcza, przeciwnie, sprawdza, czy jest zmienna: {{LinkPatrz|czy_zeruj}}, która jest prawdziwa, a jeśli tak, to elementy zmiennej {{LinkPatrz|tab_zmienne}} są nilowane, tzn. podzmienne o kluczach:
* {{Code|liczba_nie_okladka_artykul}} {{Patrz|liczba_nie_okladka_artykul}} - liczba pozycji sekcji wskazująca, czy istnieje pierwszy taki artykuł (nie okładka, nie strona niedozwolona) aktualnej książki, lub bezpośrednio taki artykuł, niekoniecznie tej książki, czy znajduje się bezpośrednio w pozycji sekcji, i tylko sam tam się znajduje,
* {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{Patrz|liczba_pierwszy_rozdzialowy_artykul}} - liczba pozycji sekcji, która wskazuje na pierwszy taki wykryty artykuł, licząc od przodu, który spełnia pewne ścisle okreslone kryteria, jest to dowolny artykuł,jaki może być w książce,
: Kryteria określone przez te zmienne powyżej są określone przez funkcję: {{LinkPatrz|p.CzyGeneralnieElementSpisuRzeczy}},
* {{Code|czy_ten_rozdzial}} {{Patrz|czy_ten_rozdzial}} - wartość prawdziwą wskazuje, czy wynilowano zmienne należące do rozważanej tablicy.
Ale niezależnie od wartości {{LinkPatrz|czy_zeruj}}, funkcja wtedy zwraca zawsze wraca wartość {{Code|true}}, czyli ona zwraca to niepowodzenie.
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
Funkcja wyszukuje, od tyłu, kolejne rozdziały (napisy wprowadzenia tekstu), którego tekst rozdziału składa się z samych znaków odstępów, lub jest pusty, albo o poziomie wyższym rozdziałowo, nawet gdy jego tekst rozdziału jednak nie jest pusty.
Funkcja jest przerywana po najbliższych niespełniających warunkach. Funkcja zwraca parametry, z ostatniego pasującego dopasowana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - podczas wyszukiwania od tyłu, do jakiego punktu ma wyszukiwać,
* {{Code|liczba_obiekt_start_nowe}} - jak w: {{LinkPatrz|liczba_obiekt_start_nowe}}, wykorzystywane w funkcji: {{linkPatrz|AnalizowanieSekcjowe}}, do sprawdzania pomiędzy znakami: końcem wyszukiwanego nagłówka, wraz ze znakiem nowej linii, a tą zmienną, do sprawdzania, czy tekst rozdziału spełnia ściśle określone normy określone przez tą funkcję, jest to pozycja taka na jaką wskazuje również pozycja jakaś artykularna, prze którym sprawdzamy tą funkcją tekst,
* {{Code|liczba_obiekt_start_spac_par}} {{Patrz|liczba_obiekt_start_spac_par}} - numer znaku, od którego ma wyszukiwać od tytułu pewne linie,
* {{Code|czy_dodatni}} {{Patrz|czy_dodatni}} - typ wyszukiwania rozdziałów, tzn. {{LinkZobaczTeż|czy_dodatni}},
* {{Code|czy_bez_naglowka}} {{Patrz|czy_bez_naglowka}} - czy ma wyszukiwać do: {{Code|1}}, od tytułu, a nie do: {{LinkPatrz|liczba_start_rozdzial}},
* {{Code|AnalizowanieSekcjowe}} {{Patrz|AnalizowanieSekcjowe}} - to nic innego jest, jak funkcja inicjowana przez zwracaną procedurę przez: {{LinkŚródtytuł|p.AnalizowanieSekcjowe}}, która ma w sobie pewne elementy początkowe w sobie wsadzonych jako parametry, które są wykorzystywane prze obiekt przez nią zwracany, która coś robi.
; Typy dopasowywania rozdziałów paarametru{{dk}} {{nobold|czy_dodatni {{Code|{{=}}}} {{LinkPatrz|czy_dodatni}} {{ZobaczTeż|czy_dodatni}}}}{{dk}}
* {{Code|1}} - wyszukuje rozdziały wskazywane przez funkcję: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}},
* {{Code|2}} - wyszukuje pozycje list zaczynające się od znaków: {{Code|<nowiki>[%*#:;<>]+</nowiki>}}, jako pewne rozdziały, które trzeba wyszukać,
* Inna wartość niż dwie powyższe - wtedy są wyszukiwane rozdziały niezaczynające się od: {{Code|<nowiki>[^%*#:;<>\n]</nowiki>}}, i kończące się na dwukropek.
: Dla dwóch ostatnich powyższych punktów są wyszukiwane linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
: Funkcja dla tych dwóch pierwszych sprawdza, tylko raz, czy to jest rozdział spisu treści wskazywaną przez funkcję: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, jeżeli parsowanie przeszło niepomyślnie, a funkcja {{LinkPatrz|AnalizowanieSekcjowe}} zrzuci wartość prawdziwą, wtedy ta cała funkcja z nagłówka zrzuca wartość logiczną fałszywą. Ta funkcja wykorzystuje wartość: {{LinkPatrz|liczba_obiekt_start_nowe}}, jako drugi parametr, dla którego liczy ona tekst przed, ta zmienna może wskazywać na początek pozycji linii artykularnej (z artykułami), aby ona policzyła swoją wartość.
Funkcja działa w pętli do zakończenia zasobu danych lub w inny sposób, ale też do zakończenia. Funkcja wtedy robi operacje zawsze dla {{LinkPatrz|czy_dodatni}} równe {{Code|1}} lub dla tych, gdzie: {{LinkŚródtytuł|p.CzyTamElementyNieSpisoweArtykularne|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, zwraca wartość logiczną prawdziwą, własnie dla tego, jeśli ta operacja zwróci prawdę, to dla tego są dopasowywane elementy zwracane. Wtedy wiadomo, że wyszukane tak pozycje są rozdziałami.
Funkcja zwraca wyniku w postaci wartości szegu zwracanych:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej;
</syntaxhighlight>
Wytłumaczenie tych elementów zrzuconych przez nią dla dopasowań, licząc od tyłu:
; Ostanie dopasowanie nagłówka pasujące, gdy tekst jego rozdziału jest równy znakom odstępu lub jest pusty{{dk}}
* {{Code|liczba_start_naglowek}} - początek ostatniego wyszukanego takiego nagłówka,
* {{Code|liczba_koniec_naglowek_poczt}} - koniec pierwszego wyszukanego nagłówka,
* {{Code|naglowek}} - wartość nagłówka dla tego ostatniego dopasowania,
* {{Code|poziom_naglowka}} - poziom takiego nagłówka,
; Niepasujący nagłówek, wyszukane pierwsze z kolei po pasującym{{dk}}
: Według wartości zwracanych powyższych w pierwszej kolejności, dla którego tekst rozdziału nie jest równa znakom odstępu i nie jest pusty:
* {{Code|liczba_start_naglowek_dalej}} - początek po pasującym tak nagłówku,
* {{Code|liczba_koniec_naglowek_dalej}} - a tutaj jego koniec,
* {{Code|naglowek_dalej}} - wartość tekstu napisu wprowadzenia tekstu,
* {{Code|poziom_naglowek_dalej}} - tutaj jego poziom.
W przypadku nieznalezienia takich nagłówków funkcja nie zwraca niczego.
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
Funkcja służy do zaawansowanego szukania, od tyłu, nagłówków w przeciwieństwie do: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, która służy przede wszystkim do szukania sekcji kolejnych jednego rodzaju, a ta funkcja znajduje się w postaci wielu typów, ona wie, że w tekście może być równy układ nagłówków różnych typów.
Funkcja wyszukuje od tyłu, znajduje parametry ostatniego nagłówka i je zwraca, jeżeli je znalazł, a jeśli nie, to nie zwraca żadnej wartości, tylko funkcja się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Jedynie funkcja nie ma parametru: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, ponieważ ta funkcji nie szuka kolejnych rozdziałów tylko jednego rodzaju, lecz wielu.
=== {{Śródtytuł|str_spacja_lub_zerowy_naglowek}}{{Code|str_spacja_lub_zerowy_naglowek}} ===
Dla każdej takiej niepustej linii, sprawdzane jest, czy to są linie z odstępami lub nie będące elementami listy, ale w sposób rozszerzony, tzn. ten początek nie może składać się z pewnych znaków, czyli: {{Code|<nowiki>^[^%*#:;<>\n]</nowiki>}}.
Funkcja sprawdza, czy liczba takich linii, jest taka sama, ile jest niepustych linii, wtedy funkcja zwraca wartość logiczną prawdziwą, przeciwnie wartość nilową.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local str_spacja_lub_zerowy_naglowek=function(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do sprawdzenia.
=== Ciąg dalszy opisu funkcji ===
; Etapy dopasowania ostatniego dopasowania rozdziałów, jego pozycja w tekście i jego napis wprowadzenia tekstu
* Etap ogólny
Funkcja najpierw wyszukuje rozdziały poprzez wskazanie przez funkcję: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, a jeżeli znalazł artykuł, o niepustych secjach pomiędzy ostatnim wskazanym artykułen (przed artykułem), a rozdziałem, wtedy ta funkcja zwraca wartość logiczną fałszywą i zwraca wartość nilową, czyli nic nie zwraca, i funkcja się zakańcza, i wskazuje, że nie znalazł takiego nagłówka, to się dzieje pod warunkiem, że funkcja: {{LinkPatrz|AnalizowanieSekcjowe}}, została podana, w przeciwnym wypadku, to już tak się nie dzieje, a nagłówek z tego wywołania mógł być znaleziony, ale nie musiał.
; Etapy alternatywy
* Pierwszy etap
** To dotyczy, że znalazł ostatnie dopasowanie, ale niepasującego nagłówka przed nim nie ma.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli tego nie znalazł, wtedy przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, w pętli nieskończonej, najpierw dla parametru: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, najpierw jest to pierwsze, a później to drugie, jeśli z tego pierwszego zostało wykonana komenda przerwania pętli, to drugie dopasowanie nie zostanie wykonane w danym obiegu jego, normalnie, bez tego są dwa wywołania.
W każdym takim wywołaniu i dopasowaniu, w pierwszym, czy drugim, będzie sprawdzane, czy tego dokonano, czy taki nagłówek znaleziono, a jeśli tak, to sprawdzany jest tekst pomiędzy ostatnim końcem w wykrytym nagłówku, a początkiem tego przedostatniego, lub z etapu ogólnego, funkcją: {{LinkŚródtytuł|str_spacja_lub_zerowy_naglowek}}, jeżeli funkcja zwróciła wartość logiczną odpowiadającej fałszywej, to pętla jest przerywana, w przeciwnym wypadku są inicjowane parametry tego dopasowania, które przygotowuje ona zwrócić do funkcji w nagłówku.
: Ogólnie po drugim taki wywołaniu następuje sprawdzenie parametrów zwróconych:
Jeżeli w ostatnim takim wywołaniu w tym funkcja zwraca niedopasowanie, wtedy zwracane jest przerywanie pętli, wtedy mamy parametry ostatniego dopasowania, jeśli istnieją takie.
* Drugi
** To dotyczy, że takiego dopasowania pasującego nie znalazł.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli to znalazł, to wyszukany stąd nagłówek jest rozwijany przy pomocy funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}. Jeżeli parser funkcji nie wykrył wykrzyknika na końcu takiego nagłówka, wtedy jest sprawdzane przy pomocy iteratora w zakodowanym tekście przy pomocy: {{Code|{{m|Szablonowe}}}}, na podstawie: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, czy w nagłówku istnieje artykuły bieżącej ksiązki, czy analizowanej, i czy to nie jest okładka, czy strona niedozwolona. Jeżeli wykryto takie artykuły, lub pętla nie została wykonana, bo nie ma takich wykrytym nagłówku kodów, to funkcja inicjuje parametry zwracanych wartości przez funkcję w nagłówku.
* Trzeci
** To dotyczy pozostałych przypadków, w którym znalazł ostatnie dopasowanie, a niepasujące przed nim też znalazł.
Jest wywoływane wywołanie: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, najpierw w pierwszym wywołaniu dla: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, a w każdym takim wywołaniu po jest sprawdzane, czy tekst pomiędzy końcem ostatniego wykrytego nagłówka, a początkiem przedostatniego nagłówka, a nawet artykułu wykrytego, czyli czy taki tekst rozdziału, czy składa się z samych znaków odstępów, a jeśli tak, to inicjowane są parametry zwracane przez funkcję. Dalej przechodzimy z pierwszego do drugiego wywołania, w którym oba wywołania są podobnie zbudowane.
; Parametry wychodzące z funkcji{{dk}}
* Oto parametry inicjowane przez funkcję w tych powyższych trzech etapach alternatywnych, które na końcu funkcji w nagłówku są zwracane:
: Funkcja zwraca wartości określone przez kod:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka;
</syntaxhighlight>
Wytłumaczenia parametrów zwracanych:
; Parametry określają ostatnie dopasowanie nagłówkowe w wewnątrz funkcji{{dk}}
* {{Code|liczba_start_naglowek}} - początek tego dopasowania,
* {{Code|liczba_koniec_naglowek}} - jego koniec,
* {{Code|naglowek}} - wartość napisu wprowadzenia tekstu nagłówka,
* {{Code|poziom_naglowka}} - poziom tego nagłówka.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
Funkcja służy do wyszukiwania, od tyłu, pozycji artykularnej przed wykrytym ostatnim rozdziałem, lub gdy nie ma rozdziałów, to liczy pozycję tylko artykularną, lub nawet pozycji rozdziałów zerowych spisu treści albo nawet tych z dwukropkiem na końcu danej linii, i szuka od tyłu takie coś, by to uznać za początek spisu treści wyciętej z tekstu zakodowanego spisu, czyli ogólnie mówiąc funkcja szuka dalej takiego początku dalszego.
Funkcja służy też do wydzielania części spisu spełniające powyższe kryteria, aby można było ją parsować przez inne funkcje '''Stronicowego parsera''', do wydzielania dalszych rozdziałów, a z nich wydzielania nagłówków (napisów wprowadzenia tekstu) i tekstów rozdziałów.
Funkcja pętluje przy wykrytych liniach składających się z odstępów, a się zatrzymuje na normalnych danych lub po zakończeniu zasobów.
Główny opis funkcji {{ZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}:
* Funkcja działa w oętli nieskończnonej, aż do zakończenia danych, lub do zwrócenia elementów przez nią,
* W tej pętli funkcja wyszukuje kolejne linie, które nie są pozycjami listy, z którego wyodrębiona linia jest analizowana bez przerwy, jeżeli istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje parametry:
** {{Code|liczba_start}} {{Patrz|liczba_start}} - od której pozycji od tyłu ma wyszukiwać pozycje artykularne,
** {{Code|czy_dalej_rozdzial}} {{Patrz|czy_dalej_rozdzial}} - czy {{ZobaczTeż|czy_dalej_rozdzial}} uznać za pierwszeństwo, w przypadku wykrytego rozdziału dodatniego w linii, lub nie wykrycia takiej linii, która nie jest częścią listy, wtedy jest ważny element (zmienna) {{LinkPatrz|liczba_start}}, przeciwnie jest brane, coś przeciwnego,
** {{Code|liczba_pierwszy_rozdzialowy_artykul}} - jak w: {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}}.
Parametry {{ZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}} zwracane przez funkcję, które są zwracane kolejno w niej na końcu jej działania:
* Początek takiego punktu, uzyskanym w końcu na końcowym obiektu pętli (wyjaśnienie w tekście),
* Liczba znaków odstępów wykrytych poczasz wszystkich obiektów pętli (jest to reprezzentowane przez: {{Code|liczba_spac}} {{Patrz|liczba_spac}}),
* Czy ta tak, uzyskana i zwrócona, linia jest rozdziałem spisu treści (jest to reprezentowane przez: {{Code|czy_spis}} {{Patrz|czy_spis}}).
Etapy zwracania przez funkcję elementów:
; Uzyskanie linii według ogólnego wzoru
* Według {{LinkZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}, tą linia, byłoby takie coś pomiędzy ewentualnie znakami nowymi liniami, która spełnia wzór: {{Code|<nowiki>([^%*#:;<>\n][^\n]*)</nowiki>}}. To wyszukiwanie jest według funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wyszukujący w sposób ogólny linie, niezależnie jak są one realizowane w tekście.
; Początek i koniec uzyskanej linii według powyższego sposobu{{dk}}
* Początek i koniec przechwyconej linii, to są pewne liczby, wraz ze znakami nowej linii, jeśli po któreś stronie istnieją, lub nawet gdy to są w tym elementy, początku lub końca, tekstu, wtedy długość tych elementów jest zero.
; Brak dopasowania linii
* A jeżeli dopasowanie tej linii nie zgłasza niedopasowania, wtedy przy prawdziwości zmiennej: {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według: {{LinkZobaczTeż|czy_dalej_rozdzial}}, zwracane jest: {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie, wartość minimalną, pomiędzy tą zmienną a inną {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}} (jeśli ta zmienna nie istnieje, to domyślnie ma wartość {{Code|1}}).
; Rozdział równaniowy{{dk}}
* Jeżeli tą linią jest rozdział równaniowy, to zwracane jest, jeżeli wartość {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według {{LinkZobaczTeż|czy_dalej_rozdzial}}, ma wartość fałszywą, wtedy jest to dopasowanie końca tej linii, w pierwszym parametrze zwracanym, wraz z innymi danymi, według {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}, a jeżeli ta wartość jest prawdą, to zwracane jest {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, bo w tej funkcji nie ma prawa takich rozdziałów dopasowywać.Ma dopaasowywać tylko normalne linie niebędące pozycjami listy.
; Pierwsze rozgałęzenie specjalne instrukcji warunkowej{{dk}}
: Znaki odstępów - linia to białe znaki:
* Jeżeli linia istnieje i składa się z samych znaków odstępów, to liczmy długość tych znaków, wraz z nowymi liniami po prawej lub lewej stronie, jeśli istnieją, i wsadzamy to do ogólnego licznika {{Code|liczba_spac}} {{LinkPatrz|liczba_spac}}, która jest zwracana na końcu działania funkcji, jako drugi parametr w: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}. Funkcja wykonuje tych okrążeń pętli tyle, ile jest kolejnych linii składających się z tych znaków.
; Przypadek istnienia linii nie składającej się ze znaków odstępów{{dk}}
: Rozdział spisu treści i rozdział zerowy:
* Jeśli linia jest spisem względem {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przyjmuje wartość początkowi takiej ustalonej linii w tekście, a {{Code|czy_spis}} {{LinkPatrz|czy_spis}} przyjmuje wartość prawdziwą.
* A jeśli tak nie jest, to sprawdzamy, czy przed tą linią jest rozdział zerowy na podstawie funkcji: {{LinkŚródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}. Jeżeli ona jest tym rozdziałem, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma już nową wartość, przeciwnie, jeśli ta linia ma na końcu dwukropek, to ta wartość nowa jest równa początkowi wyszukania tej linii, a jeśli nie, to końcowi. Zmienna, czy jest rozdział spisu {{Code|czy_spis}} {{LinkPatrz|czy_spis}} ma wartość prawdziwą, gdy ten rozdział zerowy istnieje, a jeśli nie, to fałszywą.
; Przypadek istnienia, lub nie, rozdziału zerowego{{dk}}
* Jeśli znaleziono taki rozdział (zerowy), to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, to wtedy nie ma żadnych dodatkowych instrukcji do wykonania.
* Punkty zwracania zmiennych, jeśli przeciwnie do poprzedniego:
** Jeśli znaleziono taki spis, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma wartość początkowi takiej linii
** A jeżeli przeciwnie, nie ma w nim kodów, to końcowi, jeśli wyszukana linia nie jest rozdziałem z dwukropkiem na końcu, a jeśli jest, to początkowi tej linii,
*** Wtedy ją, tą uzyskaną z obliczeń, trzeba wliczać w ramach wydzielonego spisu, wtedy zmienna {{Code|czy_spis}} jest prawdą,
** A jeśli jednak ma je, wtedy, czy linia ma pozycje artykularne, które nie są okładkami lub stronami niedozwolonymi, a jeśli tak jest, na podstawie wywołania funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, to zwracany jest początek wyszukania takiej linii w tej zmiennej, przeciwnie powtarzana jest ta wartość.
*** Wtedy, gdy linia nie ma takich artykułów, wtedy jeśli ona ma dwukropek na końcu, wtedy ustalamy zmienną {{Code|czy_spis}} na prawdę.
: Na samym końcu zwracane jest to wszystko w postaci parametrów: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}.
== {{Śródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}{{Code|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}} ==
Funkcja wyszukuje, czy dla obiektu o typie {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} o numerze liczbowym {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} - nie jako łańcuch znakowy, dla ich generowanego odpowiednika {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, generowanego z {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, są linki w zależności od podanej zmiennej {{LinkPatrz|czy_wszystkie_linki}}, a jeżeli tam nie ma linków, to przeszukiwany jest {{LinkPatrz|dalszy_tekst}} w ich poszukiwaniu, którymi zrządzą prawa w zależności od przyporządkowanej zmiennej {{LinkPatrz|czy_nieoddzielone}}, wartość prawdziwa tej zmiennej, włącza dowolność układu obiektów typu: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}.
Funkcja wyszukuje w linii, ale najwierw w: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, a później w: {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, jeżeli w poprzednim nie znalazł, pierwszego takiego linku przyporządkowagp, któremuś z tych obiektów, i przy pierwszym wykryciu zwraca wartość, ale dany obiekt uwwzględniany względem tego poprzedniegomusi spełniać prawa lub nie, w zależności od podanej zmiennej {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieLinkuWeSzablonieOrazDalszymNapisie(obiekt,kod,dalszy_tekst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_oddzielone,czy_wszystkie_linki)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}}, {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|czy_nieoddzielone}} {{Patrz|czy_nieoddzielone}} - czy linki mają być oddzielone interpunkcją, czy odstępami, w przypadu przeciwnym, jeżeli tak nie jest, to funkcja zwraca wartość fałszywą,
** {{Code|czy_wszystkie_linki}} {{Patrz|czy_wszystkie_linki}} - czy uwzględniaj wszystkie linki, czy tylko artykuły, nie okładki, (dozwolone), danej książki,
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy tekst, do przeszukiwania linkowego.
Funkcja zwraca wartość logiczną, jeżeli prawa linkowe tekstu są przyporządkowane przez zmienne: {{LinkPatrz|czy_nieoddzielone}} i {{LinkPatrz|czy_wszystkie_linki}}, to jeśli znalazłeś takie linki, to zwracaj wartość prrawdziwą, a jeśli nie, to fałszywą.
Jeśli zmienna {{LinkPatrz|czy_nieoddzielone}} przyjmuje wartość fałszywą, to te rozważane obiekty, muszą być oddzielone pewnymi znakami, tutaj: {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, a jak nie spełniają tego warunku, to funkcja zwraca wartość fałszywą, w innym wypadku dalej liczy i sprawdza.
== {{Śródtytuł|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}}{{Code|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}} ==
Funkcja jest rozszerzeniem funkcji: {{LinkŚródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}, dla ustalonych dwóch ostatnich zmiennych, które przyjmują wartość {{Code|true}} (prawdziwą), o nazwach: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}} i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, dla tej funkcji, mamy już zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, i {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, a funkcja w nagłówku je ustala, w wyniku działania w pętli.
Funkcja wyszukuje, od tyłu, w tekście, nabliższej pozycji typu: {{Code|SZABLON}}, {{Code|LINKW}} lub {{Code|LINKZ}}, w danej linii, i zwraca odpowiednio dwie wartości, pozycje wykrytą i wartość logiczną powodzenia, w innym przypadku, pozycję początkową z drugim parametrem fałszem.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|liczba_start_rozdzial}} - jak w: {{LinkPatrz|liczba_start_rozdzial}}, pozycja wyszukiwania końcowa,
** {{Code|liczba_spisowa}} {{Patrz|liczba_spisowa}} - pozycja wyszukiwania początkowa.
Parametry zwracane:
* Pierwszy parametr:
** Pozycja, w którym taką pozycję określona przez funkcję znaleziono, drugi parametr wtedy przyjmuje prawdę, jeśli nie znaleziono, takiej pozycji, to ta pozycja przymuje wartość początkową, adrugi parametr jest fałszem,
* Drugi parametr:
** Czy elementy są odzielone od sibie pewnymi znakami, według tej dokumentacji, i czy to są linki artykułów nieokładkowych dozwolonych, w najbliższej linii, wtedy zwraca w drugim parametrze prawdę, w przecciwnym wypadku, w przypadku znalezienia obiektu w najbliższej linii z: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, ale nie wykryto odpowiwdnich linków, według wspomnianej funkcji, wtedy zwracony ten paramtr będzie fałszem, kub do wyczerpania zasobów, też odpowiadającej fałśzowi,
Funkcja wyszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wykorzystując, że tekst jest zakodowany, i znajduje one przy pomocy wyrażenia regularnego generowanego przez: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, na podstawie kodu, którego fragment jest napisany tutaj:
<syntaxhighlight lang="lua">
local liczba_spisu=liczba_spisowa;
local szablonowe_modul=require("Module:Szablonowe");
---- Ustalenie wzoru kodowania, czyli jest to dowolny kod;
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu()
while(true)do
---- Wyszukuje dowolną linię według wyrażenia regularnego podanego w kodzie, zawartą całkowicie w linii;
local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
</syntaxhighlight>
Fukcja sprawdza, czy dokonano sprawdzenia, jeśli pozytywnie ono przeszło, to musi istnieć zmienna {{Code|liczba_linki_nierozdzialowe_szablonu}} {{Patrz|liczba_linki_nierozdzialowe_szablonu}} oraz musi być spełniona alternatywa dwóch warunków: {{Code|przed_tekst}} {{Patrz|przed_tekst}} musi być puste lub ma spełniać warunek według wzoru: {{Code|<nowiki>^[%p%s%d%.]*$</nowiki>}}.
Jeżeli funkcja nie dopasowała kodu: {{Code|obiekt_szablon}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, do wartości: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, to działa w pętli aż dopasuje je, aż do zakończenia zasobu danych dostępnych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, jeżeli nie mogła by tego zrobić. A jeśli je dopasowała, to sprawdza, czy te kody są odpowiednimi obiektami, ewentualnie oddzielonych od siebie znakami {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, poprzez sprawdzanie funkcją wspomnianą w nagłówku. Jeśli ta funkcja zwróci wartość prawdziwą, to zwrócone zostaną parametry:
<syntaxhighlight lang="lua">
return liczba_linki_nierozdzialowe_szablonu,true;
</syntaxhighlight>
W innych przypadkach, jeżeli takiego dopasowania nie znalazła, to zwróć szereg wartości:
<syntaxhighlight lang="lua">
return liczba_spisowa,false;
</syntaxhighlight>
W tym przypadku wartość {{Code|liczba_spisowa}} {{LinkPatrz|liczba_spisowa}}, to nic innego jak ostatni argument naszej funkcji, czyli w przypadku niepowoddzenia dopasowania, zwracana jest wartość ta początkowa, zdrugą wartością, że niezaleziono poszukiwanego obiektu.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowychZakresowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowychZakresowych}} ==
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowychZakresowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_pierwszy_rozdzialowy_artykul,liczba_przed_rozdzialem,liczba_start_naglowek_przed,czy_znajdz)...end;
</syntaxhighlight>
Parametry funkcji:
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
fbn3tbsuf58tcleoyn5gv0tkwahk1eg
554556
554552
2026-09-05T21:49:17Z
Persino
2851
554556
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
Jest to funkcja do sprawdzania tekstu zawartości (tekstu rozdziału, bez zawartości nagłówka) napisu wprowadzenia tekstu sekcji, za pomocą funkcji zwracanej, czy ona spełnia pewne określone warunki.
Funkcja, gdy co jest nie tak, to zwraca wartość {{Code|true}}, i przy okazji może zerować pewne określone zmienne, jeśli ona przy tym została odpowiednio ustawiona, przeciwnie ona zawsze zwraca wartość {{Code|nil}}, czyli nie zwraca żadnej wartości.
Za pomocą tej funkcji można sprawdzić, czy funkcja zawiera niedozwolone znaki wikikodu, i dlatego zwraca tą prawdziwość.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe)
... ---- ciało funkcji zwracanej
end;
end;
</syntaxhighlight>
Parametry ogólne funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|czy_zeruj}} {{Patrz|czy_zeruj}} - czy ma zerować, ścisle określone zmienne, które mieszczą się w niezerowej tablicy zmiennych składowych, tzn. w: {{LinkPatrz|tab_zmienne}},
* {{Code|tab_zmienne}} {{Patrz|tab_zmienne}} - zmienne w nim do zerowania,
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Parametry funkcji zwracanej dla tekstu rozważanego: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}:
* {{Code|liczba_koniec_naglowek}} {{Patrz|liczba_koniec_naglowek}} - numer znaku, po którym coś rozważamy,
* {{Code|liczba_obiekt_start_nowe}} {{Patrz|liczba_obiekt_start_nowe}} - numer znaku, przed którym coś rozważamy.
; Sprawdzenie spełnienia warunku, przejście do wnętrza tej instrukcji warunkowej{{dk}}
Funkcja zwracana sprawdza, czy zmienne: {{Code|liczba_koniec_naglowek}} {{LinkPatrz|liczba_koniec_naglowek}}, i {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, istnieją, i te zmienne sugerują punkty znakowe w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, ale jeżeli te zmienne liczbowe punktów znakowych mają takie wartości, że nie da się znaleźć dla tej zmiennej tekstowej treści pomiędzy nimi, to ta funkcja nie zwraca żadnej wartości, to zachodzi, kiedy nie jest spełniony warunek:
<syntaxhighlight lang="lua">
if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then
</syntaxhighlight>
; Sprawdzenie uzyskanej zmiennej tekstowej, będąca tekstem pomiędzy linkiem, a końcem rozdziału{{dk}}
* Liczenie zmiennej tekstowej za pomocą, którą będziemy sprawdzać:
: A jeżeli jest jednak tak, tzn. spełniony jest ten warunek, to znajdujemy taki tekst, robi to za pomocą funkcji: {{LzLua|mw.ustring.sub}}, i zapisuje to pod zmienną {{Code|str}} {{Patrz|str}}.
* Pierwszy etap analizowania tej zmiennej, czy jest poprawna, tzn. czy nie zwraca żadnej wartości, ale czy się zakańcza:
: Następnie sprawdza, czy ona jest w cudzysłowach, tzn. czy spełnia warunek: {{Code|<nowiki>^%s*'+(.+)'+%s*$</nowiki>}}, lub czy początek zaczyna się od znaków: {{Code|<nowiki>^[%*#:;<>]+</nowiki>}}, lub czy ten tekst zawiera dozwolone znaki z przedziału: {{Code|<nowiki>^[%s%p%w]*$</nowiki>}} - tzn. czy tekst składa się ze znaków odstępu, interpunkcyjnych, znaków alfanumerycznych lub z dolnym myślników, jeżeli któreś z tych warunków jest spełnione, to funkcja nie zwraca żadnej wartości, ale zatrzymuje się, tzn. zakańcza się, to oznacza, że wszystko jest w porządku. A jeżeli nie spełnione z żadnych z tych warunków, to ona idzie dalej, i robi następne czynności następne, aby sprawdzić dalsze warunki, czy wszystko jest w porządku.
; Sprawdzanie niepustych linii{{dk}}
* Sprawdzanie niepustych linii po liniach, ewentualnie składających się ze znaków odstępów:
: Funkcja liczy ile takich linii znalał, zapisuje to pod zmienną {{Code|ile}} {{Patrz|ile}}, jeśli wśród takich linii znalazł linie pasujące do: {{Code|<nowiki>^[%*#;:<>]</nowiki>}}, lub składające się znaków odstępów: {{Code|<nowiki>^%s*$</nowiki>}}, wtedy funkcja to liczy licznikiem: {{Code|ile_punktowanych}} {{Patrz|ile_punktowanych}}.
Funkcja w tak wyszukanych liniach w przeciwnym razie sprawdza, w liniach niepasujących do tych wzorów, czy tam są artykuły (strony) nie z rozważanej danej książki, przy pomocy funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, jeśli są takie elementy, to funkcja dodaje to do licznika {{LinkPatrz|ile_punktowanych}}, aby dodać jeden do licznika, dla każdej takiej linii funkcja sprawdza, czy przynajmniej jeden taki artykuł się znajduje tam, w każdej takiej wykrytej linii.
* Jeśli liczba określona przez zmienną: {{LinkPatrz|ile_punktowanych}}, jeżeli jest co najmniej równa wyszukanym liniom {{LinkPatrz|ile}}, to funcja się zatrzymuje, i nie zwraca żadnej wartości, czyli wskazuje na powodzenie.
* Gdy liczba tego jest mniejsza niż wykrytych linii, to coś jest nie tak, wtedy funkcja nic nie zwraca, tylko idzie dalej.
; Inne operacje w przypadku niestwierdzenia, jak dotąd niepowodzenia przez funkcję, nie ma jeszcze zwróconej wartości {{nobold|{{Code|nil}}}}{{dk}}
* Zerowanie się pewnych wartości:
** Funkcja z tak policzonego: {{Code|str}} {{LinkPatrz|str}}, usuwa formy kodów z obiektami {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, a jeżeli znalazł w nim same, wtedy znaki odstępów, to ona nie zwraca żadnej wartości, ale się zakańcza, przeciwnie, sprawdza, czy jest zmienna: {{LinkPatrz|czy_zeruj}}, która jest prawdziwa, a jeśli tak, to elementy zmiennej: {{Code|tab_zmienne}} {{LinkPatrz|tab_zmienne}} są nilowane, tzn. podzmienne o kluczach:
* {{Code|liczba_nie_okladka_artykul}} {{Patrz|liczba_nie_okladka_artykul}} - liczba pozycji sekcji wskazująca, czy istnieje pierwszy taki artykuł (nie okładka, nie strona niedozwolona) aktualnej książki, lub bezpośrednio taki artykuł, niekoniecznie tej książki, czy znajduje się bezpośrednio w pozycji sekcji, i tylko sam tam się znajduje,
* {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{Patrz|liczba_pierwszy_rozdzialowy_artykul}} - liczba pozycji sekcji, która wskazuje na pierwszy taki wykryty artykuł, licząc od przodu, który spełnia pewne ścisle okreslone kryteria, jest to dowolny artykuł,jaki może być w książce,
: Kryteria określone przez te zmienne powyżej są określone przez funkcję: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}},
* {{Code|czy_ten_rozdzial}} {{Patrz|czy_ten_rozdzial}} - wartość prawdziwą wskazuje, czy wynilowano zmienne należące do rozważanej tablicy.
Ale niezależnie od wartości: {{Code|czy_zeruj}} {{LinkPatrz|czy_zeruj}}, funkcja wtedy zwraca zawsze wraca wartość {{Code|true}}, czyli ona zwraca to niepowodzenie.
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
Funkcja wyszukuje, od tyłu, kolejne rozdziały (napisy wprowadzenia tekstu), którego tekst rozdziału składa się z samych znaków odstępów, lub jest pusty, albo o poziomie wyższym rozdziałowo, nawet gdy jego tekst rozdziału jednak nie jest pusty.
Funkcja jest przerywana po najbliższych niespełniających warunkach. Funkcja zwraca parametry, z ostatniego pasującego dopasowana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - podczas wyszukiwania od tyłu, do jakiego punktu ma wyszukiwać,
* {{Code|liczba_obiekt_start_nowe}} - jak w: {{LinkPatrz|liczba_obiekt_start_nowe}}, wykorzystywane w funkcji: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, do sprawdzania pomiędzy znakami: końcem wyszukiwanego nagłówka, wraz ze znakiem nowej linii, a tą zmienną, do sprawdzania, czy tekst rozdziału spełnia ściśle określone normy określone przez tą funkcję, jest to pozycja taka na jaką wskazuje również pozycja jakaś artykularna, prze którym sprawdzamy tą funkcją tekst,
* {{Code|liczba_obiekt_start_spac_par}} {{Patrz|liczba_obiekt_start_spac_par}} - numer znaku, od którego ma wyszukiwać od tytułu pewne linie,
* {{Code|czy_dodatni}} {{Patrz|czy_dodatni}} - typ wyszukiwania rozdziałów, tzn. {{LinkZobaczTeż|czy_dodatni}},
* {{Code|czy_bez_naglowka}} {{Patrz|czy_bez_naglowka}} - czy ma wyszukiwać do: {{Code|1}}, od tytułu, a nie do: {{LinkPatrz|liczba_start_rozdzial}},
* {{Code|AnalizowanieSekcjowe}} {{Patrz|AnalizowanieSekcjowe}} - to nic innego jest, jak funkcja inicjowana przez zwracaną procedurę przez: {{LinkŚródtytuł|p.AnalizowanieSekcjowe}}, która ma w sobie pewne elementy początkowe w sobie wsadzonych jako parametry, które są wykorzystywane prze obiekt przez nią zwracany, która coś robi.
; Typy dopasowywania rozdziałów paarametru{{dk}} {{nobold|czy_dodatni {{Code|{{=}}}} {{LinkPatrz|czy_dodatni}} {{ZobaczTeż|czy_dodatni}}}}{{dk}}
* {{Code|1}} - wyszukuje rozdziały wskazywane przez funkcję: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}},
* {{Code|2}} - wyszukuje pozycje list zaczynające się od znaków: {{Code|<nowiki>[%*#:;<>]+</nowiki>}}, jako pewne rozdziały, które trzeba wyszukać,
* Inna wartość niż dwie powyższe - wtedy są wyszukiwane rozdziały niezaczynające się od: {{Code|<nowiki>[^%*#:;<>\n]</nowiki>}}, i kończące się na dwukropek.
: Dla dwóch ostatnich powyższych punktów są wyszukiwane linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
: Funkcja dla tych dwóch pierwszych sprawdza, tylko raz, czy to jest rozdział spisu treści wskazywaną przez funkcję: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, jeżeli parsowanie przeszło niepomyślnie, a funkcja: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, zrzuci wartość prawdziwą, wtedy ta cała funkcja z nagłówka zrzuca wartość logiczną fałszywą. Ta funkcja wykorzystuje wartość: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, jako drugi parametr, dla którego liczy ona tekst przed, ta zmienna może wskazywać na początek pozycji linii artykularnej (z artykułami), aby ona policzyła swoją wartość.
Funkcja działa w pętli do zakończenia zasobu danych lub w inny sposób, ale też do zakończenia. Funkcja wtedy robi operacje zawsze dla: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} równe {{Code|1}} lub dla tych, gdzie: {{LinkŚródtytuł|p.CzyTamElementyNieSpisoweArtykularne|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, zwraca wartość logiczną prawdziwą, własnie dla tego, jeśli ta operacja zwróci prawdę, to dla tego są dopasowywane elementy zwracane. Wtedy wiadomo, że wyszukane tak pozycje są rozdziałami.
Funkcja zwraca wyniku w postaci wartości szegu zwracanych:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej;
</syntaxhighlight>
Wytłumaczenie tych elementów zrzuconych przez nią dla dopasowań, licząc od tyłu:
; Ostanie dopasowanie nagłówka pasujące, gdy tekst jego rozdziału jest równy znakom odstępu lub jest pusty{{dk}}
* {{Code|liczba_start_naglowek}} - początek ostatniego wyszukanego takiego nagłówka,
* {{Code|liczba_koniec_naglowek_poczt}} - koniec pierwszego wyszukanego nagłówka,
* {{Code|naglowek}} - wartość nagłówka dla tego ostatniego dopasowania,
* {{Code|poziom_naglowka}} - poziom takiego nagłówka,
; Niepasujący nagłówek, wyszukane pierwsze z kolei po pasującym{{dk}}
: Według wartości zwracanych powyższych w pierwszej kolejności, dla którego tekst rozdziału nie jest równa znakom odstępu i nie jest pusty:
* {{Code|liczba_start_naglowek_dalej}} - początek po pasującym tak nagłówku,
* {{Code|liczba_koniec_naglowek_dalej}} - a tutaj jego koniec,
* {{Code|naglowek_dalej}} - wartość tekstu napisu wprowadzenia tekstu,
* {{Code|poziom_naglowek_dalej}} - tutaj jego poziom.
W przypadku nieznalezienia takich nagłówków funkcja nie zwraca niczego.
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
Funkcja służy do zaawansowanego szukania, od tyłu, nagłówków w przeciwieństwie do: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, która służy przede wszystkim do szukania sekcji kolejnych jednego rodzaju, a ta funkcja znajduje się w postaci wielu typów, ona wie, że w tekście może być równy układ nagłówków różnych typów.
Funkcja wyszukuje od tyłu, znajduje parametry ostatniego nagłówka i je zwraca, jeżeli je znalazł, a jeśli nie, to nie zwraca żadnej wartości, tylko funkcja się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Jedynie funkcja nie ma parametru: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, ponieważ ta funkcji nie szuka kolejnych rozdziałów tylko jednego rodzaju, lecz wielu.
=== {{Śródtytuł|str_spacja_lub_zerowy_naglowek}}{{Code|str_spacja_lub_zerowy_naglowek}} ===
Dla każdej takiej niepustej linii, sprawdzane jest, czy to są linie z odstępami lub nie będące elementami listy, ale w sposób rozszerzony, tzn. ten początek nie może składać się z pewnych znaków, czyli: {{Code|<nowiki>^[^%*#:;<>\n]</nowiki>}}.
Funkcja sprawdza, czy liczba takich linii, jest taka sama, ile jest niepustych linii, wtedy funkcja zwraca wartość logiczną prawdziwą, przeciwnie wartość nilową.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local str_spacja_lub_zerowy_naglowek=function(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do sprawdzenia.
=== Ciąg dalszy opisu funkcji ===
; Etapy dopasowania ostatniego dopasowania rozdziałów, jego pozycja w tekście i jego napis wprowadzenia tekstu
* Etap ogólny
Funkcja najpierw wyszukuje rozdziały poprzez wskazanie przez funkcję: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, a jeżeli znalazł artykuł, o niepustych secjach pomiędzy ostatnim wskazanym artykułen (przed artykułem), a rozdziałem, wtedy ta funkcja zwraca wartość logiczną fałszywą i zwraca wartość nilową, czyli nic nie zwraca, i funkcja się zakańcza, i wskazuje, że nie znalazł takiego nagłówka, to się dzieje pod warunkiem, że funkcja: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, została podana, w przeciwnym wypadku, to już tak się nie dzieje, a nagłówek z tego wywołania mógł być znaleziony, ale nie musiał.
; Etapy alternatywy
* Pierwszy etap
** To dotyczy, że znalazł ostatnie dopasowanie, ale niepasującego nagłówka przed nim nie ma.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli tego nie znalazł, wtedy przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, w pętli nieskończonej, najpierw dla parametru: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, najpierw jest to pierwsze, a później to drugie, jeśli z tego pierwszego zostało wykonana komenda przerwania pętli, to drugie dopasowanie nie zostanie wykonane w danym obiegu jego, normalnie, bez tego są dwa wywołania.
W każdym takim wywołaniu i dopasowaniu, w pierwszym, czy drugim, będzie sprawdzane, czy tego dokonano, czy taki nagłówek znaleziono, a jeśli tak, to sprawdzany jest tekst pomiędzy ostatnim końcem w wykrytym nagłówku, a początkiem tego przedostatniego, lub z etapu ogólnego, funkcją: {{LinkŚródtytuł|str_spacja_lub_zerowy_naglowek}}, jeżeli funkcja zwróciła wartość logiczną odpowiadającej fałszywej, to pętla jest przerywana, w przeciwnym wypadku są inicjowane parametry tego dopasowania, które przygotowuje ona zwrócić do funkcji w nagłówku.
: Ogólnie po drugim taki wywołaniu następuje sprawdzenie parametrów zwróconych:
Jeżeli w ostatnim takim wywołaniu w tym funkcja zwraca niedopasowanie, wtedy zwracane jest przerywanie pętli, wtedy mamy parametry ostatniego dopasowania, jeśli istnieją takie.
* Drugi
** To dotyczy, że takiego dopasowania pasującego nie znalazł.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli to znalazł, to wyszukany stąd nagłówek jest rozwijany przy pomocy funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}. Jeżeli parser funkcji nie wykrył wykrzyknika na końcu takiego nagłówka, wtedy jest sprawdzane przy pomocy iteratora w zakodowanym tekście przy pomocy: {{Code|{{m|Szablonowe}}}}, na podstawie: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, czy w nagłówku istnieje artykuły bieżącej ksiązki, czy analizowanej, i czy to nie jest okładka, czy strona niedozwolona. Jeżeli wykryto takie artykuły, lub pętla nie została wykonana, bo nie ma takich wykrytym nagłówku kodów, to funkcja inicjuje parametry zwracanych wartości przez funkcję w nagłówku.
* Trzeci
** To dotyczy pozostałych przypadków, w którym znalazł ostatnie dopasowanie, a niepasujące przed nim też znalazł.
Jest wywoływane wywołanie: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, najpierw w pierwszym wywołaniu dla: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, a w każdym takim wywołaniu po jest sprawdzane, czy tekst pomiędzy końcem ostatniego wykrytego nagłówka, a początkiem przedostatniego nagłówka, a nawet artykułu wykrytego, czyli czy taki tekst rozdziału, czy składa się z samych znaków odstępów, a jeśli tak, to inicjowane są parametry zwracane przez funkcję. Dalej przechodzimy z pierwszego do drugiego wywołania, w którym oba wywołania są podobnie zbudowane.
; Parametry wychodzące z funkcji{{dk}}
* Oto parametry inicjowane przez funkcję w tych powyższych trzech etapach alternatywnych, które na końcu funkcji w nagłówku są zwracane:
: Funkcja zwraca wartości określone przez kod:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka;
</syntaxhighlight>
Wytłumaczenia parametrów zwracanych:
; Parametry określają ostatnie dopasowanie nagłówkowe w wewnątrz funkcji{{dk}}
* {{Code|liczba_start_naglowek}} - początek tego dopasowania,
* {{Code|liczba_koniec_naglowek}} - jego koniec,
* {{Code|naglowek}} - wartość napisu wprowadzenia tekstu nagłówka,
* {{Code|poziom_naglowka}} - poziom tego nagłówka.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
Funkcja służy do wyszukiwania, od tyłu, pozycji artykularnej przed wykrytym ostatnim rozdziałem, lub gdy nie ma rozdziałów, to liczy pozycję tylko artykularną, lub nawet pozycji rozdziałów zerowych spisu treści albo nawet tych z dwukropkiem na końcu danej linii, i szuka od tyłu takie coś, by to uznać za początek spisu treści wyciętej z tekstu zakodowanego spisu, czyli ogólnie mówiąc funkcja szuka dalej takiego początku dalszego.
Funkcja służy też do wydzielania części spisu spełniające powyższe kryteria, aby można było ją parsować przez inne funkcje '''Stronicowego parsera''', do wydzielania dalszych rozdziałów, a z nich wydzielania nagłówków (napisów wprowadzenia tekstu) i tekstów rozdziałów.
Funkcja pętluje przy wykrytych liniach składających się z odstępów, a się zatrzymuje na normalnych danych lub po zakończeniu zasobów.
Główny opis funkcji {{ZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}:
* Funkcja działa w oętli nieskończnonej, aż do zakończenia danych, lub do zwrócenia elementów przez nią,
* W tej pętli funkcja wyszukuje kolejne linie, które nie są pozycjami listy, z którego wyodrębiona linia jest analizowana bez przerwy, jeżeli istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje parametry:
** {{Code|liczba_start}} {{Patrz|liczba_start}} - od której pozycji od tyłu ma wyszukiwać pozycje artykularne,
** {{Code|czy_dalej_rozdzial}} {{Patrz|czy_dalej_rozdzial}} - czy {{ZobaczTeż|czy_dalej_rozdzial}} uznać za pierwszeństwo, w przypadku wykrytego rozdziału dodatniego w linii, lub nie wykrycia takiej linii, która nie jest częścią listy, wtedy jest ważny element (zmienna) {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie jest brane, coś przeciwnego,
** {{Code|liczba_pierwszy_rozdzialowy_artykul}} - jak w: {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}}.
Parametry {{ZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}} zwracane przez funkcję, które są zwracane kolejno w niej na końcu jej działania:
* Początek takiego punktu, uzyskanym w końcu na końcowym obiektu pętli (wyjaśnienie w tekście),
* Liczba znaków odstępów wykrytych poczasz wszystkich obiektów pętli (jest to reprezzentowane przez: {{Code|liczba_spac}} {{Patrz|liczba_spac}}),
* Czy ta tak, uzyskana i zwrócona, linia jest rozdziałem spisu treści (jest to reprezentowane przez: {{Code|czy_spis}} {{Patrz|czy_spis}}).
Etapy zwracania przez funkcję elementów:
; Uzyskanie linii według ogólnego wzoru
* Według {{LinkZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}, tą linia, byłoby takie coś pomiędzy ewentualnie znakami nowymi liniami, która spełnia wzór: {{Code|<nowiki>([^%*#:;<>\n][^\n]*)</nowiki>}}. To wyszukiwanie jest według funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wyszukujący w sposób ogólny linie, niezależnie jak są one realizowane w tekście.
; Początek i koniec uzyskanej linii według powyższego sposobu{{dk}}
* Początek i koniec przechwyconej linii, to są pewne liczby, wraz ze znakami nowej linii, jeśli po któreś stronie istnieją, lub nawet gdy to są w tym elementy, początku lub końca, tekstu, wtedy długość tych elementów jest zero.
; Brak dopasowania linii
* A jeżeli dopasowanie tej linii nie zgłasza niedopasowania, wtedy przy prawdziwości zmiennej: {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według: {{LinkZobaczTeż|czy_dalej_rozdzial}}, zwracane jest: {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie, wartość minimalną, pomiędzy tą zmienną a inną {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}} (jeśli ta zmienna nie istnieje, to domyślnie ma wartość {{Code|1}}).
; Rozdział równaniowy{{dk}}
* Jeżeli tą linią jest rozdział równaniowy, to zwracane jest, jeżeli wartość {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według {{LinkZobaczTeż|czy_dalej_rozdzial}}, ma wartość fałszywą, wtedy jest to dopasowanie końca tej linii, w pierwszym parametrze zwracanym, wraz z innymi danymi, według {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}, a jeżeli ta wartość jest prawdą, to zwracane jest {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, bo w tej funkcji nie ma prawa takich rozdziałów dopasowywać.Ma dopaasowywać tylko normalne linie niebędące pozycjami listy.
; Pierwsze rozgałęzenie specjalne instrukcji warunkowej{{dk}}
: Znaki odstępów - linia to białe znaki:
* Jeżeli linia istnieje i składa się z samych znaków odstępów, to liczmy długość tych znaków, wraz z nowymi liniami po prawej lub lewej stronie, jeśli istnieją, i wsadzamy to do ogólnego licznika {{Code|liczba_spac}} {{LinkPatrz|liczba_spac}}, która jest zwracana na końcu działania funkcji, jako drugi parametr w: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}. Funkcja wykonuje tych okrążeń pętli tyle, ile jest kolejnych linii składających się z tych znaków.
; Przypadek istnienia linii nie składającej się ze znaków odstępów{{dk}}
: Rozdział spisu treści i rozdział zerowy:
* Jeśli linia jest spisem względem {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przyjmuje wartość początkowi takiej ustalonej linii w tekście, a {{Code|czy_spis}} {{LinkPatrz|czy_spis}} przyjmuje wartość prawdziwą.
* A jeśli tak nie jest, to sprawdzamy, czy przed tą linią jest rozdział zerowy na podstawie funkcji: {{LinkŚródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}. Jeżeli ona jest tym rozdziałem, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma już nową wartość, przeciwnie, jeśli ta linia ma na końcu dwukropek, to ta wartość nowa jest równa początkowi wyszukania tej linii, a jeśli nie, to końcowi. Zmienna, czy jest rozdział spisu {{Code|czy_spis}} {{LinkPatrz|czy_spis}} ma wartość prawdziwą, gdy ten rozdział zerowy istnieje, a jeśli nie, to fałszywą.
; Przypadek istnienia, lub nie, rozdziału zerowego{{dk}}
* Jeśli znaleziono taki rozdział (zerowy), to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, to wtedy nie ma żadnych dodatkowych instrukcji do wykonania.
* Punkty zwracania zmiennych, jeśli przeciwnie do poprzedniego:
** Jeśli znaleziono taki spis, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma wartość początkowi takiej linii
** A jeżeli przeciwnie, nie ma w nim kodów, to końcowi, jeśli wyszukana linia nie jest rozdziałem z dwukropkiem na końcu, a jeśli jest, to początkowi tej linii,
*** Wtedy ją, tą uzyskaną z obliczeń, trzeba wliczać w ramach wydzielonego spisu, wtedy zmienna: {{Code|czy_spis}} {{LinkPatrz|czy_spis}}, jest prawdą,
** A jeśli jednak ma je, wtedy, czy linia ma pozycje artykularne, które nie są okładkami lub stronami niedozwolonymi, a jeśli tak jest, na podstawie wywołania funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, to zwracany jest początek wyszukania takiej linii w tej zmiennej, przeciwnie powtarzana jest ta wartość.
*** Wtedy, gdy linia nie ma takich artykułów, wtedy jeśli ona ma dwukropek na końcu, wtedy ustalamy zmienną: {{Code|czy_spis}} {{LinkPatrz|czy_spis}}, na prawdę.
: Na samym końcu zwracane jest to wszystko w postaci parametrów: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}.
== {{Śródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}{{Code|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}} ==
Funkcja wyszukuje, czy dla obiektu o typie {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} o numerze liczbowym {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} - nie jako łańcuch znakowy, dla ich generowanego odpowiednika {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, generowanego z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, są linki w zależności od podanej zmiennej: {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, a jeżeli tam nie ma linków, to przeszukiwany jest {{LinkPatrz|dalszy_tekst}} w ich poszukiwaniu, którymi zrządzą prawa w zależności od przyporządkowanej zmiennej: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, wartość prawdziwa tej zmiennej, włącza dowolność układu obiektów typu: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}.
Funkcja wyszukuje w linii, ale najwierw w: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, a później w: {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, jeżeli w poprzednim nie znalazł, pierwszego takiego linku przyporządkowagp, któremuś z tych obiektów, i przy pierwszym wykryciu zwraca wartość, ale dany obiekt uwwzględniany względem tego poprzedniegomusi spełniać prawa lub nie, w zależności od podanej zmiennej {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieLinkuWeSzablonieOrazDalszymNapisie(obiekt,kod,dalszy_tekst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_oddzielone,czy_wszystkie_linki)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}}, {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|czy_nieoddzielone}} {{Patrz|czy_nieoddzielone}} - czy linki mają być oddzielone interpunkcją, czy odstępami, w przypadu przeciwnym, jeżeli tak nie jest, to funkcja zwraca wartość fałszywą,
** {{Code|czy_wszystkie_linki}} {{Patrz|czy_wszystkie_linki}} - czy uwzględniaj wszystkie linki, czy tylko artykuły, nie okładki, (dozwolone), danej książki,
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy tekst, do przeszukiwania linkowego.
Funkcja zwraca wartość logiczną, jeżeli prawa linkowe tekstu są przyporządkowane przez zmienne: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, to jeśli znalazłeś takie linki, to zwracaj wartość prrawdziwą, a jeśli nie, to fałszywą.
Jeśli zmienna: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, przyjmuje wartość fałszywą, to te rozważane obiekty, muszą być oddzielone pewnymi znakami, tutaj: {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, a jak nie spełniają tego warunku, to funkcja zwraca wartość fałszywą, w innym wypadku dalej liczy i sprawdza.
== {{Śródtytuł|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}}{{Code|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}} ==
Funkcja jest rozszerzeniem funkcji: {{LinkŚródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}, dla ustalonych dwóch ostatnich zmiennych, które przyjmują wartość {{Code|true}} (prawdziwą), o nazwach: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}} i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, dla tej funkcji, mamy już zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, i {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, a funkcja w nagłówku je ustala, w wyniku działania w pętli.
Funkcja wyszukuje, od tyłu, w tekście, nabliższej pozycji typu: {{Code|SZABLON}}, {{Code|LINKW}} lub {{Code|LINKZ}}, w danej linii, i zwraca odpowiednio dwie wartości, pozycje wykrytą i wartość logiczną powodzenia, w innym przypadku, pozycję początkową z drugim parametrem fałszem.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|liczba_start_rozdzial}} - jak w: {{LinkPatrz|liczba_start_rozdzial}}, pozycja wyszukiwania końcowa,
** {{Code|liczba_spisowa}} {{Patrz|liczba_spisowa}} - pozycja wyszukiwania początkowa.
Parametry zwracane:
* Pierwszy parametr:
** Pozycja, w którym taką pozycję określona przez funkcję znaleziono, drugi parametr wtedy przyjmuje prawdę, jeśli nie znaleziono, takiej pozycji, to ta pozycja przymuje wartość początkową, adrugi parametr jest fałszem,
* Drugi parametr:
** Czy elementy są odzielone od sibie pewnymi znakami, według tej dokumentacji, i czy to są linki artykułów nieokładkowych dozwolonych, w najbliższej linii, wtedy zwraca w drugim parametrze prawdę, w przecciwnym wypadku, w przypadku znalezienia obiektu w najbliższej linii z: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, ale nie wykryto odpowiwdnich linków, według wspomnianej funkcji, wtedy zwracony ten paramtr będzie fałszem, kub do wyczerpania zasobów, też odpowiadającej fałśzowi,
Funkcja wyszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wykorzystując, że tekst jest zakodowany, i znajduje one przy pomocy wyrażenia regularnego generowanego przez: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, na podstawie kodu, którego fragment jest napisany tutaj:
<syntaxhighlight lang="lua">
local liczba_spisu=liczba_spisowa;
local szablonowe_modul=require("Module:Szablonowe");
---- Ustalenie wzoru kodowania, czyli jest to dowolny kod;
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu()
while(true)do
---- Wyszukuje dowolną linię według wyrażenia regularnego podanego w kodzie, zawartą całkowicie w linii;
local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
</syntaxhighlight>
Fukcja sprawdza, czy dokonano sprawdzenia, jeśli pozytywnie ono przeszło, to musi istnieć zmienna {{Code|liczba_linki_nierozdzialowe_szablonu}} {{Patrz|liczba_linki_nierozdzialowe_szablonu}} oraz musi być spełniona alternatywa dwóch warunków: {{Code|przed_tekst}} {{Patrz|przed_tekst}} musi być puste lub ma spełniać warunek według wzoru: {{Code|<nowiki>^[%p%s%d%.]*$</nowiki>}}.
Jeżeli funkcja nie dopasowała kodu: {{Code|obiekt_szablon}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, do wartości: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, to działa w pętli aż dopasuje je, aż do zakończenia zasobu danych dostępnych w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, jeżeli nie mogła by tego zrobić. A jeśli je dopasowała, to sprawdza, czy te kody są odpowiednimi obiektami, ewentualnie oddzielonych od siebie znakami {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, poprzez sprawdzanie funkcją wspomnianą w nagłówku. Jeśli ta funkcja zwróci wartość prawdziwą, to zwrócone zostaną parametry:
<syntaxhighlight lang="lua">
return liczba_linki_nierozdzialowe_szablonu,true;
</syntaxhighlight>
W innych przypadkach, jeżeli takiego dopasowania nie znalazła, to zwróć szereg wartości:
<syntaxhighlight lang="lua">
return liczba_spisowa,false;
</syntaxhighlight>
W tym przypadku wartość {{Code|liczba_spisowa}} {{LinkPatrz|liczba_spisowa}}, to nic innego jak ostatni argument naszej funkcji, czyli w przypadku niepowoddzenia dopasowania, zwracana jest wartość ta początkowa, zdrugą wartością, że niezaleziono poszukiwanego obiektu.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowychZakresowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowychZakresowych}} ==
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowychZakresowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_pierwszy_rozdzialowy_artykul,liczba_przed_rozdzialem,liczba_start_naglowek_przed,czy_znajdz)...end;
</syntaxhighlight>
Parametry funkcji:
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
9ii9yl0tlbr746fbmzaunlmwe2vam8g
554557
554556
2026-09-05T21:50:35Z
Persino
2851
/* {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} */
554557
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
Jest to funkcja do sprawdzania tekstu zawartości (tekstu rozdziału, bez zawartości nagłówka) napisu wprowadzenia tekstu sekcji, za pomocą funkcji zwracanej, czy ona spełnia pewne określone warunki.
Funkcja, gdy co jest nie tak, to zwraca wartość {{Code|true}}, i przy okazji może zerować pewne określone zmienne, jeśli ona przy tym została odpowiednio ustawiona, przeciwnie ona zawsze zwraca wartość {{Code|nil}}, czyli nie zwraca żadnej wartości.
Za pomocą tej funkcji można sprawdzić, czy funkcja zawiera niedozwolone znaki wikikodu, i dlatego zwraca tą prawdziwość.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe)
... ---- ciało funkcji zwracanej
end;
end;
</syntaxhighlight>
Parametry ogólne funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|czy_zeruj}} {{Patrz|czy_zeruj}} - czy ma zerować, ścisle określone zmienne, które mieszczą się w niezerowej tablicy zmiennych składowych, tzn. w: {{Code|tab_zmienne}} {{LinkPatrz|tab_zmienne}},
* {{Code|tab_zmienne}} {{Patrz|tab_zmienne}} - zmienne w nim do zerowania,
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Parametry funkcji zwracanej dla tekstu rozważanego: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}:
* {{Code|liczba_koniec_naglowek}} {{Patrz|liczba_koniec_naglowek}} - numer znaku, po którym coś rozważamy,
* {{Code|liczba_obiekt_start_nowe}} {{Patrz|liczba_obiekt_start_nowe}} - numer znaku, przed którym coś rozważamy.
; Sprawdzenie spełnienia warunku, przejście do wnętrza tej instrukcji warunkowej{{dk}}
Funkcja zwracana sprawdza, czy zmienne: {{Code|liczba_koniec_naglowek}} {{LinkPatrz|liczba_koniec_naglowek}}, i {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, istnieją, i te zmienne sugerują punkty znakowe w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, ale jeżeli te zmienne liczbowe punktów znakowych mają takie wartości, że nie da się znaleźć dla tej zmiennej tekstowej treści pomiędzy nimi, to ta funkcja nie zwraca żadnej wartości, to zachodzi, kiedy nie jest spełniony warunek:
<syntaxhighlight lang="lua">
if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then
</syntaxhighlight>
; Sprawdzenie uzyskanej zmiennej tekstowej, będąca tekstem pomiędzy linkiem, a końcem rozdziału{{dk}}
* Liczenie zmiennej tekstowej za pomocą, którą będziemy sprawdzać:
: A jeżeli jest jednak tak, tzn. spełniony jest ten warunek, to znajdujemy taki tekst, robi to za pomocą funkcji: {{LzLua|mw.ustring.sub}}, i zapisuje to pod zmienną {{Code|str}} {{Patrz|str}}.
* Pierwszy etap analizowania tej zmiennej, czy jest poprawna, tzn. czy nie zwraca żadnej wartości, ale czy się zakańcza:
: Następnie sprawdza, czy ona jest w cudzysłowach, tzn. czy spełnia warunek: {{Code|<nowiki>^%s*'+(.+)'+%s*$</nowiki>}}, lub czy początek zaczyna się od znaków: {{Code|<nowiki>^[%*#:;<>]+</nowiki>}}, lub czy ten tekst zawiera dozwolone znaki z przedziału: {{Code|<nowiki>^[%s%p%w]*$</nowiki>}} - tzn. czy tekst składa się ze znaków odstępu, interpunkcyjnych, znaków alfanumerycznych lub z dolnym myślników, jeżeli któreś z tych warunków jest spełnione, to funkcja nie zwraca żadnej wartości, ale zatrzymuje się, tzn. zakańcza się, to oznacza, że wszystko jest w porządku. A jeżeli nie spełnione z żadnych z tych warunków, to ona idzie dalej, i robi następne czynności następne, aby sprawdzić dalsze warunki, czy wszystko jest w porządku.
; Sprawdzanie niepustych linii{{dk}}
* Sprawdzanie niepustych linii po liniach, ewentualnie składających się ze znaków odstępów:
: Funkcja liczy ile takich linii znalał, zapisuje to pod zmienną {{Code|ile}} {{Patrz|ile}}, jeśli wśród takich linii znalazł linie pasujące do: {{Code|<nowiki>^[%*#;:<>]</nowiki>}}, lub składające się znaków odstępów: {{Code|<nowiki>^%s*$</nowiki>}}, wtedy funkcja to liczy licznikiem: {{Code|ile_punktowanych}} {{Patrz|ile_punktowanych}}.
Funkcja w tak wyszukanych liniach w przeciwnym razie sprawdza, w liniach niepasujących do tych wzorów, czy tam są artykuły (strony) nie z rozważanej danej książki, przy pomocy funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, jeśli są takie elementy, to funkcja dodaje to do licznika {{LinkPatrz|ile_punktowanych}}, aby dodać jeden do licznika, dla każdej takiej linii funkcja sprawdza, czy przynajmniej jeden taki artykuł się znajduje tam, w każdej takiej wykrytej linii.
* Jeśli liczba określona przez zmienną: {{LinkPatrz|ile_punktowanych}}, jeżeli jest co najmniej równa wyszukanym liniom {{LinkPatrz|ile}}, to funcja się zatrzymuje, i nie zwraca żadnej wartości, czyli wskazuje na powodzenie.
* Gdy liczba tego jest mniejsza niż wykrytych linii, to coś jest nie tak, wtedy funkcja nic nie zwraca, tylko idzie dalej.
; Inne operacje w przypadku niestwierdzenia, jak dotąd niepowodzenia przez funkcję, nie ma jeszcze zwróconej wartości {{nobold|{{Code|nil}}}}{{dk}}
* Zerowanie się pewnych wartości:
** Funkcja z tak policzonego: {{Code|str}} {{LinkPatrz|str}}, usuwa formy kodów z obiektami {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, a jeżeli znalazł w nim same, wtedy znaki odstępów, to ona nie zwraca żadnej wartości, ale się zakańcza, przeciwnie, sprawdza, czy jest zmienna: {{LinkPatrz|czy_zeruj}}, która jest prawdziwa, a jeśli tak, to elementy zmiennej: {{Code|tab_zmienne}} {{LinkPatrz|tab_zmienne}} są nilowane, tzn. podzmienne o kluczach:
* {{Code|liczba_nie_okladka_artykul}} {{Patrz|liczba_nie_okladka_artykul}} - liczba pozycji sekcji wskazująca, czy istnieje pierwszy taki artykuł (nie okładka, nie strona niedozwolona) aktualnej książki, lub bezpośrednio taki artykuł, niekoniecznie tej książki, czy znajduje się bezpośrednio w pozycji sekcji, i tylko sam tam się znajduje,
* {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{Patrz|liczba_pierwszy_rozdzialowy_artykul}} - liczba pozycji sekcji, która wskazuje na pierwszy taki wykryty artykuł, licząc od przodu, który spełnia pewne ścisle okreslone kryteria, jest to dowolny artykuł,jaki może być w książce,
: Kryteria określone przez te zmienne powyżej są określone przez funkcję: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}},
* {{Code|czy_ten_rozdzial}} {{Patrz|czy_ten_rozdzial}} - wartość prawdziwą wskazuje, czy wynilowano zmienne należące do rozważanej tablicy.
Ale niezależnie od wartości: {{Code|czy_zeruj}} {{LinkPatrz|czy_zeruj}}, funkcja wtedy zwraca zawsze wraca wartość {{Code|true}}, czyli ona zwraca to niepowodzenie.
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
Funkcja wyszukuje, od tyłu, kolejne rozdziały (napisy wprowadzenia tekstu), którego tekst rozdziału składa się z samych znaków odstępów, lub jest pusty, albo o poziomie wyższym rozdziałowo, nawet gdy jego tekst rozdziału jednak nie jest pusty.
Funkcja jest przerywana po najbliższych niespełniających warunkach. Funkcja zwraca parametry, z ostatniego pasującego dopasowana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - podczas wyszukiwania od tyłu, do jakiego punktu ma wyszukiwać,
* {{Code|liczba_obiekt_start_nowe}} - jak w: {{LinkPatrz|liczba_obiekt_start_nowe}}, wykorzystywane w funkcji: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, do sprawdzania pomiędzy znakami: końcem wyszukiwanego nagłówka, wraz ze znakiem nowej linii, a tą zmienną, do sprawdzania, czy tekst rozdziału spełnia ściśle określone normy określone przez tą funkcję, jest to pozycja taka na jaką wskazuje również pozycja jakaś artykularna, prze którym sprawdzamy tą funkcją tekst,
* {{Code|liczba_obiekt_start_spac_par}} {{Patrz|liczba_obiekt_start_spac_par}} - numer znaku, od którego ma wyszukiwać od tytułu pewne linie,
* {{Code|czy_dodatni}} {{Patrz|czy_dodatni}} - typ wyszukiwania rozdziałów, tzn. {{LinkZobaczTeż|czy_dodatni}},
* {{Code|czy_bez_naglowka}} {{Patrz|czy_bez_naglowka}} - czy ma wyszukiwać do: {{Code|1}}, od tytułu, a nie do: {{LinkPatrz|liczba_start_rozdzial}},
* {{Code|AnalizowanieSekcjowe}} {{Patrz|AnalizowanieSekcjowe}} - to nic innego jest, jak funkcja inicjowana przez zwracaną procedurę przez: {{LinkŚródtytuł|p.AnalizowanieSekcjowe}}, która ma w sobie pewne elementy początkowe w sobie wsadzonych jako parametry, które są wykorzystywane prze obiekt przez nią zwracany, która coś robi.
; Typy dopasowywania rozdziałów paarametru{{dk}} {{nobold|czy_dodatni {{Code|{{=}}}} {{LinkPatrz|czy_dodatni}} {{ZobaczTeż|czy_dodatni}}}}{{dk}}
* {{Code|1}} - wyszukuje rozdziały wskazywane przez funkcję: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}},
* {{Code|2}} - wyszukuje pozycje list zaczynające się od znaków: {{Code|<nowiki>[%*#:;<>]+</nowiki>}}, jako pewne rozdziały, które trzeba wyszukać,
* Inna wartość niż dwie powyższe - wtedy są wyszukiwane rozdziały niezaczynające się od: {{Code|<nowiki>[^%*#:;<>\n]</nowiki>}}, i kończące się na dwukropek.
: Dla dwóch ostatnich powyższych punktów są wyszukiwane linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
: Funkcja dla tych dwóch pierwszych sprawdza, tylko raz, czy to jest rozdział spisu treści wskazywaną przez funkcję: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, jeżeli parsowanie przeszło niepomyślnie, a funkcja: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, zrzuci wartość prawdziwą, wtedy ta cała funkcja z nagłówka zrzuca wartość logiczną fałszywą. Ta funkcja wykorzystuje wartość: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, jako drugi parametr, dla którego liczy ona tekst przed, ta zmienna może wskazywać na początek pozycji linii artykularnej (z artykułami), aby ona policzyła swoją wartość.
Funkcja działa w pętli do zakończenia zasobu danych lub w inny sposób, ale też do zakończenia. Funkcja wtedy robi operacje zawsze dla: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} równe {{Code|1}} lub dla tych, gdzie: {{LinkŚródtytuł|p.CzyTamElementyNieSpisoweArtykularne|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, zwraca wartość logiczną prawdziwą, własnie dla tego, jeśli ta operacja zwróci prawdę, to dla tego są dopasowywane elementy zwracane. Wtedy wiadomo, że wyszukane tak pozycje są rozdziałami.
Funkcja zwraca wyniku w postaci wartości szegu zwracanych:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej;
</syntaxhighlight>
Wytłumaczenie tych elementów zrzuconych przez nią dla dopasowań, licząc od tyłu:
; Ostanie dopasowanie nagłówka pasujące, gdy tekst jego rozdziału jest równy znakom odstępu lub jest pusty{{dk}}
* {{Code|liczba_start_naglowek}} - początek ostatniego wyszukanego takiego nagłówka,
* {{Code|liczba_koniec_naglowek_poczt}} - koniec pierwszego wyszukanego nagłówka,
* {{Code|naglowek}} - wartość nagłówka dla tego ostatniego dopasowania,
* {{Code|poziom_naglowka}} - poziom takiego nagłówka,
; Niepasujący nagłówek, wyszukane pierwsze z kolei po pasującym{{dk}}
: Według wartości zwracanych powyższych w pierwszej kolejności, dla którego tekst rozdziału nie jest równa znakom odstępu i nie jest pusty:
* {{Code|liczba_start_naglowek_dalej}} - początek po pasującym tak nagłówku,
* {{Code|liczba_koniec_naglowek_dalej}} - a tutaj jego koniec,
* {{Code|naglowek_dalej}} - wartość tekstu napisu wprowadzenia tekstu,
* {{Code|poziom_naglowek_dalej}} - tutaj jego poziom.
W przypadku nieznalezienia takich nagłówków funkcja nie zwraca niczego.
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
Funkcja służy do zaawansowanego szukania, od tyłu, nagłówków w przeciwieństwie do: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, która służy przede wszystkim do szukania sekcji kolejnych jednego rodzaju, a ta funkcja znajduje się w postaci wielu typów, ona wie, że w tekście może być równy układ nagłówków różnych typów.
Funkcja wyszukuje od tyłu, znajduje parametry ostatniego nagłówka i je zwraca, jeżeli je znalazł, a jeśli nie, to nie zwraca żadnej wartości, tylko funkcja się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Jedynie funkcja nie ma parametru: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, ponieważ ta funkcji nie szuka kolejnych rozdziałów tylko jednego rodzaju, lecz wielu.
=== {{Śródtytuł|str_spacja_lub_zerowy_naglowek}}{{Code|str_spacja_lub_zerowy_naglowek}} ===
Dla każdej takiej niepustej linii, sprawdzane jest, czy to są linie z odstępami lub nie będące elementami listy, ale w sposób rozszerzony, tzn. ten początek nie może składać się z pewnych znaków, czyli: {{Code|<nowiki>^[^%*#:;<>\n]</nowiki>}}.
Funkcja sprawdza, czy liczba takich linii, jest taka sama, ile jest niepustych linii, wtedy funkcja zwraca wartość logiczną prawdziwą, przeciwnie wartość nilową.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local str_spacja_lub_zerowy_naglowek=function(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do sprawdzenia.
=== Ciąg dalszy opisu funkcji ===
; Etapy dopasowania ostatniego dopasowania rozdziałów, jego pozycja w tekście i jego napis wprowadzenia tekstu
* Etap ogólny
Funkcja najpierw wyszukuje rozdziały poprzez wskazanie przez funkcję: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, a jeżeli znalazł artykuł, o niepustych secjach pomiędzy ostatnim wskazanym artykułen (przed artykułem), a rozdziałem, wtedy ta funkcja zwraca wartość logiczną fałszywą i zwraca wartość nilową, czyli nic nie zwraca, i funkcja się zakańcza, i wskazuje, że nie znalazł takiego nagłówka, to się dzieje pod warunkiem, że funkcja: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, została podana, w przeciwnym wypadku, to już tak się nie dzieje, a nagłówek z tego wywołania mógł być znaleziony, ale nie musiał.
; Etapy alternatywy
* Pierwszy etap
** To dotyczy, że znalazł ostatnie dopasowanie, ale niepasującego nagłówka przed nim nie ma.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli tego nie znalazł, wtedy przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, w pętli nieskończonej, najpierw dla parametru: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, najpierw jest to pierwsze, a później to drugie, jeśli z tego pierwszego zostało wykonana komenda przerwania pętli, to drugie dopasowanie nie zostanie wykonane w danym obiegu jego, normalnie, bez tego są dwa wywołania.
W każdym takim wywołaniu i dopasowaniu, w pierwszym, czy drugim, będzie sprawdzane, czy tego dokonano, czy taki nagłówek znaleziono, a jeśli tak, to sprawdzany jest tekst pomiędzy ostatnim końcem w wykrytym nagłówku, a początkiem tego przedostatniego, lub z etapu ogólnego, funkcją: {{LinkŚródtytuł|str_spacja_lub_zerowy_naglowek}}, jeżeli funkcja zwróciła wartość logiczną odpowiadającej fałszywej, to pętla jest przerywana, w przeciwnym wypadku są inicjowane parametry tego dopasowania, które przygotowuje ona zwrócić do funkcji w nagłówku.
: Ogólnie po drugim taki wywołaniu następuje sprawdzenie parametrów zwróconych:
Jeżeli w ostatnim takim wywołaniu w tym funkcja zwraca niedopasowanie, wtedy zwracane jest przerywanie pętli, wtedy mamy parametry ostatniego dopasowania, jeśli istnieją takie.
* Drugi
** To dotyczy, że takiego dopasowania pasującego nie znalazł.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli to znalazł, to wyszukany stąd nagłówek jest rozwijany przy pomocy funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}. Jeżeli parser funkcji nie wykrył wykrzyknika na końcu takiego nagłówka, wtedy jest sprawdzane przy pomocy iteratora w zakodowanym tekście przy pomocy: {{Code|{{m|Szablonowe}}}}, na podstawie: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, czy w nagłówku istnieje artykuły bieżącej ksiązki, czy analizowanej, i czy to nie jest okładka, czy strona niedozwolona. Jeżeli wykryto takie artykuły, lub pętla nie została wykonana, bo nie ma takich wykrytym nagłówku kodów, to funkcja inicjuje parametry zwracanych wartości przez funkcję w nagłówku.
* Trzeci
** To dotyczy pozostałych przypadków, w którym znalazł ostatnie dopasowanie, a niepasujące przed nim też znalazł.
Jest wywoływane wywołanie: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, najpierw w pierwszym wywołaniu dla: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, a w każdym takim wywołaniu po jest sprawdzane, czy tekst pomiędzy końcem ostatniego wykrytego nagłówka, a początkiem przedostatniego nagłówka, a nawet artykułu wykrytego, czyli czy taki tekst rozdziału, czy składa się z samych znaków odstępów, a jeśli tak, to inicjowane są parametry zwracane przez funkcję. Dalej przechodzimy z pierwszego do drugiego wywołania, w którym oba wywołania są podobnie zbudowane.
; Parametry wychodzące z funkcji{{dk}}
* Oto parametry inicjowane przez funkcję w tych powyższych trzech etapach alternatywnych, które na końcu funkcji w nagłówku są zwracane:
: Funkcja zwraca wartości określone przez kod:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka;
</syntaxhighlight>
Wytłumaczenia parametrów zwracanych:
; Parametry określają ostatnie dopasowanie nagłówkowe w wewnątrz funkcji{{dk}}
* {{Code|liczba_start_naglowek}} - początek tego dopasowania,
* {{Code|liczba_koniec_naglowek}} - jego koniec,
* {{Code|naglowek}} - wartość napisu wprowadzenia tekstu nagłówka,
* {{Code|poziom_naglowka}} - poziom tego nagłówka.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
Funkcja służy do wyszukiwania, od tyłu, pozycji artykularnej przed wykrytym ostatnim rozdziałem, lub gdy nie ma rozdziałów, to liczy pozycję tylko artykularną, lub nawet pozycji rozdziałów zerowych spisu treści albo nawet tych z dwukropkiem na końcu danej linii, i szuka od tyłu takie coś, by to uznać za początek spisu treści wyciętej z tekstu zakodowanego spisu, czyli ogólnie mówiąc funkcja szuka dalej takiego początku dalszego.
Funkcja służy też do wydzielania części spisu spełniające powyższe kryteria, aby można było ją parsować przez inne funkcje '''Stronicowego parsera''', do wydzielania dalszych rozdziałów, a z nich wydzielania nagłówków (napisów wprowadzenia tekstu) i tekstów rozdziałów.
Funkcja pętluje przy wykrytych liniach składających się z odstępów, a się zatrzymuje na normalnych danych lub po zakończeniu zasobów.
Główny opis funkcji {{ZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}:
* Funkcja działa w oętli nieskończnonej, aż do zakończenia danych, lub do zwrócenia elementów przez nią,
* W tej pętli funkcja wyszukuje kolejne linie, które nie są pozycjami listy, z którego wyodrębiona linia jest analizowana bez przerwy, jeżeli istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje parametry:
** {{Code|liczba_start}} {{Patrz|liczba_start}} - od której pozycji od tyłu ma wyszukiwać pozycje artykularne,
** {{Code|czy_dalej_rozdzial}} {{Patrz|czy_dalej_rozdzial}} - czy {{ZobaczTeż|czy_dalej_rozdzial}} uznać za pierwszeństwo, w przypadku wykrytego rozdziału dodatniego w linii, lub nie wykrycia takiej linii, która nie jest częścią listy, wtedy jest ważny element (zmienna) {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie jest brane, coś przeciwnego,
** {{Code|liczba_pierwszy_rozdzialowy_artykul}} - jak w: {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}}.
Parametry {{ZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}} zwracane przez funkcję, które są zwracane kolejno w niej na końcu jej działania:
* Początek takiego punktu, uzyskanym w końcu na końcowym obiektu pętli (wyjaśnienie w tekście),
* Liczba znaków odstępów wykrytych poczasz wszystkich obiektów pętli (jest to reprezzentowane przez: {{Code|liczba_spac}} {{Patrz|liczba_spac}}),
* Czy ta tak, uzyskana i zwrócona, linia jest rozdziałem spisu treści (jest to reprezentowane przez: {{Code|czy_spis}} {{Patrz|czy_spis}}).
Etapy zwracania przez funkcję elementów:
; Uzyskanie linii według ogólnego wzoru
* Według {{LinkZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}, tą linia, byłoby takie coś pomiędzy ewentualnie znakami nowymi liniami, która spełnia wzór: {{Code|<nowiki>([^%*#:;<>\n][^\n]*)</nowiki>}}. To wyszukiwanie jest według funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wyszukujący w sposób ogólny linie, niezależnie jak są one realizowane w tekście.
; Początek i koniec uzyskanej linii według powyższego sposobu{{dk}}
* Początek i koniec przechwyconej linii, to są pewne liczby, wraz ze znakami nowej linii, jeśli po któreś stronie istnieją, lub nawet gdy to są w tym elementy, początku lub końca, tekstu, wtedy długość tych elementów jest zero.
; Brak dopasowania linii
* A jeżeli dopasowanie tej linii nie zgłasza niedopasowania, wtedy przy prawdziwości zmiennej: {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według: {{LinkZobaczTeż|czy_dalej_rozdzial}}, zwracane jest: {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie, wartość minimalną, pomiędzy tą zmienną a inną {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}} (jeśli ta zmienna nie istnieje, to domyślnie ma wartość {{Code|1}}).
; Rozdział równaniowy{{dk}}
* Jeżeli tą linią jest rozdział równaniowy, to zwracane jest, jeżeli wartość {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według {{LinkZobaczTeż|czy_dalej_rozdzial}}, ma wartość fałszywą, wtedy jest to dopasowanie końca tej linii, w pierwszym parametrze zwracanym, wraz z innymi danymi, według {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}, a jeżeli ta wartość jest prawdą, to zwracane jest {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, bo w tej funkcji nie ma prawa takich rozdziałów dopasowywać.Ma dopaasowywać tylko normalne linie niebędące pozycjami listy.
; Pierwsze rozgałęzenie specjalne instrukcji warunkowej{{dk}}
: Znaki odstępów - linia to białe znaki:
* Jeżeli linia istnieje i składa się z samych znaków odstępów, to liczmy długość tych znaków, wraz z nowymi liniami po prawej lub lewej stronie, jeśli istnieją, i wsadzamy to do ogólnego licznika {{Code|liczba_spac}} {{LinkPatrz|liczba_spac}}, która jest zwracana na końcu działania funkcji, jako drugi parametr w: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}. Funkcja wykonuje tych okrążeń pętli tyle, ile jest kolejnych linii składających się z tych znaków.
; Przypadek istnienia linii nie składającej się ze znaków odstępów{{dk}}
: Rozdział spisu treści i rozdział zerowy:
* Jeśli linia jest spisem względem {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przyjmuje wartość początkowi takiej ustalonej linii w tekście, a {{Code|czy_spis}} {{LinkPatrz|czy_spis}} przyjmuje wartość prawdziwą.
* A jeśli tak nie jest, to sprawdzamy, czy przed tą linią jest rozdział zerowy na podstawie funkcji: {{LinkŚródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}. Jeżeli ona jest tym rozdziałem, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma już nową wartość, przeciwnie, jeśli ta linia ma na końcu dwukropek, to ta wartość nowa jest równa początkowi wyszukania tej linii, a jeśli nie, to końcowi. Zmienna, czy jest rozdział spisu {{Code|czy_spis}} {{LinkPatrz|czy_spis}} ma wartość prawdziwą, gdy ten rozdział zerowy istnieje, a jeśli nie, to fałszywą.
; Przypadek istnienia, lub nie, rozdziału zerowego{{dk}}
* Jeśli znaleziono taki rozdział (zerowy), to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, to wtedy nie ma żadnych dodatkowych instrukcji do wykonania.
* Punkty zwracania zmiennych, jeśli przeciwnie do poprzedniego:
** Jeśli znaleziono taki spis, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma wartość początkowi takiej linii
** A jeżeli przeciwnie, nie ma w nim kodów, to końcowi, jeśli wyszukana linia nie jest rozdziałem z dwukropkiem na końcu, a jeśli jest, to początkowi tej linii,
*** Wtedy ją, tą uzyskaną z obliczeń, trzeba wliczać w ramach wydzielonego spisu, wtedy zmienna: {{Code|czy_spis}} {{LinkPatrz|czy_spis}}, jest prawdą,
** A jeśli jednak ma je, wtedy, czy linia ma pozycje artykularne, które nie są okładkami lub stronami niedozwolonymi, a jeśli tak jest, na podstawie wywołania funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, to zwracany jest początek wyszukania takiej linii w tej zmiennej, przeciwnie powtarzana jest ta wartość.
*** Wtedy, gdy linia nie ma takich artykułów, wtedy jeśli ona ma dwukropek na końcu, wtedy ustalamy zmienną: {{Code|czy_spis}} {{LinkPatrz|czy_spis}}, na prawdę.
: Na samym końcu zwracane jest to wszystko w postaci parametrów: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}.
== {{Śródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}{{Code|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}} ==
Funkcja wyszukuje, czy dla obiektu o typie {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} o numerze liczbowym {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} - nie jako łańcuch znakowy, dla ich generowanego odpowiednika {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, generowanego z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, są linki w zależności od podanej zmiennej: {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, a jeżeli tam nie ma linków, to przeszukiwany jest {{LinkPatrz|dalszy_tekst}} w ich poszukiwaniu, którymi zrządzą prawa w zależności od przyporządkowanej zmiennej: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, wartość prawdziwa tej zmiennej, włącza dowolność układu obiektów typu: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}.
Funkcja wyszukuje w linii, ale najwierw w: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, a później w: {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, jeżeli w poprzednim nie znalazł, pierwszego takiego linku przyporządkowagp, któremuś z tych obiektów, i przy pierwszym wykryciu zwraca wartość, ale dany obiekt uwwzględniany względem tego poprzedniegomusi spełniać prawa lub nie, w zależności od podanej zmiennej {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieLinkuWeSzablonieOrazDalszymNapisie(obiekt,kod,dalszy_tekst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_oddzielone,czy_wszystkie_linki)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}}, {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|czy_nieoddzielone}} {{Patrz|czy_nieoddzielone}} - czy linki mają być oddzielone interpunkcją, czy odstępami, w przypadu przeciwnym, jeżeli tak nie jest, to funkcja zwraca wartość fałszywą,
** {{Code|czy_wszystkie_linki}} {{Patrz|czy_wszystkie_linki}} - czy uwzględniaj wszystkie linki, czy tylko artykuły, nie okładki, (dozwolone), danej książki,
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy tekst, do przeszukiwania linkowego.
Funkcja zwraca wartość logiczną, jeżeli prawa linkowe tekstu są przyporządkowane przez zmienne: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, to jeśli znalazłeś takie linki, to zwracaj wartość prrawdziwą, a jeśli nie, to fałszywą.
Jeśli zmienna: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, przyjmuje wartość fałszywą, to te rozważane obiekty, muszą być oddzielone pewnymi znakami, tutaj: {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, a jak nie spełniają tego warunku, to funkcja zwraca wartość fałszywą, w innym wypadku dalej liczy i sprawdza.
== {{Śródtytuł|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}}{{Code|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}} ==
Funkcja jest rozszerzeniem funkcji: {{LinkŚródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}, dla ustalonych dwóch ostatnich zmiennych, które przyjmują wartość {{Code|true}} (prawdziwą), o nazwach: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}} i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, dla tej funkcji, mamy już zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, i {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, a funkcja w nagłówku je ustala, w wyniku działania w pętli.
Funkcja wyszukuje, od tyłu, w tekście, nabliższej pozycji typu: {{Code|SZABLON}}, {{Code|LINKW}} lub {{Code|LINKZ}}, w danej linii, i zwraca odpowiednio dwie wartości, pozycje wykrytą i wartość logiczną powodzenia, w innym przypadku, pozycję początkową z drugim parametrem fałszem.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|liczba_start_rozdzial}} - jak w: {{LinkPatrz|liczba_start_rozdzial}}, pozycja wyszukiwania końcowa,
** {{Code|liczba_spisowa}} {{Patrz|liczba_spisowa}} - pozycja wyszukiwania początkowa.
Parametry zwracane:
* Pierwszy parametr:
** Pozycja, w którym taką pozycję określona przez funkcję znaleziono, drugi parametr wtedy przyjmuje prawdę, jeśli nie znaleziono, takiej pozycji, to ta pozycja przymuje wartość początkową, adrugi parametr jest fałszem,
* Drugi parametr:
** Czy elementy są odzielone od sibie pewnymi znakami, według tej dokumentacji, i czy to są linki artykułów nieokładkowych dozwolonych, w najbliższej linii, wtedy zwraca w drugim parametrze prawdę, w przecciwnym wypadku, w przypadku znalezienia obiektu w najbliższej linii z: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, ale nie wykryto odpowiwdnich linków, według wspomnianej funkcji, wtedy zwracony ten paramtr będzie fałszem, kub do wyczerpania zasobów, też odpowiadającej fałśzowi,
Funkcja wyszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wykorzystując, że tekst jest zakodowany, i znajduje one przy pomocy wyrażenia regularnego generowanego przez: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, na podstawie kodu, którego fragment jest napisany tutaj:
<syntaxhighlight lang="lua">
local liczba_spisu=liczba_spisowa;
local szablonowe_modul=require("Module:Szablonowe");
---- Ustalenie wzoru kodowania, czyli jest to dowolny kod;
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu()
while(true)do
---- Wyszukuje dowolną linię według wyrażenia regularnego podanego w kodzie, zawartą całkowicie w linii;
local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
</syntaxhighlight>
Fukcja sprawdza, czy dokonano sprawdzenia, jeśli pozytywnie ono przeszło, to musi istnieć zmienna {{Code|liczba_linki_nierozdzialowe_szablonu}} {{Patrz|liczba_linki_nierozdzialowe_szablonu}} oraz musi być spełniona alternatywa dwóch warunków: {{Code|przed_tekst}} {{Patrz|przed_tekst}} musi być puste lub ma spełniać warunek według wzoru: {{Code|<nowiki>^[%p%s%d%.]*$</nowiki>}}.
Jeżeli funkcja nie dopasowała kodu: {{Code|obiekt_szablon}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, do wartości: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, to działa w pętli aż dopasuje je, aż do zakończenia zasobu danych dostępnych w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, jeżeli nie mogła by tego zrobić. A jeśli je dopasowała, to sprawdza, czy te kody są odpowiednimi obiektami, ewentualnie oddzielonych od siebie znakami {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, poprzez sprawdzanie funkcją wspomnianą w nagłówku. Jeśli ta funkcja zwróci wartość prawdziwą, to zwrócone zostaną parametry:
<syntaxhighlight lang="lua">
return liczba_linki_nierozdzialowe_szablonu,true;
</syntaxhighlight>
W innych przypadkach, jeżeli takiego dopasowania nie znalazła, to zwróć szereg wartości:
<syntaxhighlight lang="lua">
return liczba_spisowa,false;
</syntaxhighlight>
W tym przypadku wartość {{Code|liczba_spisowa}} {{LinkPatrz|liczba_spisowa}}, to nic innego jak ostatni argument naszej funkcji, czyli w przypadku niepowoddzenia dopasowania, zwracana jest wartość ta początkowa, zdrugą wartością, że niezaleziono poszukiwanego obiektu.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowychZakresowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowychZakresowych}} ==
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowychZakresowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_pierwszy_rozdzialowy_artykul,liczba_przed_rozdzialem,liczba_start_naglowek_przed,czy_znajdz)...end;
</syntaxhighlight>
Parametry funkcji:
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
mf0344yalg8rp16ull9rz2trqvfz2gd
554558
554557
2026-09-05T21:52:48Z
Persino
2851
/* {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} */
554558
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
Jest to funkcja do sprawdzania tekstu zawartości (tekstu rozdziału, bez zawartości nagłówka) napisu wprowadzenia tekstu sekcji, za pomocą funkcji zwracanej, czy ona spełnia pewne określone warunki.
Funkcja, gdy co jest nie tak, to zwraca wartość {{Code|true}}, i przy okazji może zerować pewne określone zmienne, jeśli ona przy tym została odpowiednio ustawiona, przeciwnie ona zawsze zwraca wartość {{Code|nil}}, czyli nie zwraca żadnej wartości.
Za pomocą tej funkcji można sprawdzić, czy funkcja zawiera niedozwolone znaki wikikodu, i dlatego zwraca tą prawdziwość.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe)
... ---- ciało funkcji zwracanej
end;
end;
</syntaxhighlight>
Parametry ogólne funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|czy_zeruj}} {{Patrz|czy_zeruj}} - czy ma zerować, ścisle określone zmienne, które mieszczą się w niezerowej tablicy zmiennych składowych, tzn. w: {{Code|tab_zmienne}} {{LinkPatrz|tab_zmienne}},
* {{Code|tab_zmienne}} {{Patrz|tab_zmienne}} - zmienne w nim do zerowania,
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Parametry funkcji zwracanej dla tekstu rozważanego: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}:
* {{Code|liczba_koniec_naglowek}} {{Patrz|liczba_koniec_naglowek}} - numer znaku, po którym coś rozważamy,
* {{Code|liczba_obiekt_start_nowe}} {{Patrz|liczba_obiekt_start_nowe}} - numer znaku, przed którym coś rozważamy.
; Sprawdzenie spełnienia warunku, przejście do wnętrza tej instrukcji warunkowej{{dk}}
Funkcja zwracana sprawdza, czy zmienne: {{Code|liczba_koniec_naglowek}} {{LinkPatrz|liczba_koniec_naglowek}}, i {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, istnieją, i te zmienne sugerują punkty znakowe w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, ale jeżeli te zmienne liczbowe punktów znakowych mają takie wartości, że nie da się znaleźć dla tej zmiennej tekstowej treści pomiędzy nimi, to ta funkcja nie zwraca żadnej wartości, to zachodzi, kiedy nie jest spełniony warunek:
<syntaxhighlight lang="lua">
if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then
</syntaxhighlight>
; Sprawdzenie uzyskanej zmiennej tekstowej, będąca tekstem pomiędzy linkiem, a końcem rozdziału{{dk}}
* Liczenie zmiennej tekstowej za pomocą, którą będziemy sprawdzać:
: A jeżeli jest jednak tak, tzn. spełniony jest ten warunek, to znajdujemy taki tekst, robi to za pomocą funkcji: {{LzLua|mw.ustring.sub}}, i zapisuje to pod zmienną {{Code|str}} {{Patrz|str}}.
* Pierwszy etap analizowania tej zmiennej, czy jest poprawna, tzn. czy nie zwraca żadnej wartości, ale czy się zakańcza:
: Następnie sprawdza, czy ona jest w cudzysłowach, tzn. czy spełnia warunek: {{Code|<nowiki>^%s*'+(.+)'+%s*$</nowiki>}}, lub czy początek zaczyna się od znaków: {{Code|<nowiki>^[%*#:;<>]+</nowiki>}}, lub czy ten tekst zawiera dozwolone znaki z przedziału: {{Code|<nowiki>^[%s%p%w]*$</nowiki>}} - tzn. czy tekst składa się ze znaków odstępu, interpunkcyjnych, znaków alfanumerycznych lub z dolnym myślników, jeżeli któreś z tych warunków jest spełnione, to funkcja nie zwraca żadnej wartości, ale zatrzymuje się, tzn. zakańcza się, to oznacza, że wszystko jest w porządku. A jeżeli nie spełnione z żadnych z tych warunków, to ona idzie dalej, i robi następne czynności następne, aby sprawdzić dalsze warunki, czy wszystko jest w porządku.
; Sprawdzanie niepustych linii{{dk}}
* Sprawdzanie niepustych linii po liniach, ewentualnie składających się ze znaków odstępów:
: Funkcja liczy ile takich linii znalał, zapisuje to pod zmienną {{Code|ile}} {{Patrz|ile}}, jeśli wśród takich linii znalazł linie pasujące do: {{Code|<nowiki>^[%*#;:<>]</nowiki>}}, lub składające się znaków odstępów: {{Code|<nowiki>^%s*$</nowiki>}}, wtedy funkcja to liczy licznikiem: {{Code|ile_punktowanych}} {{Patrz|ile_punktowanych}}.
Funkcja w tak wyszukanych liniach w przeciwnym razie sprawdza, w liniach niepasujących do tych wzorów, czy tam są artykuły (strony) nie z rozważanej danej książki, przy pomocy funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, jeśli są takie elementy, to funkcja dodaje to do licznika: {{Code|ile_punktowanych}} {{LinkPatrz|ile_punktowanych}}, aby dodać jeden do licznika, dla każdej takiej linii funkcja sprawdza, czy przynajmniej jeden taki artykuł się znajduje tam, w każdej takiej wykrytej linii.
* Jeśli liczba określona przez zmienną: {{Code|ile_punktowanych}} {{LinkPatrz|ile_punktowanych}}, jeżeli jest co najmniej równa wyszukanym liniom: {{Code|ile}} {{LinkPatrz|ile}}, to funcja się zatrzymuje, i nie zwraca żadnej wartości, czyli wskazuje na powodzenie.
* Gdy liczba tego jest mniejsza niż wykrytych linii, to coś jest nie tak, wtedy funkcja nic nie zwraca, tylko idzie dalej.
; Inne operacje w przypadku niestwierdzenia, jak dotąd niepowodzenia przez funkcję, nie ma jeszcze zwróconej wartości {{nobold|{{Code|nil}}}}{{dk}}
* Zerowanie się pewnych wartości:
** Funkcja z tak policzonego: {{Code|str}} {{LinkPatrz|str}}, usuwa formy kodów z obiektami {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, a jeżeli znalazł w nim same, wtedy znaki odstępów, to ona nie zwraca żadnej wartości, ale się zakańcza, przeciwnie, sprawdza, czy jest zmienna: {{Code|czy_zeruj}} {{LinkPatrz|czy_zeruj}}, która jest prawdziwa, a jeśli tak, to elementy zmiennej: {{Code|tab_zmienne}} {{LinkPatrz|tab_zmienne}} są nilowane, tzn. podzmienne o kluczach:
* {{Code|liczba_nie_okladka_artykul}} {{Patrz|liczba_nie_okladka_artykul}} - liczba pozycji sekcji wskazująca, czy istnieje pierwszy taki artykuł (nie okładka, nie strona niedozwolona) aktualnej książki, lub bezpośrednio taki artykuł, niekoniecznie tej książki, czy znajduje się bezpośrednio w pozycji sekcji, i tylko sam tam się znajduje,
* {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{Patrz|liczba_pierwszy_rozdzialowy_artykul}} - liczba pozycji sekcji, która wskazuje na pierwszy taki wykryty artykuł, licząc od przodu, który spełnia pewne ścisle okreslone kryteria, jest to dowolny artykuł,jaki może być w książce,
: Kryteria określone przez te zmienne powyżej są określone przez funkcję: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}},
* {{Code|czy_ten_rozdzial}} {{Patrz|czy_ten_rozdzial}} - wartość prawdziwą wskazuje, czy wynilowano zmienne należące do rozważanej tablicy.
Ale niezależnie od wartości: {{Code|czy_zeruj}} {{LinkPatrz|czy_zeruj}}, funkcja wtedy zwraca zawsze wraca wartość {{Code|true}}, czyli ona zwraca to niepowodzenie.
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
Funkcja wyszukuje, od tyłu, kolejne rozdziały (napisy wprowadzenia tekstu), którego tekst rozdziału składa się z samych znaków odstępów, lub jest pusty, albo o poziomie wyższym rozdziałowo, nawet gdy jego tekst rozdziału jednak nie jest pusty.
Funkcja jest przerywana po najbliższych niespełniających warunkach. Funkcja zwraca parametry, z ostatniego pasującego dopasowana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - podczas wyszukiwania od tyłu, do jakiego punktu ma wyszukiwać,
* {{Code|liczba_obiekt_start_nowe}} - jak w: {{LinkPatrz|liczba_obiekt_start_nowe}}, wykorzystywane w funkcji: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, do sprawdzania pomiędzy znakami: końcem wyszukiwanego nagłówka, wraz ze znakiem nowej linii, a tą zmienną, do sprawdzania, czy tekst rozdziału spełnia ściśle określone normy określone przez tą funkcję, jest to pozycja taka na jaką wskazuje również pozycja jakaś artykularna, prze którym sprawdzamy tą funkcją tekst,
* {{Code|liczba_obiekt_start_spac_par}} {{Patrz|liczba_obiekt_start_spac_par}} - numer znaku, od którego ma wyszukiwać od tytułu pewne linie,
* {{Code|czy_dodatni}} {{Patrz|czy_dodatni}} - typ wyszukiwania rozdziałów, tzn. {{LinkZobaczTeż|czy_dodatni}},
* {{Code|czy_bez_naglowka}} {{Patrz|czy_bez_naglowka}} - czy ma wyszukiwać do: {{Code|1}}, od tytułu, a nie do: {{LinkPatrz|liczba_start_rozdzial}},
* {{Code|AnalizowanieSekcjowe}} {{Patrz|AnalizowanieSekcjowe}} - to nic innego jest, jak funkcja inicjowana przez zwracaną procedurę przez: {{LinkŚródtytuł|p.AnalizowanieSekcjowe}}, która ma w sobie pewne elementy początkowe w sobie wsadzonych jako parametry, które są wykorzystywane prze obiekt przez nią zwracany, która coś robi.
; Typy dopasowywania rozdziałów paarametru{{dk}} {{nobold|czy_dodatni {{Code|{{=}}}} {{LinkPatrz|czy_dodatni}} {{ZobaczTeż|czy_dodatni}}}}{{dk}}
* {{Code|1}} - wyszukuje rozdziały wskazywane przez funkcję: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}},
* {{Code|2}} - wyszukuje pozycje list zaczynające się od znaków: {{Code|<nowiki>[%*#:;<>]+</nowiki>}}, jako pewne rozdziały, które trzeba wyszukać,
* Inna wartość niż dwie powyższe - wtedy są wyszukiwane rozdziały niezaczynające się od: {{Code|<nowiki>[^%*#:;<>\n]</nowiki>}}, i kończące się na dwukropek.
: Dla dwóch ostatnich powyższych punktów są wyszukiwane linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
: Funkcja dla tych dwóch pierwszych sprawdza, tylko raz, czy to jest rozdział spisu treści wskazywaną przez funkcję: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, jeżeli parsowanie przeszło niepomyślnie, a funkcja: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, zrzuci wartość prawdziwą, wtedy ta cała funkcja z nagłówka zrzuca wartość logiczną fałszywą. Ta funkcja wykorzystuje wartość: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, jako drugi parametr, dla którego liczy ona tekst przed, ta zmienna może wskazywać na początek pozycji linii artykularnej (z artykułami), aby ona policzyła swoją wartość.
Funkcja działa w pętli do zakończenia zasobu danych lub w inny sposób, ale też do zakończenia. Funkcja wtedy robi operacje zawsze dla: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} równe {{Code|1}} lub dla tych, gdzie: {{LinkŚródtytuł|p.CzyTamElementyNieSpisoweArtykularne|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, zwraca wartość logiczną prawdziwą, własnie dla tego, jeśli ta operacja zwróci prawdę, to dla tego są dopasowywane elementy zwracane. Wtedy wiadomo, że wyszukane tak pozycje są rozdziałami.
Funkcja zwraca wyniku w postaci wartości szegu zwracanych:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej;
</syntaxhighlight>
Wytłumaczenie tych elementów zrzuconych przez nią dla dopasowań, licząc od tyłu:
; Ostanie dopasowanie nagłówka pasujące, gdy tekst jego rozdziału jest równy znakom odstępu lub jest pusty{{dk}}
* {{Code|liczba_start_naglowek}} - początek ostatniego wyszukanego takiego nagłówka,
* {{Code|liczba_koniec_naglowek_poczt}} - koniec pierwszego wyszukanego nagłówka,
* {{Code|naglowek}} - wartość nagłówka dla tego ostatniego dopasowania,
* {{Code|poziom_naglowka}} - poziom takiego nagłówka,
; Niepasujący nagłówek, wyszukane pierwsze z kolei po pasującym{{dk}}
: Według wartości zwracanych powyższych w pierwszej kolejności, dla którego tekst rozdziału nie jest równa znakom odstępu i nie jest pusty:
* {{Code|liczba_start_naglowek_dalej}} - początek po pasującym tak nagłówku,
* {{Code|liczba_koniec_naglowek_dalej}} - a tutaj jego koniec,
* {{Code|naglowek_dalej}} - wartość tekstu napisu wprowadzenia tekstu,
* {{Code|poziom_naglowek_dalej}} - tutaj jego poziom.
W przypadku nieznalezienia takich nagłówków funkcja nie zwraca niczego.
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
Funkcja służy do zaawansowanego szukania, od tyłu, nagłówków w przeciwieństwie do: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, która służy przede wszystkim do szukania sekcji kolejnych jednego rodzaju, a ta funkcja znajduje się w postaci wielu typów, ona wie, że w tekście może być równy układ nagłówków różnych typów.
Funkcja wyszukuje od tyłu, znajduje parametry ostatniego nagłówka i je zwraca, jeżeli je znalazł, a jeśli nie, to nie zwraca żadnej wartości, tylko funkcja się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Jedynie funkcja nie ma parametru: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, ponieważ ta funkcji nie szuka kolejnych rozdziałów tylko jednego rodzaju, lecz wielu.
=== {{Śródtytuł|str_spacja_lub_zerowy_naglowek}}{{Code|str_spacja_lub_zerowy_naglowek}} ===
Dla każdej takiej niepustej linii, sprawdzane jest, czy to są linie z odstępami lub nie będące elementami listy, ale w sposób rozszerzony, tzn. ten początek nie może składać się z pewnych znaków, czyli: {{Code|<nowiki>^[^%*#:;<>\n]</nowiki>}}.
Funkcja sprawdza, czy liczba takich linii, jest taka sama, ile jest niepustych linii, wtedy funkcja zwraca wartość logiczną prawdziwą, przeciwnie wartość nilową.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local str_spacja_lub_zerowy_naglowek=function(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do sprawdzenia.
=== Ciąg dalszy opisu funkcji ===
; Etapy dopasowania ostatniego dopasowania rozdziałów, jego pozycja w tekście i jego napis wprowadzenia tekstu
* Etap ogólny
Funkcja najpierw wyszukuje rozdziały poprzez wskazanie przez funkcję: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, a jeżeli znalazł artykuł, o niepustych secjach pomiędzy ostatnim wskazanym artykułen (przed artykułem), a rozdziałem, wtedy ta funkcja zwraca wartość logiczną fałszywą i zwraca wartość nilową, czyli nic nie zwraca, i funkcja się zakańcza, i wskazuje, że nie znalazł takiego nagłówka, to się dzieje pod warunkiem, że funkcja: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, została podana, w przeciwnym wypadku, to już tak się nie dzieje, a nagłówek z tego wywołania mógł być znaleziony, ale nie musiał.
; Etapy alternatywy
* Pierwszy etap
** To dotyczy, że znalazł ostatnie dopasowanie, ale niepasującego nagłówka przed nim nie ma.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli tego nie znalazł, wtedy przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, w pętli nieskończonej, najpierw dla parametru: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, najpierw jest to pierwsze, a później to drugie, jeśli z tego pierwszego zostało wykonana komenda przerwania pętli, to drugie dopasowanie nie zostanie wykonane w danym obiegu jego, normalnie, bez tego są dwa wywołania.
W każdym takim wywołaniu i dopasowaniu, w pierwszym, czy drugim, będzie sprawdzane, czy tego dokonano, czy taki nagłówek znaleziono, a jeśli tak, to sprawdzany jest tekst pomiędzy ostatnim końcem w wykrytym nagłówku, a początkiem tego przedostatniego, lub z etapu ogólnego, funkcją: {{LinkŚródtytuł|str_spacja_lub_zerowy_naglowek}}, jeżeli funkcja zwróciła wartość logiczną odpowiadającej fałszywej, to pętla jest przerywana, w przeciwnym wypadku są inicjowane parametry tego dopasowania, które przygotowuje ona zwrócić do funkcji w nagłówku.
: Ogólnie po drugim taki wywołaniu następuje sprawdzenie parametrów zwróconych:
Jeżeli w ostatnim takim wywołaniu w tym funkcja zwraca niedopasowanie, wtedy zwracane jest przerywanie pętli, wtedy mamy parametry ostatniego dopasowania, jeśli istnieją takie.
* Drugi
** To dotyczy, że takiego dopasowania pasującego nie znalazł.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli to znalazł, to wyszukany stąd nagłówek jest rozwijany przy pomocy funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}. Jeżeli parser funkcji nie wykrył wykrzyknika na końcu takiego nagłówka, wtedy jest sprawdzane przy pomocy iteratora w zakodowanym tekście przy pomocy: {{Code|{{m|Szablonowe}}}}, na podstawie: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, czy w nagłówku istnieje artykuły bieżącej ksiązki, czy analizowanej, i czy to nie jest okładka, czy strona niedozwolona. Jeżeli wykryto takie artykuły, lub pętla nie została wykonana, bo nie ma takich wykrytym nagłówku kodów, to funkcja inicjuje parametry zwracanych wartości przez funkcję w nagłówku.
* Trzeci
** To dotyczy pozostałych przypadków, w którym znalazł ostatnie dopasowanie, a niepasujące przed nim też znalazł.
Jest wywoływane wywołanie: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, najpierw w pierwszym wywołaniu dla: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, a w każdym takim wywołaniu po jest sprawdzane, czy tekst pomiędzy końcem ostatniego wykrytego nagłówka, a początkiem przedostatniego nagłówka, a nawet artykułu wykrytego, czyli czy taki tekst rozdziału, czy składa się z samych znaków odstępów, a jeśli tak, to inicjowane są parametry zwracane przez funkcję. Dalej przechodzimy z pierwszego do drugiego wywołania, w którym oba wywołania są podobnie zbudowane.
; Parametry wychodzące z funkcji{{dk}}
* Oto parametry inicjowane przez funkcję w tych powyższych trzech etapach alternatywnych, które na końcu funkcji w nagłówku są zwracane:
: Funkcja zwraca wartości określone przez kod:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka;
</syntaxhighlight>
Wytłumaczenia parametrów zwracanych:
; Parametry określają ostatnie dopasowanie nagłówkowe w wewnątrz funkcji{{dk}}
* {{Code|liczba_start_naglowek}} - początek tego dopasowania,
* {{Code|liczba_koniec_naglowek}} - jego koniec,
* {{Code|naglowek}} - wartość napisu wprowadzenia tekstu nagłówka,
* {{Code|poziom_naglowka}} - poziom tego nagłówka.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
Funkcja służy do wyszukiwania, od tyłu, pozycji artykularnej przed wykrytym ostatnim rozdziałem, lub gdy nie ma rozdziałów, to liczy pozycję tylko artykularną, lub nawet pozycji rozdziałów zerowych spisu treści albo nawet tych z dwukropkiem na końcu danej linii, i szuka od tyłu takie coś, by to uznać za początek spisu treści wyciętej z tekstu zakodowanego spisu, czyli ogólnie mówiąc funkcja szuka dalej takiego początku dalszego.
Funkcja służy też do wydzielania części spisu spełniające powyższe kryteria, aby można było ją parsować przez inne funkcje '''Stronicowego parsera''', do wydzielania dalszych rozdziałów, a z nich wydzielania nagłówków (napisów wprowadzenia tekstu) i tekstów rozdziałów.
Funkcja pętluje przy wykrytych liniach składających się z odstępów, a się zatrzymuje na normalnych danych lub po zakończeniu zasobów.
Główny opis funkcji {{ZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}:
* Funkcja działa w oętli nieskończnonej, aż do zakończenia danych, lub do zwrócenia elementów przez nią,
* W tej pętli funkcja wyszukuje kolejne linie, które nie są pozycjami listy, z którego wyodrębiona linia jest analizowana bez przerwy, jeżeli istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje parametry:
** {{Code|liczba_start}} {{Patrz|liczba_start}} - od której pozycji od tyłu ma wyszukiwać pozycje artykularne,
** {{Code|czy_dalej_rozdzial}} {{Patrz|czy_dalej_rozdzial}} - czy {{ZobaczTeż|czy_dalej_rozdzial}} uznać za pierwszeństwo, w przypadku wykrytego rozdziału dodatniego w linii, lub nie wykrycia takiej linii, która nie jest częścią listy, wtedy jest ważny element (zmienna) {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie jest brane, coś przeciwnego,
** {{Code|liczba_pierwszy_rozdzialowy_artykul}} - jak w: {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}}.
Parametry {{ZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}} zwracane przez funkcję, które są zwracane kolejno w niej na końcu jej działania:
* Początek takiego punktu, uzyskanym w końcu na końcowym obiektu pętli (wyjaśnienie w tekście),
* Liczba znaków odstępów wykrytych poczasz wszystkich obiektów pętli (jest to reprezzentowane przez: {{Code|liczba_spac}} {{Patrz|liczba_spac}}),
* Czy ta tak, uzyskana i zwrócona, linia jest rozdziałem spisu treści (jest to reprezentowane przez: {{Code|czy_spis}} {{Patrz|czy_spis}}).
Etapy zwracania przez funkcję elementów:
; Uzyskanie linii według ogólnego wzoru
* Według {{LinkZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}, tą linia, byłoby takie coś pomiędzy ewentualnie znakami nowymi liniami, która spełnia wzór: {{Code|<nowiki>([^%*#:;<>\n][^\n]*)</nowiki>}}. To wyszukiwanie jest według funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wyszukujący w sposób ogólny linie, niezależnie jak są one realizowane w tekście.
; Początek i koniec uzyskanej linii według powyższego sposobu{{dk}}
* Początek i koniec przechwyconej linii, to są pewne liczby, wraz ze znakami nowej linii, jeśli po któreś stronie istnieją, lub nawet gdy to są w tym elementy, początku lub końca, tekstu, wtedy długość tych elementów jest zero.
; Brak dopasowania linii
* A jeżeli dopasowanie tej linii nie zgłasza niedopasowania, wtedy przy prawdziwości zmiennej: {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według: {{LinkZobaczTeż|czy_dalej_rozdzial}}, zwracane jest: {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie, wartość minimalną, pomiędzy tą zmienną a inną {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}} (jeśli ta zmienna nie istnieje, to domyślnie ma wartość {{Code|1}}).
; Rozdział równaniowy{{dk}}
* Jeżeli tą linią jest rozdział równaniowy, to zwracane jest, jeżeli wartość {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według {{LinkZobaczTeż|czy_dalej_rozdzial}}, ma wartość fałszywą, wtedy jest to dopasowanie końca tej linii, w pierwszym parametrze zwracanym, wraz z innymi danymi, według {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}, a jeżeli ta wartość jest prawdą, to zwracane jest {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, bo w tej funkcji nie ma prawa takich rozdziałów dopasowywać.Ma dopaasowywać tylko normalne linie niebędące pozycjami listy.
; Pierwsze rozgałęzenie specjalne instrukcji warunkowej{{dk}}
: Znaki odstępów - linia to białe znaki:
* Jeżeli linia istnieje i składa się z samych znaków odstępów, to liczmy długość tych znaków, wraz z nowymi liniami po prawej lub lewej stronie, jeśli istnieją, i wsadzamy to do ogólnego licznika {{Code|liczba_spac}} {{LinkPatrz|liczba_spac}}, która jest zwracana na końcu działania funkcji, jako drugi parametr w: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}. Funkcja wykonuje tych okrążeń pętli tyle, ile jest kolejnych linii składających się z tych znaków.
; Przypadek istnienia linii nie składającej się ze znaków odstępów{{dk}}
: Rozdział spisu treści i rozdział zerowy:
* Jeśli linia jest spisem względem {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przyjmuje wartość początkowi takiej ustalonej linii w tekście, a {{Code|czy_spis}} {{LinkPatrz|czy_spis}} przyjmuje wartość prawdziwą.
* A jeśli tak nie jest, to sprawdzamy, czy przed tą linią jest rozdział zerowy na podstawie funkcji: {{LinkŚródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}. Jeżeli ona jest tym rozdziałem, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma już nową wartość, przeciwnie, jeśli ta linia ma na końcu dwukropek, to ta wartość nowa jest równa początkowi wyszukania tej linii, a jeśli nie, to końcowi. Zmienna, czy jest rozdział spisu {{Code|czy_spis}} {{LinkPatrz|czy_spis}} ma wartość prawdziwą, gdy ten rozdział zerowy istnieje, a jeśli nie, to fałszywą.
; Przypadek istnienia, lub nie, rozdziału zerowego{{dk}}
* Jeśli znaleziono taki rozdział (zerowy), to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, to wtedy nie ma żadnych dodatkowych instrukcji do wykonania.
* Punkty zwracania zmiennych, jeśli przeciwnie do poprzedniego:
** Jeśli znaleziono taki spis, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma wartość początkowi takiej linii
** A jeżeli przeciwnie, nie ma w nim kodów, to końcowi, jeśli wyszukana linia nie jest rozdziałem z dwukropkiem na końcu, a jeśli jest, to początkowi tej linii,
*** Wtedy ją, tą uzyskaną z obliczeń, trzeba wliczać w ramach wydzielonego spisu, wtedy zmienna: {{Code|czy_spis}} {{LinkPatrz|czy_spis}}, jest prawdą,
** A jeśli jednak ma je, wtedy, czy linia ma pozycje artykularne, które nie są okładkami lub stronami niedozwolonymi, a jeśli tak jest, na podstawie wywołania funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, to zwracany jest początek wyszukania takiej linii w tej zmiennej, przeciwnie powtarzana jest ta wartość.
*** Wtedy, gdy linia nie ma takich artykułów, wtedy jeśli ona ma dwukropek na końcu, wtedy ustalamy zmienną: {{Code|czy_spis}} {{LinkPatrz|czy_spis}}, na prawdę.
: Na samym końcu zwracane jest to wszystko w postaci parametrów: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}.
== {{Śródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}{{Code|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}} ==
Funkcja wyszukuje, czy dla obiektu o typie {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} o numerze liczbowym {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} - nie jako łańcuch znakowy, dla ich generowanego odpowiednika {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, generowanego z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, są linki w zależności od podanej zmiennej: {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, a jeżeli tam nie ma linków, to przeszukiwany jest {{LinkPatrz|dalszy_tekst}} w ich poszukiwaniu, którymi zrządzą prawa w zależności od przyporządkowanej zmiennej: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, wartość prawdziwa tej zmiennej, włącza dowolność układu obiektów typu: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}.
Funkcja wyszukuje w linii, ale najwierw w: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, a później w: {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, jeżeli w poprzednim nie znalazł, pierwszego takiego linku przyporządkowagp, któremuś z tych obiektów, i przy pierwszym wykryciu zwraca wartość, ale dany obiekt uwwzględniany względem tego poprzedniegomusi spełniać prawa lub nie, w zależności od podanej zmiennej {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieLinkuWeSzablonieOrazDalszymNapisie(obiekt,kod,dalszy_tekst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_oddzielone,czy_wszystkie_linki)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}}, {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|czy_nieoddzielone}} {{Patrz|czy_nieoddzielone}} - czy linki mają być oddzielone interpunkcją, czy odstępami, w przypadu przeciwnym, jeżeli tak nie jest, to funkcja zwraca wartość fałszywą,
** {{Code|czy_wszystkie_linki}} {{Patrz|czy_wszystkie_linki}} - czy uwzględniaj wszystkie linki, czy tylko artykuły, nie okładki, (dozwolone), danej książki,
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy tekst, do przeszukiwania linkowego.
Funkcja zwraca wartość logiczną, jeżeli prawa linkowe tekstu są przyporządkowane przez zmienne: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, to jeśli znalazłeś takie linki, to zwracaj wartość prrawdziwą, a jeśli nie, to fałszywą.
Jeśli zmienna: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, przyjmuje wartość fałszywą, to te rozważane obiekty, muszą być oddzielone pewnymi znakami, tutaj: {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, a jak nie spełniają tego warunku, to funkcja zwraca wartość fałszywą, w innym wypadku dalej liczy i sprawdza.
== {{Śródtytuł|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}}{{Code|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}} ==
Funkcja jest rozszerzeniem funkcji: {{LinkŚródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}, dla ustalonych dwóch ostatnich zmiennych, które przyjmują wartość {{Code|true}} (prawdziwą), o nazwach: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}} i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, dla tej funkcji, mamy już zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, i {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, a funkcja w nagłówku je ustala, w wyniku działania w pętli.
Funkcja wyszukuje, od tyłu, w tekście, nabliższej pozycji typu: {{Code|SZABLON}}, {{Code|LINKW}} lub {{Code|LINKZ}}, w danej linii, i zwraca odpowiednio dwie wartości, pozycje wykrytą i wartość logiczną powodzenia, w innym przypadku, pozycję początkową z drugim parametrem fałszem.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|liczba_start_rozdzial}} - jak w: {{LinkPatrz|liczba_start_rozdzial}}, pozycja wyszukiwania końcowa,
** {{Code|liczba_spisowa}} {{Patrz|liczba_spisowa}} - pozycja wyszukiwania początkowa.
Parametry zwracane:
* Pierwszy parametr:
** Pozycja, w którym taką pozycję określona przez funkcję znaleziono, drugi parametr wtedy przyjmuje prawdę, jeśli nie znaleziono, takiej pozycji, to ta pozycja przymuje wartość początkową, adrugi parametr jest fałszem,
* Drugi parametr:
** Czy elementy są odzielone od sibie pewnymi znakami, według tej dokumentacji, i czy to są linki artykułów nieokładkowych dozwolonych, w najbliższej linii, wtedy zwraca w drugim parametrze prawdę, w przecciwnym wypadku, w przypadku znalezienia obiektu w najbliższej linii z: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, ale nie wykryto odpowiwdnich linków, według wspomnianej funkcji, wtedy zwracony ten paramtr będzie fałszem, kub do wyczerpania zasobów, też odpowiadającej fałśzowi,
Funkcja wyszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wykorzystując, że tekst jest zakodowany, i znajduje one przy pomocy wyrażenia regularnego generowanego przez: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, na podstawie kodu, którego fragment jest napisany tutaj:
<syntaxhighlight lang="lua">
local liczba_spisu=liczba_spisowa;
local szablonowe_modul=require("Module:Szablonowe");
---- Ustalenie wzoru kodowania, czyli jest to dowolny kod;
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu()
while(true)do
---- Wyszukuje dowolną linię według wyrażenia regularnego podanego w kodzie, zawartą całkowicie w linii;
local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
</syntaxhighlight>
Fukcja sprawdza, czy dokonano sprawdzenia, jeśli pozytywnie ono przeszło, to musi istnieć zmienna {{Code|liczba_linki_nierozdzialowe_szablonu}} {{Patrz|liczba_linki_nierozdzialowe_szablonu}} oraz musi być spełniona alternatywa dwóch warunków: {{Code|przed_tekst}} {{Patrz|przed_tekst}} musi być puste lub ma spełniać warunek według wzoru: {{Code|<nowiki>^[%p%s%d%.]*$</nowiki>}}.
Jeżeli funkcja nie dopasowała kodu: {{Code|obiekt_szablon}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, do wartości: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, to działa w pętli aż dopasuje je, aż do zakończenia zasobu danych dostępnych w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, jeżeli nie mogła by tego zrobić. A jeśli je dopasowała, to sprawdza, czy te kody są odpowiednimi obiektami, ewentualnie oddzielonych od siebie znakami {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, poprzez sprawdzanie funkcją wspomnianą w nagłówku. Jeśli ta funkcja zwróci wartość prawdziwą, to zwrócone zostaną parametry:
<syntaxhighlight lang="lua">
return liczba_linki_nierozdzialowe_szablonu,true;
</syntaxhighlight>
W innych przypadkach, jeżeli takiego dopasowania nie znalazła, to zwróć szereg wartości:
<syntaxhighlight lang="lua">
return liczba_spisowa,false;
</syntaxhighlight>
W tym przypadku wartość {{Code|liczba_spisowa}} {{LinkPatrz|liczba_spisowa}}, to nic innego jak ostatni argument naszej funkcji, czyli w przypadku niepowoddzenia dopasowania, zwracana jest wartość ta początkowa, zdrugą wartością, że niezaleziono poszukiwanego obiektu.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowychZakresowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowychZakresowych}} ==
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowychZakresowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_pierwszy_rozdzialowy_artykul,liczba_przed_rozdzialem,liczba_start_naglowek_przed,czy_znajdz)...end;
</syntaxhighlight>
Parametry funkcji:
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
dpoij2w4nb8qlbk1yuhvx9ld3pao2xj
554559
554558
2026-09-05T21:55:33Z
Persino
2851
/* {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} */
554559
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
Jest to funkcja do sprawdzania tekstu zawartości (tekstu rozdziału, bez zawartości nagłówka) napisu wprowadzenia tekstu sekcji, za pomocą funkcji zwracanej, czy ona spełnia pewne określone warunki.
Funkcja, gdy co jest nie tak, to zwraca wartość {{Code|true}}, i przy okazji może zerować pewne określone zmienne, jeśli ona przy tym została odpowiednio ustawiona, przeciwnie ona zawsze zwraca wartość {{Code|nil}}, czyli nie zwraca żadnej wartości.
Za pomocą tej funkcji można sprawdzić, czy funkcja zawiera niedozwolone znaki wikikodu, i dlatego zwraca tą prawdziwość.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe)
... ---- ciało funkcji zwracanej
end;
end;
</syntaxhighlight>
Parametry ogólne funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|czy_zeruj}} {{Patrz|czy_zeruj}} - czy ma zerować, ścisle określone zmienne, które mieszczą się w niezerowej tablicy zmiennych składowych, tzn. w: {{Code|tab_zmienne}} {{LinkPatrz|tab_zmienne}},
* {{Code|tab_zmienne}} {{Patrz|tab_zmienne}} - zmienne w nim do zerowania,
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Parametry funkcji zwracanej dla tekstu rozważanego: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}:
* {{Code|liczba_koniec_naglowek}} {{Patrz|liczba_koniec_naglowek}} - numer znaku, po którym coś rozważamy,
* {{Code|liczba_obiekt_start_nowe}} {{Patrz|liczba_obiekt_start_nowe}} - numer znaku, przed którym coś rozważamy.
; Sprawdzenie spełnienia warunku, przejście do wnętrza tej instrukcji warunkowej{{dk}}
Funkcja zwracana sprawdza, czy zmienne: {{Code|liczba_koniec_naglowek}} {{LinkPatrz|liczba_koniec_naglowek}}, i {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, istnieją, i te zmienne sugerują punkty znakowe w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, ale jeżeli te zmienne liczbowe punktów znakowych mają takie wartości, że nie da się znaleźć dla tej zmiennej tekstowej treści pomiędzy nimi, to ta funkcja nie zwraca żadnej wartości, to zachodzi, kiedy nie jest spełniony warunek:
<syntaxhighlight lang="lua">
if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then
</syntaxhighlight>
; Sprawdzenie uzyskanej zmiennej tekstowej, będąca tekstem pomiędzy linkiem, a końcem rozdziału{{dk}}
* Liczenie zmiennej tekstowej za pomocą, którą będziemy sprawdzać:
: A jeżeli jest jednak tak, tzn. spełniony jest ten warunek, to znajdujemy taki tekst, robi to za pomocą funkcji: {{LzLua|mw.ustring.sub}}, i zapisuje to pod zmienną {{Code|str}} {{Patrz|str}}.
* Pierwszy etap analizowania tej zmiennej, czy jest poprawna, tzn. czy nie zwraca żadnej wartości, ale czy się zakańcza:
: Następnie sprawdza, czy ona jest w cudzysłowach, tzn. czy spełnia warunek: {{Code|<nowiki>^%s*'+(.+)'+%s*$</nowiki>}}, lub czy początek zaczyna się od znaków: {{Code|<nowiki>^[%*#:;<>]+</nowiki>}}, lub czy ten tekst zawiera dozwolone znaki z przedziału: {{Code|<nowiki>^[%s%p%w]*$</nowiki>}} - tzn. czy tekst składa się ze znaków odstępu, interpunkcyjnych, znaków alfanumerycznych lub z dolnym myślników, jeżeli któreś z tych warunków jest spełnione, to funkcja nie zwraca żadnej wartości, ale zatrzymuje się, tzn. zakańcza się, to oznacza, że wszystko jest w porządku. A jeżeli nie spełnione z żadnych z tych warunków, to ona idzie dalej, i robi następne czynności następne, aby sprawdzić dalsze warunki, czy wszystko jest w porządku.
; Sprawdzanie niepustych linii{{dk}}
* Sprawdzanie niepustych linii po liniach, ewentualnie składających się ze znaków odstępów:
: Funkcja liczy ile takich linii znalał, zapisuje to pod zmienną {{Code|ile}} {{Patrz|ile}}, jeśli wśród takich linii znalazł linie pasujące do: {{Code|<nowiki>^[%*#;:<>]</nowiki>}}, lub składające się znaków odstępów: {{Code|<nowiki>^%s*$</nowiki>}}, wtedy funkcja to liczy licznikiem: {{Code|ile_punktowanych}} {{Patrz|ile_punktowanych}}.
Funkcja w tak wyszukanych liniach w przeciwnym razie sprawdza, w liniach niepasujących do tych wzorów, czy tam są artykuły (strony) nie z rozważanej danej książki, przy pomocy funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, jeśli są takie elementy, to funkcja dodaje to do licznika: {{Code|ile_punktowanych}} {{LinkPatrz|ile_punktowanych}}, aby dodać jeden do licznika, dla każdej takiej linii funkcja sprawdza, czy przynajmniej jeden taki artykuł się znajduje tam, w każdej takiej wykrytej linii.
* Jeśli liczba określona przez zmienną: {{Code|ile_punktowanych}} {{LinkPatrz|ile_punktowanych}}, jeżeli jest co najmniej równa wyszukanym liniom: {{Code|ile}} {{LinkPatrz|ile}}, to funcja się zatrzymuje, i nie zwraca żadnej wartości, czyli wskazuje na powodzenie.
* Gdy liczba tego jest mniejsza niż wykrytych linii, to coś jest nie tak, wtedy funkcja nic nie zwraca, tylko idzie dalej.
; Inne operacje w przypadku niestwierdzenia, jak dotąd niepowodzenia przez funkcję, nie ma jeszcze zwróconej wartości {{nobold|{{Code|nil}}}}{{dk}}
* Zerowanie się pewnych wartości:
** Funkcja z tak policzonego: {{Code|str}} {{LinkPatrz|str}}, usuwa formy kodów z obiektami {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, a jeżeli znalazł w nim same, wtedy znaki odstępów, to ona nie zwraca żadnej wartości, ale się zakańcza, przeciwnie, sprawdza, czy jest zmienna: {{Code|czy_zeruj}} {{LinkPatrz|czy_zeruj}}, która jest prawdziwa, a jeśli tak, to elementy zmiennej: {{Code|tab_zmienne}} {{LinkPatrz|tab_zmienne}} są nilowane, tzn. podzmienne o kluczach:
* {{Code|liczba_nie_okladka_artykul}} {{Patrz|liczba_nie_okladka_artykul}} - liczba pozycji sekcji wskazująca, czy istnieje pierwszy taki artykuł (nie okładka, nie strona niedozwolona) aktualnej książki, lub bezpośrednio taki artykuł, niekoniecznie tej książki, czy znajduje się bezpośrednio w pozycji sekcji, i tylko sam tam się znajduje,
* {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{Patrz|liczba_pierwszy_rozdzialowy_artykul}} - liczba pozycji sekcji, która wskazuje na pierwszy taki wykryty artykuł, licząc od przodu, który spełnia pewne ścisle okreslone kryteria, jest to dowolny artykuł,jaki może być w książce,
: Kryteria określone przez te zmienne powyżej są określone przez funkcję: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}},
* {{Code|czy_ten_rozdzial}} {{Patrz|czy_ten_rozdzial}} - wartość prawdziwą wskazuje, czy wynilowano zmienne należące do rozważanej tablicy.
Ale niezależnie od wartości: {{Code|czy_zeruj}} {{LinkPatrz|czy_zeruj}}, funkcja wtedy zwraca zawsze wraca wartość {{Code|true}}, czyli ona zwraca to niepowodzenie.
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
Funkcja wyszukuje, od tyłu, kolejne rozdziały (napisy wprowadzenia tekstu), którego tekst rozdziału składa się z samych znaków odstępów, lub jest pusty, albo o poziomie wyższym rozdziałowo, nawet gdy jego tekst rozdziału jednak nie jest pusty.
Funkcja jest przerywana po najbliższych niespełniających warunkach. Funkcja zwraca parametry, z ostatniego pasującego dopasowana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - podczas wyszukiwania od tyłu, do jakiego punktu ma wyszukiwać,
* {{Code|liczba_obiekt_start_nowe}} - jak w: {{LinkPatrz|liczba_obiekt_start_nowe}}, wykorzystywane w funkcji: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, do sprawdzania pomiędzy znakami: końcem wyszukiwanego nagłówka, wraz ze znakiem nowej linii, a tą zmienną, do sprawdzania, czy tekst rozdziału spełnia ściśle określone normy określone przez tą funkcję, jest to pozycja taka na jaką wskazuje również pozycja jakaś artykularna, prze którym sprawdzamy tą funkcją tekst,
* {{Code|liczba_obiekt_start_spac_par}} {{Patrz|liczba_obiekt_start_spac_par}} - numer znaku, od którego ma wyszukiwać od tytułu pewne linie,
* {{Code|czy_dodatni}} {{Patrz|czy_dodatni}} - typ wyszukiwania rozdziałów, tzn. {{LinkZobaczTeż|czy_dodatni}},
* {{Code|czy_bez_naglowka}} {{Patrz|czy_bez_naglowka}} - czy ma wyszukiwać do: {{Code|1}}, od tytułu, a nie do: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}},
* {{Code|AnalizowanieSekcjowe}} {{Patrz|AnalizowanieSekcjowe}} - to nic innego jest, jak funkcja inicjowana przez zwracaną procedurę przez: {{LinkŚródtytuł|p.AnalizowanieSekcjowe}}, która ma w sobie pewne elementy początkowe w sobie wsadzonych jako parametry, które są wykorzystywane prze obiekt przez nią zwracany, która coś robi.
; Typy dopasowywania rozdziałów paarametru{{dk}} {{nobold|czy_dodatni {{Code|{{=}}}} {{LinkPatrz|czy_dodatni}} {{ZobaczTeż|czy_dodatni}}}}{{dk}}
* {{Code|1}} - wyszukuje rozdziały wskazywane przez funkcję: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}},
* {{Code|2}} - wyszukuje pozycje list zaczynające się od znaków: {{Code|<nowiki>[%*#:;<>]+</nowiki>}}, jako pewne rozdziały, które trzeba wyszukać,
* Inna wartość niż dwie powyższe - wtedy są wyszukiwane rozdziały niezaczynające się od: {{Code|<nowiki>[^%*#:;<>\n]</nowiki>}}, i kończące się na dwukropek.
: Dla dwóch ostatnich powyższych punktów są wyszukiwane linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
: Funkcja dla tych dwóch pierwszych sprawdza, tylko raz, czy to jest rozdział spisu treści wskazywaną przez funkcję: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, jeżeli parsowanie przeszło niepomyślnie, a funkcja: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, zrzuci wartość prawdziwą, wtedy ta cała funkcja z nagłówka zrzuca wartość logiczną fałszywą. Ta funkcja wykorzystuje wartość: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, jako drugi parametr, dla którego liczy ona tekst przed, ta zmienna może wskazywać na początek pozycji linii artykularnej (z artykułami), aby ona policzyła swoją wartość.
Funkcja działa w pętli do zakończenia zasobu danych lub w inny sposób, ale też do zakończenia. Funkcja wtedy robi operacje zawsze dla: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} równe {{Code|1}} lub dla tych, gdzie: {{LinkŚródtytuł|p.CzyTamElementyNieSpisoweArtykularne|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, zwraca wartość logiczną prawdziwą, własnie dla tego, jeśli ta operacja zwróci prawdę, to dla tego są dopasowywane elementy zwracane. Wtedy wiadomo, że wyszukane tak pozycje są rozdziałami.
Funkcja zwraca wyniku w postaci wartości szegu zwracanych:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej;
</syntaxhighlight>
Wytłumaczenie tych elementów zrzuconych przez nią dla dopasowań, licząc od tyłu:
; Ostanie dopasowanie nagłówka pasujące, gdy tekst jego rozdziału jest równy znakom odstępu lub jest pusty{{dk}}
* {{Code|liczba_start_naglowek}} - początek ostatniego wyszukanego takiego nagłówka,
* {{Code|liczba_koniec_naglowek_poczt}} - koniec pierwszego wyszukanego nagłówka,
* {{Code|naglowek}} - wartość nagłówka dla tego ostatniego dopasowania,
* {{Code|poziom_naglowka}} - poziom takiego nagłówka,
; Niepasujący nagłówek, wyszukane pierwsze z kolei po pasującym{{dk}}
: Według wartości zwracanych powyższych w pierwszej kolejności, dla którego tekst rozdziału nie jest równa znakom odstępu i nie jest pusty:
* {{Code|liczba_start_naglowek_dalej}} - początek po pasującym tak nagłówku,
* {{Code|liczba_koniec_naglowek_dalej}} - a tutaj jego koniec,
* {{Code|naglowek_dalej}} - wartość tekstu napisu wprowadzenia tekstu,
* {{Code|poziom_naglowek_dalej}} - tutaj jego poziom.
W przypadku nieznalezienia takich nagłówków funkcja nie zwraca niczego.
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
Funkcja służy do zaawansowanego szukania, od tyłu, nagłówków w przeciwieństwie do: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, która służy przede wszystkim do szukania sekcji kolejnych jednego rodzaju, a ta funkcja znajduje się w postaci wielu typów, ona wie, że w tekście może być równy układ nagłówków różnych typów.
Funkcja wyszukuje od tyłu, znajduje parametry ostatniego nagłówka i je zwraca, jeżeli je znalazł, a jeśli nie, to nie zwraca żadnej wartości, tylko funkcja się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Jedynie funkcja nie ma parametru: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, ponieważ ta funkcji nie szuka kolejnych rozdziałów tylko jednego rodzaju, lecz wielu.
=== {{Śródtytuł|str_spacja_lub_zerowy_naglowek}}{{Code|str_spacja_lub_zerowy_naglowek}} ===
Dla każdej takiej niepustej linii, sprawdzane jest, czy to są linie z odstępami lub nie będące elementami listy, ale w sposób rozszerzony, tzn. ten początek nie może składać się z pewnych znaków, czyli: {{Code|<nowiki>^[^%*#:;<>\n]</nowiki>}}.
Funkcja sprawdza, czy liczba takich linii, jest taka sama, ile jest niepustych linii, wtedy funkcja zwraca wartość logiczną prawdziwą, przeciwnie wartość nilową.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local str_spacja_lub_zerowy_naglowek=function(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do sprawdzenia.
=== Ciąg dalszy opisu funkcji ===
; Etapy dopasowania ostatniego dopasowania rozdziałów, jego pozycja w tekście i jego napis wprowadzenia tekstu
* Etap ogólny
Funkcja najpierw wyszukuje rozdziały poprzez wskazanie przez funkcję: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, a jeżeli znalazł artykuł, o niepustych secjach pomiędzy ostatnim wskazanym artykułen (przed artykułem), a rozdziałem, wtedy ta funkcja zwraca wartość logiczną fałszywą i zwraca wartość nilową, czyli nic nie zwraca, i funkcja się zakańcza, i wskazuje, że nie znalazł takiego nagłówka, to się dzieje pod warunkiem, że funkcja: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, została podana, w przeciwnym wypadku, to już tak się nie dzieje, a nagłówek z tego wywołania mógł być znaleziony, ale nie musiał.
; Etapy alternatywy
* Pierwszy etap
** To dotyczy, że znalazł ostatnie dopasowanie, ale niepasującego nagłówka przed nim nie ma.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli tego nie znalazł, wtedy przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, w pętli nieskończonej, najpierw dla parametru: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, najpierw jest to pierwsze, a później to drugie, jeśli z tego pierwszego zostało wykonana komenda przerwania pętli, to drugie dopasowanie nie zostanie wykonane w danym obiegu jego, normalnie, bez tego są dwa wywołania.
W każdym takim wywołaniu i dopasowaniu, w pierwszym, czy drugim, będzie sprawdzane, czy tego dokonano, czy taki nagłówek znaleziono, a jeśli tak, to sprawdzany jest tekst pomiędzy ostatnim końcem w wykrytym nagłówku, a początkiem tego przedostatniego, lub z etapu ogólnego, funkcją: {{LinkŚródtytuł|str_spacja_lub_zerowy_naglowek}}, jeżeli funkcja zwróciła wartość logiczną odpowiadającej fałszywej, to pętla jest przerywana, w przeciwnym wypadku są inicjowane parametry tego dopasowania, które przygotowuje ona zwrócić do funkcji w nagłówku.
: Ogólnie po drugim taki wywołaniu następuje sprawdzenie parametrów zwróconych:
Jeżeli w ostatnim takim wywołaniu w tym funkcja zwraca niedopasowanie, wtedy zwracane jest przerywanie pętli, wtedy mamy parametry ostatniego dopasowania, jeśli istnieją takie.
* Drugi
** To dotyczy, że takiego dopasowania pasującego nie znalazł.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli to znalazł, to wyszukany stąd nagłówek jest rozwijany przy pomocy funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}. Jeżeli parser funkcji nie wykrył wykrzyknika na końcu takiego nagłówka, wtedy jest sprawdzane przy pomocy iteratora w zakodowanym tekście przy pomocy: {{Code|{{m|Szablonowe}}}}, na podstawie: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, czy w nagłówku istnieje artykuły bieżącej ksiązki, czy analizowanej, i czy to nie jest okładka, czy strona niedozwolona. Jeżeli wykryto takie artykuły, lub pętla nie została wykonana, bo nie ma takich wykrytym nagłówku kodów, to funkcja inicjuje parametry zwracanych wartości przez funkcję w nagłówku.
* Trzeci
** To dotyczy pozostałych przypadków, w którym znalazł ostatnie dopasowanie, a niepasujące przed nim też znalazł.
Jest wywoływane wywołanie: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, najpierw w pierwszym wywołaniu dla: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, a w każdym takim wywołaniu po jest sprawdzane, czy tekst pomiędzy końcem ostatniego wykrytego nagłówka, a początkiem przedostatniego nagłówka, a nawet artykułu wykrytego, czyli czy taki tekst rozdziału, czy składa się z samych znaków odstępów, a jeśli tak, to inicjowane są parametry zwracane przez funkcję. Dalej przechodzimy z pierwszego do drugiego wywołania, w którym oba wywołania są podobnie zbudowane.
; Parametry wychodzące z funkcji{{dk}}
* Oto parametry inicjowane przez funkcję w tych powyższych trzech etapach alternatywnych, które na końcu funkcji w nagłówku są zwracane:
: Funkcja zwraca wartości określone przez kod:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka;
</syntaxhighlight>
Wytłumaczenia parametrów zwracanych:
; Parametry określają ostatnie dopasowanie nagłówkowe w wewnątrz funkcji{{dk}}
* {{Code|liczba_start_naglowek}} - początek tego dopasowania,
* {{Code|liczba_koniec_naglowek}} - jego koniec,
* {{Code|naglowek}} - wartość napisu wprowadzenia tekstu nagłówka,
* {{Code|poziom_naglowka}} - poziom tego nagłówka.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
Funkcja służy do wyszukiwania, od tyłu, pozycji artykularnej przed wykrytym ostatnim rozdziałem, lub gdy nie ma rozdziałów, to liczy pozycję tylko artykularną, lub nawet pozycji rozdziałów zerowych spisu treści albo nawet tych z dwukropkiem na końcu danej linii, i szuka od tyłu takie coś, by to uznać za początek spisu treści wyciętej z tekstu zakodowanego spisu, czyli ogólnie mówiąc funkcja szuka dalej takiego początku dalszego.
Funkcja służy też do wydzielania części spisu spełniające powyższe kryteria, aby można było ją parsować przez inne funkcje '''Stronicowego parsera''', do wydzielania dalszych rozdziałów, a z nich wydzielania nagłówków (napisów wprowadzenia tekstu) i tekstów rozdziałów.
Funkcja pętluje przy wykrytych liniach składających się z odstępów, a się zatrzymuje na normalnych danych lub po zakończeniu zasobów.
Główny opis funkcji {{ZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}:
* Funkcja działa w oętli nieskończnonej, aż do zakończenia danych, lub do zwrócenia elementów przez nią,
* W tej pętli funkcja wyszukuje kolejne linie, które nie są pozycjami listy, z którego wyodrębiona linia jest analizowana bez przerwy, jeżeli istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje parametry:
** {{Code|liczba_start}} {{Patrz|liczba_start}} - od której pozycji od tyłu ma wyszukiwać pozycje artykularne,
** {{Code|czy_dalej_rozdzial}} {{Patrz|czy_dalej_rozdzial}} - czy {{ZobaczTeż|czy_dalej_rozdzial}} uznać za pierwszeństwo, w przypadku wykrytego rozdziału dodatniego w linii, lub nie wykrycia takiej linii, która nie jest częścią listy, wtedy jest ważny element (zmienna) {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie jest brane, coś przeciwnego,
** {{Code|liczba_pierwszy_rozdzialowy_artykul}} - jak w: {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}}.
Parametry {{ZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}} zwracane przez funkcję, które są zwracane kolejno w niej na końcu jej działania:
* Początek takiego punktu, uzyskanym w końcu na końcowym obiektu pętli (wyjaśnienie w tekście),
* Liczba znaków odstępów wykrytych poczasz wszystkich obiektów pętli (jest to reprezzentowane przez: {{Code|liczba_spac}} {{Patrz|liczba_spac}}),
* Czy ta tak, uzyskana i zwrócona, linia jest rozdziałem spisu treści (jest to reprezentowane przez: {{Code|czy_spis}} {{Patrz|czy_spis}}).
Etapy zwracania przez funkcję elementów:
; Uzyskanie linii według ogólnego wzoru
* Według {{LinkZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}, tą linia, byłoby takie coś pomiędzy ewentualnie znakami nowymi liniami, która spełnia wzór: {{Code|<nowiki>([^%*#:;<>\n][^\n]*)</nowiki>}}. To wyszukiwanie jest według funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wyszukujący w sposób ogólny linie, niezależnie jak są one realizowane w tekście.
; Początek i koniec uzyskanej linii według powyższego sposobu{{dk}}
* Początek i koniec przechwyconej linii, to są pewne liczby, wraz ze znakami nowej linii, jeśli po któreś stronie istnieją, lub nawet gdy to są w tym elementy, początku lub końca, tekstu, wtedy długość tych elementów jest zero.
; Brak dopasowania linii
* A jeżeli dopasowanie tej linii nie zgłasza niedopasowania, wtedy przy prawdziwości zmiennej: {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według: {{LinkZobaczTeż|czy_dalej_rozdzial}}, zwracane jest: {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie, wartość minimalną, pomiędzy tą zmienną a inną {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}} (jeśli ta zmienna nie istnieje, to domyślnie ma wartość {{Code|1}}).
; Rozdział równaniowy{{dk}}
* Jeżeli tą linią jest rozdział równaniowy, to zwracane jest, jeżeli wartość {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według {{LinkZobaczTeż|czy_dalej_rozdzial}}, ma wartość fałszywą, wtedy jest to dopasowanie końca tej linii, w pierwszym parametrze zwracanym, wraz z innymi danymi, według {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}, a jeżeli ta wartość jest prawdą, to zwracane jest {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, bo w tej funkcji nie ma prawa takich rozdziałów dopasowywać.Ma dopaasowywać tylko normalne linie niebędące pozycjami listy.
; Pierwsze rozgałęzenie specjalne instrukcji warunkowej{{dk}}
: Znaki odstępów - linia to białe znaki:
* Jeżeli linia istnieje i składa się z samych znaków odstępów, to liczmy długość tych znaków, wraz z nowymi liniami po prawej lub lewej stronie, jeśli istnieją, i wsadzamy to do ogólnego licznika {{Code|liczba_spac}} {{LinkPatrz|liczba_spac}}, która jest zwracana na końcu działania funkcji, jako drugi parametr w: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}. Funkcja wykonuje tych okrążeń pętli tyle, ile jest kolejnych linii składających się z tych znaków.
; Przypadek istnienia linii nie składającej się ze znaków odstępów{{dk}}
: Rozdział spisu treści i rozdział zerowy:
* Jeśli linia jest spisem względem {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przyjmuje wartość początkowi takiej ustalonej linii w tekście, a {{Code|czy_spis}} {{LinkPatrz|czy_spis}} przyjmuje wartość prawdziwą.
* A jeśli tak nie jest, to sprawdzamy, czy przed tą linią jest rozdział zerowy na podstawie funkcji: {{LinkŚródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}. Jeżeli ona jest tym rozdziałem, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma już nową wartość, przeciwnie, jeśli ta linia ma na końcu dwukropek, to ta wartość nowa jest równa początkowi wyszukania tej linii, a jeśli nie, to końcowi. Zmienna, czy jest rozdział spisu {{Code|czy_spis}} {{LinkPatrz|czy_spis}} ma wartość prawdziwą, gdy ten rozdział zerowy istnieje, a jeśli nie, to fałszywą.
; Przypadek istnienia, lub nie, rozdziału zerowego{{dk}}
* Jeśli znaleziono taki rozdział (zerowy), to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, to wtedy nie ma żadnych dodatkowych instrukcji do wykonania.
* Punkty zwracania zmiennych, jeśli przeciwnie do poprzedniego:
** Jeśli znaleziono taki spis, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma wartość początkowi takiej linii
** A jeżeli przeciwnie, nie ma w nim kodów, to końcowi, jeśli wyszukana linia nie jest rozdziałem z dwukropkiem na końcu, a jeśli jest, to początkowi tej linii,
*** Wtedy ją, tą uzyskaną z obliczeń, trzeba wliczać w ramach wydzielonego spisu, wtedy zmienna: {{Code|czy_spis}} {{LinkPatrz|czy_spis}}, jest prawdą,
** A jeśli jednak ma je, wtedy, czy linia ma pozycje artykularne, które nie są okładkami lub stronami niedozwolonymi, a jeśli tak jest, na podstawie wywołania funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, to zwracany jest początek wyszukania takiej linii w tej zmiennej, przeciwnie powtarzana jest ta wartość.
*** Wtedy, gdy linia nie ma takich artykułów, wtedy jeśli ona ma dwukropek na końcu, wtedy ustalamy zmienną: {{Code|czy_spis}} {{LinkPatrz|czy_spis}}, na prawdę.
: Na samym końcu zwracane jest to wszystko w postaci parametrów: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}.
== {{Śródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}{{Code|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}} ==
Funkcja wyszukuje, czy dla obiektu o typie {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} o numerze liczbowym {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} - nie jako łańcuch znakowy, dla ich generowanego odpowiednika {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, generowanego z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, są linki w zależności od podanej zmiennej: {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, a jeżeli tam nie ma linków, to przeszukiwany jest {{LinkPatrz|dalszy_tekst}} w ich poszukiwaniu, którymi zrządzą prawa w zależności od przyporządkowanej zmiennej: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, wartość prawdziwa tej zmiennej, włącza dowolność układu obiektów typu: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}.
Funkcja wyszukuje w linii, ale najwierw w: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, a później w: {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, jeżeli w poprzednim nie znalazł, pierwszego takiego linku przyporządkowagp, któremuś z tych obiektów, i przy pierwszym wykryciu zwraca wartość, ale dany obiekt uwwzględniany względem tego poprzedniegomusi spełniać prawa lub nie, w zależności od podanej zmiennej {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieLinkuWeSzablonieOrazDalszymNapisie(obiekt,kod,dalszy_tekst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_oddzielone,czy_wszystkie_linki)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}}, {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|czy_nieoddzielone}} {{Patrz|czy_nieoddzielone}} - czy linki mają być oddzielone interpunkcją, czy odstępami, w przypadu przeciwnym, jeżeli tak nie jest, to funkcja zwraca wartość fałszywą,
** {{Code|czy_wszystkie_linki}} {{Patrz|czy_wszystkie_linki}} - czy uwzględniaj wszystkie linki, czy tylko artykuły, nie okładki, (dozwolone), danej książki,
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy tekst, do przeszukiwania linkowego.
Funkcja zwraca wartość logiczną, jeżeli prawa linkowe tekstu są przyporządkowane przez zmienne: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, to jeśli znalazłeś takie linki, to zwracaj wartość prrawdziwą, a jeśli nie, to fałszywą.
Jeśli zmienna: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, przyjmuje wartość fałszywą, to te rozważane obiekty, muszą być oddzielone pewnymi znakami, tutaj: {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, a jak nie spełniają tego warunku, to funkcja zwraca wartość fałszywą, w innym wypadku dalej liczy i sprawdza.
== {{Śródtytuł|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}}{{Code|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}} ==
Funkcja jest rozszerzeniem funkcji: {{LinkŚródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}, dla ustalonych dwóch ostatnich zmiennych, które przyjmują wartość {{Code|true}} (prawdziwą), o nazwach: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}} i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, dla tej funkcji, mamy już zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, i {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, a funkcja w nagłówku je ustala, w wyniku działania w pętli.
Funkcja wyszukuje, od tyłu, w tekście, nabliższej pozycji typu: {{Code|SZABLON}}, {{Code|LINKW}} lub {{Code|LINKZ}}, w danej linii, i zwraca odpowiednio dwie wartości, pozycje wykrytą i wartość logiczną powodzenia, w innym przypadku, pozycję początkową z drugim parametrem fałszem.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|liczba_start_rozdzial}} - jak w: {{LinkPatrz|liczba_start_rozdzial}}, pozycja wyszukiwania końcowa,
** {{Code|liczba_spisowa}} {{Patrz|liczba_spisowa}} - pozycja wyszukiwania początkowa.
Parametry zwracane:
* Pierwszy parametr:
** Pozycja, w którym taką pozycję określona przez funkcję znaleziono, drugi parametr wtedy przyjmuje prawdę, jeśli nie znaleziono, takiej pozycji, to ta pozycja przymuje wartość początkową, adrugi parametr jest fałszem,
* Drugi parametr:
** Czy elementy są odzielone od sibie pewnymi znakami, według tej dokumentacji, i czy to są linki artykułów nieokładkowych dozwolonych, w najbliższej linii, wtedy zwraca w drugim parametrze prawdę, w przecciwnym wypadku, w przypadku znalezienia obiektu w najbliższej linii z: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, ale nie wykryto odpowiwdnich linków, według wspomnianej funkcji, wtedy zwracony ten paramtr będzie fałszem, kub do wyczerpania zasobów, też odpowiadającej fałśzowi,
Funkcja wyszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wykorzystując, że tekst jest zakodowany, i znajduje one przy pomocy wyrażenia regularnego generowanego przez: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, na podstawie kodu, którego fragment jest napisany tutaj:
<syntaxhighlight lang="lua">
local liczba_spisu=liczba_spisowa;
local szablonowe_modul=require("Module:Szablonowe");
---- Ustalenie wzoru kodowania, czyli jest to dowolny kod;
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu()
while(true)do
---- Wyszukuje dowolną linię według wyrażenia regularnego podanego w kodzie, zawartą całkowicie w linii;
local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
</syntaxhighlight>
Fukcja sprawdza, czy dokonano sprawdzenia, jeśli pozytywnie ono przeszło, to musi istnieć zmienna {{Code|liczba_linki_nierozdzialowe_szablonu}} {{Patrz|liczba_linki_nierozdzialowe_szablonu}} oraz musi być spełniona alternatywa dwóch warunków: {{Code|przed_tekst}} {{Patrz|przed_tekst}} musi być puste lub ma spełniać warunek według wzoru: {{Code|<nowiki>^[%p%s%d%.]*$</nowiki>}}.
Jeżeli funkcja nie dopasowała kodu: {{Code|obiekt_szablon}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, do wartości: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, to działa w pętli aż dopasuje je, aż do zakończenia zasobu danych dostępnych w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, jeżeli nie mogła by tego zrobić. A jeśli je dopasowała, to sprawdza, czy te kody są odpowiednimi obiektami, ewentualnie oddzielonych od siebie znakami {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, poprzez sprawdzanie funkcją wspomnianą w nagłówku. Jeśli ta funkcja zwróci wartość prawdziwą, to zwrócone zostaną parametry:
<syntaxhighlight lang="lua">
return liczba_linki_nierozdzialowe_szablonu,true;
</syntaxhighlight>
W innych przypadkach, jeżeli takiego dopasowania nie znalazła, to zwróć szereg wartości:
<syntaxhighlight lang="lua">
return liczba_spisowa,false;
</syntaxhighlight>
W tym przypadku wartość {{Code|liczba_spisowa}} {{LinkPatrz|liczba_spisowa}}, to nic innego jak ostatni argument naszej funkcji, czyli w przypadku niepowoddzenia dopasowania, zwracana jest wartość ta początkowa, zdrugą wartością, że niezaleziono poszukiwanego obiektu.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowychZakresowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowychZakresowych}} ==
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowychZakresowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_pierwszy_rozdzialowy_artykul,liczba_przed_rozdzialem,liczba_start_naglowek_przed,czy_znajdz)...end;
</syntaxhighlight>
Parametry funkcji:
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ro3pfcar7tu84xqux27e2qxy7x26ooo
554594
554559
2026-09-06T10:33:40Z
Persino
2851
/* {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} */
554594
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
Jest to funkcja do sprawdzania tekstu zawartości (tekstu rozdziału, bez zawartości nagłówka) napisu wprowadzenia tekstu sekcji, za pomocą funkcji zwracanej, czy ona spełnia pewne określone warunki.
Funkcja, gdy co jest nie tak, to zwraca wartość {{Code|true}}, i przy okazji może zerować pewne określone zmienne, jeśli ona przy tym została odpowiednio ustawiona, przeciwnie ona zawsze zwraca wartość {{Code|nil}}, czyli nie zwraca żadnej wartości.
Za pomocą tej funkcji można sprawdzić, czy funkcja zawiera niedozwolone znaki wikikodu, i dlatego zwraca tą prawdziwość.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe)
... ---- ciało funkcji zwracanej
end;
end;
</syntaxhighlight>
Parametry ogólne funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|czy_zeruj}} {{Patrz|czy_zeruj}} - czy ma zerować, ścisle określone zmienne, które mieszczą się w niezerowej tablicy zmiennych składowych, tzn. w: {{Code|tab_zmienne}} {{LinkPatrz|tab_zmienne}},
* {{Code|tab_zmienne}} {{Patrz|tab_zmienne}} - zmienne w nim do zerowania,
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Parametry funkcji zwracanej dla tekstu rozważanego: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}:
* {{Code|liczba_koniec_naglowek}} {{Patrz|liczba_koniec_naglowek}} - numer znaku, po którym coś rozważamy,
* {{Code|liczba_obiekt_start_nowe}} {{Patrz|liczba_obiekt_start_nowe}} - numer znaku, przed którym coś rozważamy.
; Sprawdzenie spełnienia warunku, przejście do wnętrza tej instrukcji warunkowej{{dk}}
Funkcja zwracana sprawdza, czy zmienne: {{Code|liczba_koniec_naglowek}} {{LinkPatrz|liczba_koniec_naglowek}}, i {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, istnieją, i te zmienne sugerują punkty znakowe w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, ale jeżeli te zmienne liczbowe punktów znakowych mają takie wartości, że nie da się znaleźć dla tej zmiennej tekstowej treści pomiędzy nimi, to ta funkcja nie zwraca żadnej wartości, to zachodzi, kiedy nie jest spełniony warunek:
<syntaxhighlight lang="lua">
if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then
</syntaxhighlight>
; Sprawdzenie uzyskanej zmiennej tekstowej, będąca tekstem pomiędzy linkiem, a końcem rozdziału{{dk}}
* Liczenie zmiennej tekstowej za pomocą, którą będziemy sprawdzać:
: A jeżeli jest jednak tak, tzn. spełniony jest ten warunek, to znajdujemy taki tekst, robi to za pomocą funkcji: {{LzLua|mw.ustring.sub}}, i zapisuje to pod zmienną {{Code|str}} {{Patrz|str}}.
* Pierwszy etap analizowania tej zmiennej, czy jest poprawna, tzn. czy nie zwraca żadnej wartości, ale czy się zakańcza:
: Następnie sprawdza, czy ona jest w cudzysłowach, tzn. czy spełnia warunek: {{Code|<nowiki>^%s*'+(.+)'+%s*$</nowiki>}}, lub czy początek zaczyna się od znaków: {{Code|<nowiki>^[%*#:;<>]+</nowiki>}}, lub czy ten tekst zawiera dozwolone znaki z przedziału: {{Code|<nowiki>^[%s%p%w]*$</nowiki>}} - tzn. czy tekst składa się ze znaków odstępu, interpunkcyjnych, znaków alfanumerycznych lub z dolnym myślników, jeżeli któreś z tych warunków jest spełnione, to funkcja nie zwraca żadnej wartości, ale zatrzymuje się, tzn. zakańcza się, to oznacza, że wszystko jest w porządku. A jeżeli nie spełnione z żadnych z tych warunków, to ona idzie dalej, i robi następne czynności następne, aby sprawdzić dalsze warunki, czy wszystko jest w porządku.
; Sprawdzanie niepustych linii{{dk}}
* Sprawdzanie niepustych linii po liniach, ewentualnie składających się ze znaków odstępów:
: Funkcja liczy ile takich linii znalał, zapisuje to pod zmienną {{Code|ile}} {{Patrz|ile}}, jeśli wśród takich linii znalazł linie pasujące do: {{Code|<nowiki>^[%*#;:<>]</nowiki>}}, lub składające się znaków odstępów: {{Code|<nowiki>^%s*$</nowiki>}}, wtedy funkcja to liczy licznikiem: {{Code|ile_punktowanych}} {{Patrz|ile_punktowanych}}.
Funkcja w tak wyszukanych liniach w przeciwnym razie sprawdza, w liniach niepasujących do tych wzorów, czy tam są artykuły (strony) nie z rozważanej danej książki, przy pomocy funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, jeśli są takie elementy, to funkcja dodaje to do licznika: {{Code|ile_punktowanych}} {{LinkPatrz|ile_punktowanych}}, aby dodać jeden do licznika, dla każdej takiej linii funkcja sprawdza, czy przynajmniej jeden taki artykuł się znajduje tam, w każdej takiej wykrytej linii.
* Jeśli liczba określona przez zmienną: {{Code|ile_punktowanych}} {{LinkPatrz|ile_punktowanych}}, jeżeli jest co najmniej równa wyszukanym liniom: {{Code|ile}} {{LinkPatrz|ile}}, to funcja się zatrzymuje, i nie zwraca żadnej wartości, czyli wskazuje na powodzenie.
* Gdy liczba tego jest mniejsza niż wykrytych linii, to coś jest nie tak, wtedy funkcja nic nie zwraca, tylko idzie dalej.
; Inne operacje w przypadku niestwierdzenia, jak dotąd niepowodzenia przez funkcję, nie ma jeszcze zwróconej wartości {{nobold|{{Code|nil}}}}{{dk}}
* Zerowanie się pewnych wartości:
** Funkcja z tak policzonego: {{Code|str}} {{LinkPatrz|str}}, usuwa formy kodów z obiektami {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, a jeżeli znalazł w nim same, wtedy znaki odstępów, to ona nie zwraca żadnej wartości, ale się zakańcza, przeciwnie, sprawdza, czy jest zmienna: {{Code|czy_zeruj}} {{LinkPatrz|czy_zeruj}}, która jest prawdziwa, a jeśli tak, to elementy zmiennej: {{Code|tab_zmienne}} {{LinkPatrz|tab_zmienne}} są nilowane, tzn. podzmienne o kluczach:
* {{Code|liczba_nie_okladka_artykul}} {{Patrz|liczba_nie_okladka_artykul}} - liczba pozycji sekcji wskazująca, czy istnieje pierwszy taki artykuł (nie okładka, nie strona niedozwolona) aktualnej książki, lub bezpośrednio taki artykuł, niekoniecznie tej książki, czy znajduje się bezpośrednio w pozycji sekcji, i tylko sam tam się znajduje,
* {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{Patrz|liczba_pierwszy_rozdzialowy_artykul}} - liczba pozycji sekcji, która wskazuje na pierwszy taki wykryty artykuł, licząc od przodu, który spełnia pewne ścisle określone kryteria, jaki może być w książce,
: Kryteria określone przez te zmienne powyżej są określone przez funkcję: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}},
* {{Code|czy_ten_rozdzial}} {{Patrz|czy_ten_rozdzial}} - wartość prawdziwą wskazuje, czy wynilowano zmienne należące do rozważanej tablicy.
Ale niezależnie od wartości: {{Code|czy_zeruj}} {{LinkPatrz|czy_zeruj}}, funkcja wtedy zwraca zawsze wraca wartość {{Code|true}}, czyli ona zwraca to niepowodzenie.
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
Funkcja wyszukuje, od tyłu, kolejne rozdziały (napisy wprowadzenia tekstu), którego tekst rozdziału składa się z samych znaków odstępów, lub jest pusty, albo o poziomie wyższym rozdziałowo, nawet gdy jego tekst rozdziału jednak nie jest pusty.
Funkcja jest przerywana po najbliższych niespełniających warunkach. Funkcja zwraca parametry, z ostatniego pasującego dopasowana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - podczas wyszukiwania od tyłu, do jakiego punktu ma wyszukiwać,
* {{Code|liczba_obiekt_start_nowe}} - jak w: {{LinkPatrz|liczba_obiekt_start_nowe}}, wykorzystywane w funkcji: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, do sprawdzania pomiędzy znakami: końcem wyszukiwanego nagłówka, wraz ze znakiem nowej linii, a tą zmienną, do sprawdzania, czy tekst rozdziału spełnia ściśle określone normy określone przez tą funkcję, jest to pozycja taka na jaką wskazuje również pozycja jakaś artykularna, prze którym sprawdzamy tą funkcją tekst,
* {{Code|liczba_obiekt_start_spac_par}} {{Patrz|liczba_obiekt_start_spac_par}} - numer znaku, od którego ma wyszukiwać od tytułu pewne linie,
* {{Code|czy_dodatni}} {{Patrz|czy_dodatni}} - typ wyszukiwania rozdziałów, tzn. {{LinkZobaczTeż|czy_dodatni}},
* {{Code|czy_bez_naglowka}} {{Patrz|czy_bez_naglowka}} - czy ma wyszukiwać do: {{Code|1}}, od tytułu, a nie do: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}},
* {{Code|AnalizowanieSekcjowe}} {{Patrz|AnalizowanieSekcjowe}} - to nic innego jest, jak funkcja inicjowana przez zwracaną procedurę przez: {{LinkŚródtytuł|p.AnalizowanieSekcjowe}}, która ma w sobie pewne elementy początkowe w sobie wsadzonych jako parametry, które są wykorzystywane prze obiekt przez nią zwracany, która coś robi.
; Typy dopasowywania rozdziałów paarametru{{dk}} {{nobold|czy_dodatni {{Code|{{=}}}} {{LinkPatrz|czy_dodatni}} {{ZobaczTeż|czy_dodatni}}}}{{dk}}
* {{Code|1}} - wyszukuje rozdziały wskazywane przez funkcję: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}},
* {{Code|2}} - wyszukuje pozycje list zaczynające się od znaków: {{Code|<nowiki>[%*#:;<>]+</nowiki>}}, jako pewne rozdziały, które trzeba wyszukać,
* Inna wartość niż dwie powyższe - wtedy są wyszukiwane rozdziały niezaczynające się od: {{Code|<nowiki>[^%*#:;<>\n]</nowiki>}}, i kończące się na dwukropek.
: Dla dwóch ostatnich powyższych punktów są wyszukiwane linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
: Funkcja dla tych dwóch pierwszych sprawdza, tylko raz, czy to jest rozdział spisu treści wskazywaną przez funkcję: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, jeżeli parsowanie przeszło niepomyślnie, a funkcja: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, zrzuci wartość prawdziwą, wtedy ta cała funkcja z nagłówka zrzuca wartość logiczną fałszywą. Ta funkcja wykorzystuje wartość: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, jako drugi parametr, dla którego liczy ona tekst przed, ta zmienna może wskazywać na początek pozycji linii artykularnej (z artykułami), aby ona policzyła swoją wartość.
Funkcja działa w pętli do zakończenia zasobu danych lub w inny sposób, ale też do zakończenia. Funkcja wtedy robi operacje zawsze dla: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} równe {{Code|1}} lub dla tych, gdzie: {{LinkŚródtytuł|p.CzyTamElementyNieSpisoweArtykularne|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, zwraca wartość logiczną prawdziwą, własnie dla tego, jeśli ta operacja zwróci prawdę, to dla tego są dopasowywane elementy zwracane. Wtedy wiadomo, że wyszukane tak pozycje są rozdziałami.
Funkcja zwraca wyniku w postaci wartości szegu zwracanych:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej;
</syntaxhighlight>
Wytłumaczenie tych elementów zrzuconych przez nią dla dopasowań, licząc od tyłu:
; Ostanie dopasowanie nagłówka pasujące, gdy tekst jego rozdziału jest równy znakom odstępu lub jest pusty{{dk}}
* {{Code|liczba_start_naglowek}} - początek ostatniego wyszukanego takiego nagłówka,
* {{Code|liczba_koniec_naglowek_poczt}} - koniec pierwszego wyszukanego nagłówka,
* {{Code|naglowek}} - wartość nagłówka dla tego ostatniego dopasowania,
* {{Code|poziom_naglowka}} - poziom takiego nagłówka,
; Niepasujący nagłówek, wyszukane pierwsze z kolei po pasującym{{dk}}
: Według wartości zwracanych powyższych w pierwszej kolejności, dla którego tekst rozdziału nie jest równa znakom odstępu i nie jest pusty:
* {{Code|liczba_start_naglowek_dalej}} - początek po pasującym tak nagłówku,
* {{Code|liczba_koniec_naglowek_dalej}} - a tutaj jego koniec,
* {{Code|naglowek_dalej}} - wartość tekstu napisu wprowadzenia tekstu,
* {{Code|poziom_naglowek_dalej}} - tutaj jego poziom.
W przypadku nieznalezienia takich nagłówków funkcja nie zwraca niczego.
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
Funkcja służy do zaawansowanego szukania, od tyłu, nagłówków w przeciwieństwie do: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, która służy przede wszystkim do szukania sekcji kolejnych jednego rodzaju, a ta funkcja znajduje się w postaci wielu typów, ona wie, że w tekście może być równy układ nagłówków różnych typów.
Funkcja wyszukuje od tyłu, znajduje parametry ostatniego nagłówka i je zwraca, jeżeli je znalazł, a jeśli nie, to nie zwraca żadnej wartości, tylko funkcja się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Jedynie funkcja nie ma parametru: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, ponieważ ta funkcji nie szuka kolejnych rozdziałów tylko jednego rodzaju, lecz wielu.
=== {{Śródtytuł|str_spacja_lub_zerowy_naglowek}}{{Code|str_spacja_lub_zerowy_naglowek}} ===
Dla każdej takiej niepustej linii, sprawdzane jest, czy to są linie z odstępami lub nie będące elementami listy, ale w sposób rozszerzony, tzn. ten początek nie może składać się z pewnych znaków, czyli: {{Code|<nowiki>^[^%*#:;<>\n]</nowiki>}}.
Funkcja sprawdza, czy liczba takich linii, jest taka sama, ile jest niepustych linii, wtedy funkcja zwraca wartość logiczną prawdziwą, przeciwnie wartość nilową.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local str_spacja_lub_zerowy_naglowek=function(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do sprawdzenia.
=== Ciąg dalszy opisu funkcji ===
; Etapy dopasowania ostatniego dopasowania rozdziałów, jego pozycja w tekście i jego napis wprowadzenia tekstu
* Etap ogólny
Funkcja najpierw wyszukuje rozdziały poprzez wskazanie przez funkcję: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, a jeżeli znalazł artykuł, o niepustych secjach pomiędzy ostatnim wskazanym artykułen (przed artykułem), a rozdziałem, wtedy ta funkcja zwraca wartość logiczną fałszywą i zwraca wartość nilową, czyli nic nie zwraca, i funkcja się zakańcza, i wskazuje, że nie znalazł takiego nagłówka, to się dzieje pod warunkiem, że funkcja: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, została podana, w przeciwnym wypadku, to już tak się nie dzieje, a nagłówek z tego wywołania mógł być znaleziony, ale nie musiał.
; Etapy alternatywy
* Pierwszy etap
** To dotyczy, że znalazł ostatnie dopasowanie, ale niepasującego nagłówka przed nim nie ma.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli tego nie znalazł, wtedy przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, w pętli nieskończonej, najpierw dla parametru: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, najpierw jest to pierwsze, a później to drugie, jeśli z tego pierwszego zostało wykonana komenda przerwania pętli, to drugie dopasowanie nie zostanie wykonane w danym obiegu jego, normalnie, bez tego są dwa wywołania.
W każdym takim wywołaniu i dopasowaniu, w pierwszym, czy drugim, będzie sprawdzane, czy tego dokonano, czy taki nagłówek znaleziono, a jeśli tak, to sprawdzany jest tekst pomiędzy ostatnim końcem w wykrytym nagłówku, a początkiem tego przedostatniego, lub z etapu ogólnego, funkcją: {{LinkŚródtytuł|str_spacja_lub_zerowy_naglowek}}, jeżeli funkcja zwróciła wartość logiczną odpowiadającej fałszywej, to pętla jest przerywana, w przeciwnym wypadku są inicjowane parametry tego dopasowania, które przygotowuje ona zwrócić do funkcji w nagłówku.
: Ogólnie po drugim taki wywołaniu następuje sprawdzenie parametrów zwróconych:
Jeżeli w ostatnim takim wywołaniu w tym funkcja zwraca niedopasowanie, wtedy zwracane jest przerywanie pętli, wtedy mamy parametry ostatniego dopasowania, jeśli istnieją takie.
* Drugi
** To dotyczy, że takiego dopasowania pasującego nie znalazł.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli to znalazł, to wyszukany stąd nagłówek jest rozwijany przy pomocy funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}. Jeżeli parser funkcji nie wykrył wykrzyknika na końcu takiego nagłówka, wtedy jest sprawdzane przy pomocy iteratora w zakodowanym tekście przy pomocy: {{Code|{{m|Szablonowe}}}}, na podstawie: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, czy w nagłówku istnieje artykuły bieżącej ksiązki, czy analizowanej, i czy to nie jest okładka, czy strona niedozwolona. Jeżeli wykryto takie artykuły, lub pętla nie została wykonana, bo nie ma takich wykrytym nagłówku kodów, to funkcja inicjuje parametry zwracanych wartości przez funkcję w nagłówku.
* Trzeci
** To dotyczy pozostałych przypadków, w którym znalazł ostatnie dopasowanie, a niepasujące przed nim też znalazł.
Jest wywoływane wywołanie: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, najpierw w pierwszym wywołaniu dla: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, a w każdym takim wywołaniu po jest sprawdzane, czy tekst pomiędzy końcem ostatniego wykrytego nagłówka, a początkiem przedostatniego nagłówka, a nawet artykułu wykrytego, czyli czy taki tekst rozdziału, czy składa się z samych znaków odstępów, a jeśli tak, to inicjowane są parametry zwracane przez funkcję. Dalej przechodzimy z pierwszego do drugiego wywołania, w którym oba wywołania są podobnie zbudowane.
; Parametry wychodzące z funkcji{{dk}}
* Oto parametry inicjowane przez funkcję w tych powyższych trzech etapach alternatywnych, które na końcu funkcji w nagłówku są zwracane:
: Funkcja zwraca wartości określone przez kod:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka;
</syntaxhighlight>
Wytłumaczenia parametrów zwracanych:
; Parametry określają ostatnie dopasowanie nagłówkowe w wewnątrz funkcji{{dk}}
* {{Code|liczba_start_naglowek}} - początek tego dopasowania,
* {{Code|liczba_koniec_naglowek}} - jego koniec,
* {{Code|naglowek}} - wartość napisu wprowadzenia tekstu nagłówka,
* {{Code|poziom_naglowka}} - poziom tego nagłówka.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
Funkcja służy do wyszukiwania, od tyłu, pozycji artykularnej przed wykrytym ostatnim rozdziałem, lub gdy nie ma rozdziałów, to liczy pozycję tylko artykularną, lub nawet pozycji rozdziałów zerowych spisu treści albo nawet tych z dwukropkiem na końcu danej linii, i szuka od tyłu takie coś, by to uznać za początek spisu treści wyciętej z tekstu zakodowanego spisu, czyli ogólnie mówiąc funkcja szuka dalej takiego początku dalszego.
Funkcja służy też do wydzielania części spisu spełniające powyższe kryteria, aby można było ją parsować przez inne funkcje '''Stronicowego parsera''', do wydzielania dalszych rozdziałów, a z nich wydzielania nagłówków (napisów wprowadzenia tekstu) i tekstów rozdziałów.
Funkcja pętluje przy wykrytych liniach składających się z odstępów, a się zatrzymuje na normalnych danych lub po zakończeniu zasobów.
Główny opis funkcji {{ZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}:
* Funkcja działa w oętli nieskończnonej, aż do zakończenia danych, lub do zwrócenia elementów przez nią,
* W tej pętli funkcja wyszukuje kolejne linie, które nie są pozycjami listy, z którego wyodrębiona linia jest analizowana bez przerwy, jeżeli istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje parametry:
** {{Code|liczba_start}} {{Patrz|liczba_start}} - od której pozycji od tyłu ma wyszukiwać pozycje artykularne,
** {{Code|czy_dalej_rozdzial}} {{Patrz|czy_dalej_rozdzial}} - czy {{ZobaczTeż|czy_dalej_rozdzial}} uznać za pierwszeństwo, w przypadku wykrytego rozdziału dodatniego w linii, lub nie wykrycia takiej linii, która nie jest częścią listy, wtedy jest ważny element (zmienna) {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie jest brane, coś przeciwnego,
** {{Code|liczba_pierwszy_rozdzialowy_artykul}} - jak w: {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}}.
Parametry {{ZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}} zwracane przez funkcję, które są zwracane kolejno w niej na końcu jej działania:
* Początek takiego punktu, uzyskanym w końcu na końcowym obiektu pętli (wyjaśnienie w tekście),
* Liczba znaków odstępów wykrytych poczasz wszystkich obiektów pętli (jest to reprezzentowane przez: {{Code|liczba_spac}} {{Patrz|liczba_spac}}),
* Czy ta tak, uzyskana i zwrócona, linia jest rozdziałem spisu treści (jest to reprezentowane przez: {{Code|czy_spis}} {{Patrz|czy_spis}}).
Etapy zwracania przez funkcję elementów:
; Uzyskanie linii według ogólnego wzoru
* Według {{LinkZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}, tą linia, byłoby takie coś pomiędzy ewentualnie znakami nowymi liniami, która spełnia wzór: {{Code|<nowiki>([^%*#:;<>\n][^\n]*)</nowiki>}}. To wyszukiwanie jest według funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wyszukujący w sposób ogólny linie, niezależnie jak są one realizowane w tekście.
; Początek i koniec uzyskanej linii według powyższego sposobu{{dk}}
* Początek i koniec przechwyconej linii, to są pewne liczby, wraz ze znakami nowej linii, jeśli po któreś stronie istnieją, lub nawet gdy to są w tym elementy, początku lub końca, tekstu, wtedy długość tych elementów jest zero.
; Brak dopasowania linii
* A jeżeli dopasowanie tej linii nie zgłasza niedopasowania, wtedy przy prawdziwości zmiennej: {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według: {{LinkZobaczTeż|czy_dalej_rozdzial}}, zwracane jest: {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie, wartość minimalną, pomiędzy tą zmienną a inną {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}} (jeśli ta zmienna nie istnieje, to domyślnie ma wartość {{Code|1}}).
; Rozdział równaniowy{{dk}}
* Jeżeli tą linią jest rozdział równaniowy, to zwracane jest, jeżeli wartość {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według {{LinkZobaczTeż|czy_dalej_rozdzial}}, ma wartość fałszywą, wtedy jest to dopasowanie końca tej linii, w pierwszym parametrze zwracanym, wraz z innymi danymi, według {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}, a jeżeli ta wartość jest prawdą, to zwracane jest {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, bo w tej funkcji nie ma prawa takich rozdziałów dopasowywać.Ma dopaasowywać tylko normalne linie niebędące pozycjami listy.
; Pierwsze rozgałęzenie specjalne instrukcji warunkowej{{dk}}
: Znaki odstępów - linia to białe znaki:
* Jeżeli linia istnieje i składa się z samych znaków odstępów, to liczmy długość tych znaków, wraz z nowymi liniami po prawej lub lewej stronie, jeśli istnieją, i wsadzamy to do ogólnego licznika {{Code|liczba_spac}} {{LinkPatrz|liczba_spac}}, która jest zwracana na końcu działania funkcji, jako drugi parametr w: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}. Funkcja wykonuje tych okrążeń pętli tyle, ile jest kolejnych linii składających się z tych znaków.
; Przypadek istnienia linii nie składającej się ze znaków odstępów{{dk}}
: Rozdział spisu treści i rozdział zerowy:
* Jeśli linia jest spisem względem {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przyjmuje wartość początkowi takiej ustalonej linii w tekście, a {{Code|czy_spis}} {{LinkPatrz|czy_spis}} przyjmuje wartość prawdziwą.
* A jeśli tak nie jest, to sprawdzamy, czy przed tą linią jest rozdział zerowy na podstawie funkcji: {{LinkŚródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}. Jeżeli ona jest tym rozdziałem, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma już nową wartość, przeciwnie, jeśli ta linia ma na końcu dwukropek, to ta wartość nowa jest równa początkowi wyszukania tej linii, a jeśli nie, to końcowi. Zmienna, czy jest rozdział spisu {{Code|czy_spis}} {{LinkPatrz|czy_spis}} ma wartość prawdziwą, gdy ten rozdział zerowy istnieje, a jeśli nie, to fałszywą.
; Przypadek istnienia, lub nie, rozdziału zerowego{{dk}}
* Jeśli znaleziono taki rozdział (zerowy), to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, to wtedy nie ma żadnych dodatkowych instrukcji do wykonania.
* Punkty zwracania zmiennych, jeśli przeciwnie do poprzedniego:
** Jeśli znaleziono taki spis, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma wartość początkowi takiej linii
** A jeżeli przeciwnie, nie ma w nim kodów, to końcowi, jeśli wyszukana linia nie jest rozdziałem z dwukropkiem na końcu, a jeśli jest, to początkowi tej linii,
*** Wtedy ją, tą uzyskaną z obliczeń, trzeba wliczać w ramach wydzielonego spisu, wtedy zmienna: {{Code|czy_spis}} {{LinkPatrz|czy_spis}}, jest prawdą,
** A jeśli jednak ma je, wtedy, czy linia ma pozycje artykularne, które nie są okładkami lub stronami niedozwolonymi, a jeśli tak jest, na podstawie wywołania funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, to zwracany jest początek wyszukania takiej linii w tej zmiennej, przeciwnie powtarzana jest ta wartość.
*** Wtedy, gdy linia nie ma takich artykułów, wtedy jeśli ona ma dwukropek na końcu, wtedy ustalamy zmienną: {{Code|czy_spis}} {{LinkPatrz|czy_spis}}, na prawdę.
: Na samym końcu zwracane jest to wszystko w postaci parametrów: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}.
== {{Śródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}{{Code|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}} ==
Funkcja wyszukuje, czy dla obiektu o typie {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} o numerze liczbowym {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} - nie jako łańcuch znakowy, dla ich generowanego odpowiednika {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, generowanego z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, są linki w zależności od podanej zmiennej: {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, a jeżeli tam nie ma linków, to przeszukiwany jest {{LinkPatrz|dalszy_tekst}} w ich poszukiwaniu, którymi zrządzą prawa w zależności od przyporządkowanej zmiennej: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, wartość prawdziwa tej zmiennej, włącza dowolność układu obiektów typu: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}.
Funkcja wyszukuje w linii, ale najwierw w: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, a później w: {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, jeżeli w poprzednim nie znalazł, pierwszego takiego linku przyporządkowagp, któremuś z tych obiektów, i przy pierwszym wykryciu zwraca wartość, ale dany obiekt uwwzględniany względem tego poprzedniegomusi spełniać prawa lub nie, w zależności od podanej zmiennej {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieLinkuWeSzablonieOrazDalszymNapisie(obiekt,kod,dalszy_tekst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_oddzielone,czy_wszystkie_linki)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}}, {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|czy_nieoddzielone}} {{Patrz|czy_nieoddzielone}} - czy linki mają być oddzielone interpunkcją, czy odstępami, w przypadu przeciwnym, jeżeli tak nie jest, to funkcja zwraca wartość fałszywą,
** {{Code|czy_wszystkie_linki}} {{Patrz|czy_wszystkie_linki}} - czy uwzględniaj wszystkie linki, czy tylko artykuły, nie okładki, (dozwolone), danej książki,
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy tekst, do przeszukiwania linkowego.
Funkcja zwraca wartość logiczną, jeżeli prawa linkowe tekstu są przyporządkowane przez zmienne: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, to jeśli znalazłeś takie linki, to zwracaj wartość prrawdziwą, a jeśli nie, to fałszywą.
Jeśli zmienna: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, przyjmuje wartość fałszywą, to te rozważane obiekty, muszą być oddzielone pewnymi znakami, tutaj: {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, a jak nie spełniają tego warunku, to funkcja zwraca wartość fałszywą, w innym wypadku dalej liczy i sprawdza.
== {{Śródtytuł|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}}{{Code|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}} ==
Funkcja jest rozszerzeniem funkcji: {{LinkŚródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}, dla ustalonych dwóch ostatnich zmiennych, które przyjmują wartość {{Code|true}} (prawdziwą), o nazwach: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}} i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, dla tej funkcji, mamy już zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, i {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, a funkcja w nagłówku je ustala, w wyniku działania w pętli.
Funkcja wyszukuje, od tyłu, w tekście, nabliższej pozycji typu: {{Code|SZABLON}}, {{Code|LINKW}} lub {{Code|LINKZ}}, w danej linii, i zwraca odpowiednio dwie wartości, pozycje wykrytą i wartość logiczną powodzenia, w innym przypadku, pozycję początkową z drugim parametrem fałszem.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|liczba_start_rozdzial}} - jak w: {{LinkPatrz|liczba_start_rozdzial}}, pozycja wyszukiwania końcowa,
** {{Code|liczba_spisowa}} {{Patrz|liczba_spisowa}} - pozycja wyszukiwania początkowa.
Parametry zwracane:
* Pierwszy parametr:
** Pozycja, w którym taką pozycję określona przez funkcję znaleziono, drugi parametr wtedy przyjmuje prawdę, jeśli nie znaleziono, takiej pozycji, to ta pozycja przymuje wartość początkową, adrugi parametr jest fałszem,
* Drugi parametr:
** Czy elementy są odzielone od sibie pewnymi znakami, według tej dokumentacji, i czy to są linki artykułów nieokładkowych dozwolonych, w najbliższej linii, wtedy zwraca w drugim parametrze prawdę, w przecciwnym wypadku, w przypadku znalezienia obiektu w najbliższej linii z: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, ale nie wykryto odpowiwdnich linków, według wspomnianej funkcji, wtedy zwracony ten paramtr będzie fałszem, kub do wyczerpania zasobów, też odpowiadającej fałśzowi,
Funkcja wyszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wykorzystując, że tekst jest zakodowany, i znajduje one przy pomocy wyrażenia regularnego generowanego przez: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, na podstawie kodu, którego fragment jest napisany tutaj:
<syntaxhighlight lang="lua">
local liczba_spisu=liczba_spisowa;
local szablonowe_modul=require("Module:Szablonowe");
---- Ustalenie wzoru kodowania, czyli jest to dowolny kod;
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu()
while(true)do
---- Wyszukuje dowolną linię według wyrażenia regularnego podanego w kodzie, zawartą całkowicie w linii;
local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
</syntaxhighlight>
Fukcja sprawdza, czy dokonano sprawdzenia, jeśli pozytywnie ono przeszło, to musi istnieć zmienna {{Code|liczba_linki_nierozdzialowe_szablonu}} {{Patrz|liczba_linki_nierozdzialowe_szablonu}} oraz musi być spełniona alternatywa dwóch warunków: {{Code|przed_tekst}} {{Patrz|przed_tekst}} musi być puste lub ma spełniać warunek według wzoru: {{Code|<nowiki>^[%p%s%d%.]*$</nowiki>}}.
Jeżeli funkcja nie dopasowała kodu: {{Code|obiekt_szablon}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, do wartości: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, to działa w pętli aż dopasuje je, aż do zakończenia zasobu danych dostępnych w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, jeżeli nie mogła by tego zrobić. A jeśli je dopasowała, to sprawdza, czy te kody są odpowiednimi obiektami, ewentualnie oddzielonych od siebie znakami {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, poprzez sprawdzanie funkcją wspomnianą w nagłówku. Jeśli ta funkcja zwróci wartość prawdziwą, to zwrócone zostaną parametry:
<syntaxhighlight lang="lua">
return liczba_linki_nierozdzialowe_szablonu,true;
</syntaxhighlight>
W innych przypadkach, jeżeli takiego dopasowania nie znalazła, to zwróć szereg wartości:
<syntaxhighlight lang="lua">
return liczba_spisowa,false;
</syntaxhighlight>
W tym przypadku wartość {{Code|liczba_spisowa}} {{LinkPatrz|liczba_spisowa}}, to nic innego jak ostatni argument naszej funkcji, czyli w przypadku niepowoddzenia dopasowania, zwracana jest wartość ta początkowa, zdrugą wartością, że niezaleziono poszukiwanego obiektu.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowychZakresowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowychZakresowych}} ==
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowychZakresowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_pierwszy_rozdzialowy_artykul,liczba_przed_rozdzialem,liczba_start_naglowek_przed,czy_znajdz)...end;
</syntaxhighlight>
Parametry funkcji:
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
6zxq0xze2qupo04p6j8uz00774l5kjs
554595
554594
2026-09-06T10:39:35Z
Persino
2851
/* {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} */
554595
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
Jest to funkcja do sprawdzania tekstu zawartości (tekstu rozdziału, bez zawartości nagłówka) napisu wprowadzenia tekstu sekcji, za pomocą funkcji zwracanej, czy ona spełnia pewne określone warunki.
Funkcja, gdy co jest nie tak, to zwraca wartość {{Code|true}}, i przy okazji może zerować pewne określone zmienne, jeśli ona przy tym została odpowiednio ustawiona, przeciwnie ona zawsze zwraca wartość {{Code|nil}}, czyli nie zwraca żadnej wartości.
Za pomocą tej funkcji można sprawdzić, czy funkcja zawiera niedozwolone znaki wikikodu, i dlatego zwraca tą prawdziwość.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe)
... ---- ciało funkcji zwracanej
end;
end;
</syntaxhighlight>
Parametry ogólne funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|czy_zeruj}} {{Patrz|czy_zeruj}} - czy ma zerować, ścisle określone zmienne, które mieszczą się w niezerowej tablicy zmiennych składowych, tzn. w: {{Code|tab_zmienne}} {{LinkPatrz|tab_zmienne}},
* {{Code|tab_zmienne}} {{Patrz|tab_zmienne}} - zmienne w nim do zerowania,
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Parametry funkcji zwracanej dla tekstu rozważanego: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}:
* {{Code|liczba_koniec_naglowek}} {{Patrz|liczba_koniec_naglowek}} - numer znaku, po którym coś rozważamy,
* {{Code|liczba_obiekt_start_nowe}} {{Patrz|liczba_obiekt_start_nowe}} - numer znaku, przed którym coś rozważamy.
; Sprawdzenie spełnienia warunku, przejście do wnętrza tej instrukcji warunkowej{{dk}}
Funkcja zwracana sprawdza, czy zmienne: {{Code|liczba_koniec_naglowek}} {{LinkPatrz|liczba_koniec_naglowek}}, i {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, istnieją, i te zmienne sugerują punkty znakowe w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, ale jeżeli te zmienne liczbowe punktów znakowych mają takie wartości, że nie da się znaleźć dla tej zmiennej tekstowej treści pomiędzy nimi, to ta funkcja nie zwraca żadnej wartości, to zachodzi, kiedy nie jest spełniony warunek:
<syntaxhighlight lang="lua">
if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then
</syntaxhighlight>
; Sprawdzenie uzyskanej zmiennej tekstowej, będąca tekstem pomiędzy linkiem, a końcem rozdziału{{dk}}
* Liczenie zmiennej tekstowej za pomocą, którą będziemy sprawdzać:
: A jeżeli jest jednak tak, tzn. spełniony jest ten warunek, to znajdujemy taki tekst, robi to za pomocą funkcji: {{LzLua|mw.ustring.sub}}, i zapisuje to pod zmienną {{Code|str}} {{Patrz|str}}.
* Pierwszy etap analizowania tej zmiennej, czy jest poprawna, tzn. czy nie zwraca żadnej wartości, ale czy się zakańcza:
: Następnie sprawdza, czy ona jest w cudzysłowach, tzn. czy spełnia warunek: {{Code|<nowiki>^%s*'+(.+)'+%s*$</nowiki>}}, lub czy początek zaczyna się od znaków: {{Code|<nowiki>^[%*#:;<>]+</nowiki>}}, lub czy ten tekst zawiera dozwolone znaki z przedziału: {{Code|<nowiki>^[%s%p%w]*$</nowiki>}} - tzn. czy tekst składa się ze znaków odstępu, interpunkcyjnych, znaków alfanumerycznych lub z dolnym myślników, jeżeli któreś z tych warunków jest spełnione, to funkcja nie zwraca żadnej wartości, ale zatrzymuje się, tzn. zakańcza się, to oznacza, że wszystko jest w porządku. A jeżeli nie spełnione z żadnych z tych warunków, to ona idzie dalej, i robi następne czynności następne, aby sprawdzić dalsze warunki, czy wszystko jest w porządku.
; Sprawdzanie niepustych linii{{dk}}
* Sprawdzanie niepustych linii po liniach, ewentualnie składających się ze znaków odstępów:
: Funkcja liczy ile takich linii znalał, zapisuje to pod zmienną {{Code|ile}} {{Patrz|ile}}, jeśli wśród takich linii znalazł linie pasujące do: {{Code|<nowiki>^[%*#;:<>]</nowiki>}}, lub składające się znaków odstępów: {{Code|<nowiki>^%s*$</nowiki>}}, wtedy funkcja to liczy licznikiem: {{Code|ile_punktowanych}} {{Patrz|ile_punktowanych}}.
Funkcja w tak wyszukanych liniach w przeciwnym razie sprawdza, w liniach niepasujących do tych wzorów, czy tam są artykuły (strony) nie z rozważanej danej książki, przy pomocy funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, jeśli są takie elementy, to funkcja dodaje to do licznika: {{Code|ile_punktowanych}} {{LinkPatrz|ile_punktowanych}}, aby dodać jeden do licznika, dla każdej takiej linii funkcja sprawdza, czy przynajmniej jeden taki artykuł się znajduje tam, w każdej takiej wykrytej linii.
* Jeśli liczba określona przez zmienną: {{Code|ile_punktowanych}} {{LinkPatrz|ile_punktowanych}}, jeżeli jest co najmniej równa wyszukanym liniom: {{Code|ile}} {{LinkPatrz|ile}}, to funcja się zatrzymuje, i nie zwraca żadnej wartości, czyli wskazuje na powodzenie.
* Gdy liczba tego jest mniejsza niż wykrytych linii, to coś jest nie tak, wtedy funkcja nic nie zwraca, tylko idzie dalej.
; Inne operacje w przypadku niestwierdzenia, jak dotąd niepowodzenia przez funkcję, nie ma jeszcze zwróconej wartości {{nobold|{{Code|nil}}}}{{dk}}
* Zerowanie się pewnych wartości:
** Funkcja z tak policzonego: {{Code|str}} {{LinkPatrz|str}}, usuwa formy kodów z obiektami {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, a jeżeli znalazł w nim same, wtedy znaki odstępów, to ona nie zwraca żadnej wartości, ale się zakańcza, przeciwnie, sprawdza, czy jest zmienna: {{Code|czy_zeruj}} {{LinkPatrz|czy_zeruj}}, która jest prawdziwa, a jeśli tak, to elementy zmiennej: {{Code|tab_zmienne}} {{LinkPatrz|tab_zmienne}} są nilowane, tzn. podzmienne o kluczach:
* {{Code|liczba_nie_okladka_artykul}} {{Patrz|liczba_nie_okladka_artykul}} - liczba pozycji sekcji wskazująca, czy istnieje pierwszy taki artykuł (nie okładka, nie strona niedozwolona) aktualnej książki, lub bezpośrednio taki artykuł, niekoniecznie tej książki, czy znajduje się bezpośrednio w pozycji sekcji, i tylko sam tam się znajduje,
* {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{Patrz|liczba_pierwszy_rozdzialowy_artykul}} - liczba pozycji sekcji, która wskazuje na pierwszy taki wykryty artykuł, licząc od przodu, który spełnia pewne ścisle określone kryteria, jaki może być w książce,
: Kryteria określone przez te zmienne powyżej są określone przez funkcję: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}},
* {{Code|czy_ten_rozdzial}} {{Patrz|czy_ten_rozdzial}} - wartość prawdziwą wskazuje, czy wynilowano zmienne należące do rozważanej tablicy.
Ale niezależnie od wartości: {{Code|czy_zeruj}} {{LinkPatrz|czy_zeruj}}, funkcja wtedy zwraca zawsze wraca wartość {{Code|true}}, czyli ona zwraca to niepowodzenie.
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
Funkcja wyszukuje, od tyłu, kolejne rozdziały (napisy wprowadzenia tekstu), którego tekst rozdziału składa się z samych znaków odstępów, lub jest pusty, albo o poziomie wyższym rozdziałowo, nawet gdy jego tekst rozdziału jednak nie jest pusty.
Funkcja jest przerywana po najbliższych niespełniających warunkach. Funkcja zwraca parametry, z ostatniego pasującego dopasowana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - podczas wyszukiwania od tyłu, do jakiego punktu ma wyszukiwać,
* {{Code|liczba_obiekt_start_nowe}} - jak w: {{LinkPatrz|liczba_obiekt_start_nowe}}, wykorzystywane w funkcji: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, do sprawdzania pomiędzy znakami: końcem wyszukiwanego nagłówka, wraz ze znakiem nowej linii, a tą zmienną, robimy to do sprawdzania, czy tekst rozdziału spełnia ściśle określone normy określone przez tą funkcję. To jest to pozycja taka, na jaką wskazuje również pozycja jakaś artykularna, prze którym sprawdzamy tą funkcją tekst.
* {{Code|liczba_obiekt_start_spac_par}} {{Patrz|liczba_obiekt_start_spac_par}} - numer znaku, od którego ma wyszukiwać od tytułu pewne linie,
* {{Code|czy_dodatni}} {{Patrz|czy_dodatni}} - typ wyszukiwania rozdziałów, tzn. {{LinkZobaczTeż|czy_dodatni}},
* {{Code|czy_bez_naglowka}} {{Patrz|czy_bez_naglowka}} - czy ma wyszukiwać do: {{Code|1}}, od tytułu, a nie do: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}},
* {{Code|AnalizowanieSekcjowe}} {{Patrz|AnalizowanieSekcjowe}} - to nic innego jest, jak funkcja inicjowana przez zwracaną procedurę przez: {{LinkŚródtytuł|p.AnalizowanieSekcjowe}}, która ma w sobie pewne elementy początkowe w sobie wsadzonych jako parametry, które są wykorzystywane prze obiekt przez nią zwracany, która coś robi.
; Typy dopasowywania rozdziałów paarametru{{dk}} {{nobold|czy_dodatni {{Code|{{=}}}} {{LinkPatrz|czy_dodatni}} {{ZobaczTeż|czy_dodatni}}}}{{dk}}
* {{Code|1}} - wyszukuje rozdziały wskazywane przez funkcję: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}},
* {{Code|2}} - wyszukuje pozycje list zaczynające się od znaków: {{Code|<nowiki>[%*#:;<>]+</nowiki>}}, jako pewne rozdziały, które trzeba wyszukać,
* Inna wartość niż dwie powyższe - wtedy są wyszukiwane rozdziały niezaczynające się od: {{Code|<nowiki>[^%*#:;<>\n]</nowiki>}}, i kończące się na dwukropek.
: Dla dwóch ostatnich powyższych punktów są wyszukiwane linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
: Funkcja dla tych dwóch pierwszych sprawdza, tylko raz, czy to jest rozdział spisu treści wskazywaną przez funkcję: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, jeżeli parsowanie przeszło niepomyślnie, a funkcja: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, zrzuci wartość prawdziwą, wtedy ta cała funkcja z nagłówka zrzuca wartość logiczną fałszywą. Ta funkcja wykorzystuje wartość: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, jako drugi parametr, dla którego liczy ona tekst przed, ta zmienna może wskazywać na początek pozycji linii artykularnej (z artykułami), aby ona policzyła swoją wartość.
Funkcja działa w pętli do zakończenia zasobu danych lub w inny sposób, ale też do zakończenia. Funkcja wtedy robi operacje zawsze dla: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} równe {{Code|1}} lub dla tych, gdzie: {{LinkŚródtytuł|p.CzyTamElementyNieSpisoweArtykularne|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, zwraca wartość logiczną prawdziwą, własnie dla tego, jeśli ta operacja zwróci prawdę, to dla tego są dopasowywane elementy zwracane. Wtedy wiadomo, że wyszukane tak pozycje są rozdziałami.
Funkcja zwraca wyniku w postaci wartości szegu zwracanych:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej;
</syntaxhighlight>
Wytłumaczenie tych elementów zrzuconych przez nią dla dopasowań, licząc od tyłu:
; Ostanie dopasowanie nagłówka pasujące, gdy tekst jego rozdziału jest równy znakom odstępu lub jest pusty{{dk}}
* {{Code|liczba_start_naglowek}} - początek ostatniego wyszukanego takiego nagłówka,
* {{Code|liczba_koniec_naglowek_poczt}} - koniec pierwszego wyszukanego nagłówka,
* {{Code|naglowek}} - wartość nagłówka dla tego ostatniego dopasowania,
* {{Code|poziom_naglowka}} - poziom takiego nagłówka,
; Niepasujący nagłówek, wyszukane pierwsze z kolei po pasującym{{dk}}
: Według wartości zwracanych powyższych w pierwszej kolejności, dla którego tekst rozdziału nie jest równa znakom odstępu i nie jest pusty:
* {{Code|liczba_start_naglowek_dalej}} - początek po pasującym tak nagłówku,
* {{Code|liczba_koniec_naglowek_dalej}} - a tutaj jego koniec,
* {{Code|naglowek_dalej}} - wartość tekstu napisu wprowadzenia tekstu,
* {{Code|poziom_naglowek_dalej}} - tutaj jego poziom.
W przypadku nieznalezienia takich nagłówków funkcja nie zwraca niczego.
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
Funkcja służy do zaawansowanego szukania, od tyłu, nagłówków w przeciwieństwie do: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, która służy przede wszystkim do szukania sekcji kolejnych jednego rodzaju, a ta funkcja znajduje się w postaci wielu typów, ona wie, że w tekście może być równy układ nagłówków różnych typów.
Funkcja wyszukuje od tyłu, znajduje parametry ostatniego nagłówka i je zwraca, jeżeli je znalazł, a jeśli nie, to nie zwraca żadnej wartości, tylko funkcja się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Jedynie funkcja nie ma parametru: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, ponieważ ta funkcji nie szuka kolejnych rozdziałów tylko jednego rodzaju, lecz wielu.
=== {{Śródtytuł|str_spacja_lub_zerowy_naglowek}}{{Code|str_spacja_lub_zerowy_naglowek}} ===
Dla każdej takiej niepustej linii, sprawdzane jest, czy to są linie z odstępami lub nie będące elementami listy, ale w sposób rozszerzony, tzn. ten początek nie może składać się z pewnych znaków, czyli: {{Code|<nowiki>^[^%*#:;<>\n]</nowiki>}}.
Funkcja sprawdza, czy liczba takich linii, jest taka sama, ile jest niepustych linii, wtedy funkcja zwraca wartość logiczną prawdziwą, przeciwnie wartość nilową.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local str_spacja_lub_zerowy_naglowek=function(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do sprawdzenia.
=== Ciąg dalszy opisu funkcji ===
; Etapy dopasowania ostatniego dopasowania rozdziałów, jego pozycja w tekście i jego napis wprowadzenia tekstu
* Etap ogólny
Funkcja najpierw wyszukuje rozdziały poprzez wskazanie przez funkcję: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, a jeżeli znalazł artykuł, o niepustych secjach pomiędzy ostatnim wskazanym artykułen (przed artykułem), a rozdziałem, wtedy ta funkcja zwraca wartość logiczną fałszywą i zwraca wartość nilową, czyli nic nie zwraca, i funkcja się zakańcza, i wskazuje, że nie znalazł takiego nagłówka, to się dzieje pod warunkiem, że funkcja: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, została podana, w przeciwnym wypadku, to już tak się nie dzieje, a nagłówek z tego wywołania mógł być znaleziony, ale nie musiał.
; Etapy alternatywy
* Pierwszy etap
** To dotyczy, że znalazł ostatnie dopasowanie, ale niepasującego nagłówka przed nim nie ma.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli tego nie znalazł, wtedy przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, w pętli nieskończonej, najpierw dla parametru: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, najpierw jest to pierwsze, a później to drugie, jeśli z tego pierwszego zostało wykonana komenda przerwania pętli, to drugie dopasowanie nie zostanie wykonane w danym obiegu jego, normalnie, bez tego są dwa wywołania.
W każdym takim wywołaniu i dopasowaniu, w pierwszym, czy drugim, będzie sprawdzane, czy tego dokonano, czy taki nagłówek znaleziono, a jeśli tak, to sprawdzany jest tekst pomiędzy ostatnim końcem w wykrytym nagłówku, a początkiem tego przedostatniego, lub z etapu ogólnego, funkcją: {{LinkŚródtytuł|str_spacja_lub_zerowy_naglowek}}, jeżeli funkcja zwróciła wartość logiczną odpowiadającej fałszywej, to pętla jest przerywana, w przeciwnym wypadku są inicjowane parametry tego dopasowania, które przygotowuje ona zwrócić do funkcji w nagłówku.
: Ogólnie po drugim taki wywołaniu następuje sprawdzenie parametrów zwróconych:
Jeżeli w ostatnim takim wywołaniu w tym funkcja zwraca niedopasowanie, wtedy zwracane jest przerywanie pętli, wtedy mamy parametry ostatniego dopasowania, jeśli istnieją takie.
* Drugi
** To dotyczy, że takiego dopasowania pasującego nie znalazł.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli to znalazł, to wyszukany stąd nagłówek jest rozwijany przy pomocy funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}. Jeżeli parser funkcji nie wykrył wykrzyknika na końcu takiego nagłówka, wtedy jest sprawdzane przy pomocy iteratora w zakodowanym tekście przy pomocy: {{Code|{{m|Szablonowe}}}}, na podstawie: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, czy w nagłówku istnieje artykuły bieżącej ksiązki, czy analizowanej, i czy to nie jest okładka, czy strona niedozwolona. Jeżeli wykryto takie artykuły, lub pętla nie została wykonana, bo nie ma takich wykrytym nagłówku kodów, to funkcja inicjuje parametry zwracanych wartości przez funkcję w nagłówku.
* Trzeci
** To dotyczy pozostałych przypadków, w którym znalazł ostatnie dopasowanie, a niepasujące przed nim też znalazł.
Jest wywoływane wywołanie: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, najpierw w pierwszym wywołaniu dla: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, a w każdym takim wywołaniu po jest sprawdzane, czy tekst pomiędzy końcem ostatniego wykrytego nagłówka, a początkiem przedostatniego nagłówka, a nawet artykułu wykrytego, czyli czy taki tekst rozdziału, czy składa się z samych znaków odstępów, a jeśli tak, to inicjowane są parametry zwracane przez funkcję. Dalej przechodzimy z pierwszego do drugiego wywołania, w którym oba wywołania są podobnie zbudowane.
; Parametry wychodzące z funkcji{{dk}}
* Oto parametry inicjowane przez funkcję w tych powyższych trzech etapach alternatywnych, które na końcu funkcji w nagłówku są zwracane:
: Funkcja zwraca wartości określone przez kod:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka;
</syntaxhighlight>
Wytłumaczenia parametrów zwracanych:
; Parametry określają ostatnie dopasowanie nagłówkowe w wewnątrz funkcji{{dk}}
* {{Code|liczba_start_naglowek}} - początek tego dopasowania,
* {{Code|liczba_koniec_naglowek}} - jego koniec,
* {{Code|naglowek}} - wartość napisu wprowadzenia tekstu nagłówka,
* {{Code|poziom_naglowka}} - poziom tego nagłówka.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
Funkcja służy do wyszukiwania, od tyłu, pozycji artykularnej przed wykrytym ostatnim rozdziałem, lub gdy nie ma rozdziałów, to liczy pozycję tylko artykularną, lub nawet pozycji rozdziałów zerowych spisu treści albo nawet tych z dwukropkiem na końcu danej linii, i szuka od tyłu takie coś, by to uznać za początek spisu treści wyciętej z tekstu zakodowanego spisu, czyli ogólnie mówiąc funkcja szuka dalej takiego początku dalszego.
Funkcja służy też do wydzielania części spisu spełniające powyższe kryteria, aby można było ją parsować przez inne funkcje '''Stronicowego parsera''', do wydzielania dalszych rozdziałów, a z nich wydzielania nagłówków (napisów wprowadzenia tekstu) i tekstów rozdziałów.
Funkcja pętluje przy wykrytych liniach składających się z odstępów, a się zatrzymuje na normalnych danych lub po zakończeniu zasobów.
Główny opis funkcji {{ZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}:
* Funkcja działa w oętli nieskończnonej, aż do zakończenia danych, lub do zwrócenia elementów przez nią,
* W tej pętli funkcja wyszukuje kolejne linie, które nie są pozycjami listy, z którego wyodrębiona linia jest analizowana bez przerwy, jeżeli istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje parametry:
** {{Code|liczba_start}} {{Patrz|liczba_start}} - od której pozycji od tyłu ma wyszukiwać pozycje artykularne,
** {{Code|czy_dalej_rozdzial}} {{Patrz|czy_dalej_rozdzial}} - czy {{ZobaczTeż|czy_dalej_rozdzial}} uznać za pierwszeństwo, w przypadku wykrytego rozdziału dodatniego w linii, lub nie wykrycia takiej linii, która nie jest częścią listy, wtedy jest ważny element (zmienna) {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie jest brane, coś przeciwnego,
** {{Code|liczba_pierwszy_rozdzialowy_artykul}} - jak w: {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}}.
Parametry {{ZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}} zwracane przez funkcję, które są zwracane kolejno w niej na końcu jej działania:
* Początek takiego punktu, uzyskanym w końcu na końcowym obiektu pętli (wyjaśnienie w tekście),
* Liczba znaków odstępów wykrytych poczasz wszystkich obiektów pętli (jest to reprezzentowane przez: {{Code|liczba_spac}} {{Patrz|liczba_spac}}),
* Czy ta tak, uzyskana i zwrócona, linia jest rozdziałem spisu treści (jest to reprezentowane przez: {{Code|czy_spis}} {{Patrz|czy_spis}}).
Etapy zwracania przez funkcję elementów:
; Uzyskanie linii według ogólnego wzoru
* Według {{LinkZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}, tą linia, byłoby takie coś pomiędzy ewentualnie znakami nowymi liniami, która spełnia wzór: {{Code|<nowiki>([^%*#:;<>\n][^\n]*)</nowiki>}}. To wyszukiwanie jest według funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wyszukujący w sposób ogólny linie, niezależnie jak są one realizowane w tekście.
; Początek i koniec uzyskanej linii według powyższego sposobu{{dk}}
* Początek i koniec przechwyconej linii, to są pewne liczby, wraz ze znakami nowej linii, jeśli po któreś stronie istnieją, lub nawet gdy to są w tym elementy, początku lub końca, tekstu, wtedy długość tych elementów jest zero.
; Brak dopasowania linii
* A jeżeli dopasowanie tej linii nie zgłasza niedopasowania, wtedy przy prawdziwości zmiennej: {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według: {{LinkZobaczTeż|czy_dalej_rozdzial}}, zwracane jest: {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie, wartość minimalną, pomiędzy tą zmienną a inną {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}} (jeśli ta zmienna nie istnieje, to domyślnie ma wartość {{Code|1}}).
; Rozdział równaniowy{{dk}}
* Jeżeli tą linią jest rozdział równaniowy, to zwracane jest, jeżeli wartość {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według {{LinkZobaczTeż|czy_dalej_rozdzial}}, ma wartość fałszywą, wtedy jest to dopasowanie końca tej linii, w pierwszym parametrze zwracanym, wraz z innymi danymi, według {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}, a jeżeli ta wartość jest prawdą, to zwracane jest {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, bo w tej funkcji nie ma prawa takich rozdziałów dopasowywać.Ma dopaasowywać tylko normalne linie niebędące pozycjami listy.
; Pierwsze rozgałęzenie specjalne instrukcji warunkowej{{dk}}
: Znaki odstępów - linia to białe znaki:
* Jeżeli linia istnieje i składa się z samych znaków odstępów, to liczmy długość tych znaków, wraz z nowymi liniami po prawej lub lewej stronie, jeśli istnieją, i wsadzamy to do ogólnego licznika {{Code|liczba_spac}} {{LinkPatrz|liczba_spac}}, która jest zwracana na końcu działania funkcji, jako drugi parametr w: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}. Funkcja wykonuje tych okrążeń pętli tyle, ile jest kolejnych linii składających się z tych znaków.
; Przypadek istnienia linii nie składającej się ze znaków odstępów{{dk}}
: Rozdział spisu treści i rozdział zerowy:
* Jeśli linia jest spisem względem {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przyjmuje wartość początkowi takiej ustalonej linii w tekście, a {{Code|czy_spis}} {{LinkPatrz|czy_spis}} przyjmuje wartość prawdziwą.
* A jeśli tak nie jest, to sprawdzamy, czy przed tą linią jest rozdział zerowy na podstawie funkcji: {{LinkŚródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}. Jeżeli ona jest tym rozdziałem, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma już nową wartość, przeciwnie, jeśli ta linia ma na końcu dwukropek, to ta wartość nowa jest równa początkowi wyszukania tej linii, a jeśli nie, to końcowi. Zmienna, czy jest rozdział spisu {{Code|czy_spis}} {{LinkPatrz|czy_spis}} ma wartość prawdziwą, gdy ten rozdział zerowy istnieje, a jeśli nie, to fałszywą.
; Przypadek istnienia, lub nie, rozdziału zerowego{{dk}}
* Jeśli znaleziono taki rozdział (zerowy), to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, to wtedy nie ma żadnych dodatkowych instrukcji do wykonania.
* Punkty zwracania zmiennych, jeśli przeciwnie do poprzedniego:
** Jeśli znaleziono taki spis, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma wartość początkowi takiej linii
** A jeżeli przeciwnie, nie ma w nim kodów, to końcowi, jeśli wyszukana linia nie jest rozdziałem z dwukropkiem na końcu, a jeśli jest, to początkowi tej linii,
*** Wtedy ją, tą uzyskaną z obliczeń, trzeba wliczać w ramach wydzielonego spisu, wtedy zmienna: {{Code|czy_spis}} {{LinkPatrz|czy_spis}}, jest prawdą,
** A jeśli jednak ma je, wtedy, czy linia ma pozycje artykularne, które nie są okładkami lub stronami niedozwolonymi, a jeśli tak jest, na podstawie wywołania funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, to zwracany jest początek wyszukania takiej linii w tej zmiennej, przeciwnie powtarzana jest ta wartość.
*** Wtedy, gdy linia nie ma takich artykułów, wtedy jeśli ona ma dwukropek na końcu, wtedy ustalamy zmienną: {{Code|czy_spis}} {{LinkPatrz|czy_spis}}, na prawdę.
: Na samym końcu zwracane jest to wszystko w postaci parametrów: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}.
== {{Śródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}{{Code|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}} ==
Funkcja wyszukuje, czy dla obiektu o typie {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} o numerze liczbowym {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} - nie jako łańcuch znakowy, dla ich generowanego odpowiednika {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, generowanego z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, są linki w zależności od podanej zmiennej: {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, a jeżeli tam nie ma linków, to przeszukiwany jest {{LinkPatrz|dalszy_tekst}} w ich poszukiwaniu, którymi zrządzą prawa w zależności od przyporządkowanej zmiennej: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, wartość prawdziwa tej zmiennej, włącza dowolność układu obiektów typu: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}.
Funkcja wyszukuje w linii, ale najwierw w: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, a później w: {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, jeżeli w poprzednim nie znalazł, pierwszego takiego linku przyporządkowagp, któremuś z tych obiektów, i przy pierwszym wykryciu zwraca wartość, ale dany obiekt uwwzględniany względem tego poprzedniegomusi spełniać prawa lub nie, w zależności od podanej zmiennej {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieLinkuWeSzablonieOrazDalszymNapisie(obiekt,kod,dalszy_tekst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_oddzielone,czy_wszystkie_linki)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}}, {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|czy_nieoddzielone}} {{Patrz|czy_nieoddzielone}} - czy linki mają być oddzielone interpunkcją, czy odstępami, w przypadu przeciwnym, jeżeli tak nie jest, to funkcja zwraca wartość fałszywą,
** {{Code|czy_wszystkie_linki}} {{Patrz|czy_wszystkie_linki}} - czy uwzględniaj wszystkie linki, czy tylko artykuły, nie okładki, (dozwolone), danej książki,
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy tekst, do przeszukiwania linkowego.
Funkcja zwraca wartość logiczną, jeżeli prawa linkowe tekstu są przyporządkowane przez zmienne: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, to jeśli znalazłeś takie linki, to zwracaj wartość prrawdziwą, a jeśli nie, to fałszywą.
Jeśli zmienna: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, przyjmuje wartość fałszywą, to te rozważane obiekty, muszą być oddzielone pewnymi znakami, tutaj: {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, a jak nie spełniają tego warunku, to funkcja zwraca wartość fałszywą, w innym wypadku dalej liczy i sprawdza.
== {{Śródtytuł|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}}{{Code|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}} ==
Funkcja jest rozszerzeniem funkcji: {{LinkŚródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}, dla ustalonych dwóch ostatnich zmiennych, które przyjmują wartość {{Code|true}} (prawdziwą), o nazwach: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}} i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, dla tej funkcji, mamy już zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, i {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, a funkcja w nagłówku je ustala, w wyniku działania w pętli.
Funkcja wyszukuje, od tyłu, w tekście, nabliższej pozycji typu: {{Code|SZABLON}}, {{Code|LINKW}} lub {{Code|LINKZ}}, w danej linii, i zwraca odpowiednio dwie wartości, pozycje wykrytą i wartość logiczną powodzenia, w innym przypadku, pozycję początkową z drugim parametrem fałszem.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|liczba_start_rozdzial}} - jak w: {{LinkPatrz|liczba_start_rozdzial}}, pozycja wyszukiwania końcowa,
** {{Code|liczba_spisowa}} {{Patrz|liczba_spisowa}} - pozycja wyszukiwania początkowa.
Parametry zwracane:
* Pierwszy parametr:
** Pozycja, w którym taką pozycję określona przez funkcję znaleziono, drugi parametr wtedy przyjmuje prawdę, jeśli nie znaleziono, takiej pozycji, to ta pozycja przymuje wartość początkową, adrugi parametr jest fałszem,
* Drugi parametr:
** Czy elementy są odzielone od sibie pewnymi znakami, według tej dokumentacji, i czy to są linki artykułów nieokładkowych dozwolonych, w najbliższej linii, wtedy zwraca w drugim parametrze prawdę, w przecciwnym wypadku, w przypadku znalezienia obiektu w najbliższej linii z: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, ale nie wykryto odpowiwdnich linków, według wspomnianej funkcji, wtedy zwracony ten paramtr będzie fałszem, kub do wyczerpania zasobów, też odpowiadającej fałśzowi,
Funkcja wyszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wykorzystując, że tekst jest zakodowany, i znajduje one przy pomocy wyrażenia regularnego generowanego przez: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, na podstawie kodu, którego fragment jest napisany tutaj:
<syntaxhighlight lang="lua">
local liczba_spisu=liczba_spisowa;
local szablonowe_modul=require("Module:Szablonowe");
---- Ustalenie wzoru kodowania, czyli jest to dowolny kod;
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu()
while(true)do
---- Wyszukuje dowolną linię według wyrażenia regularnego podanego w kodzie, zawartą całkowicie w linii;
local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
</syntaxhighlight>
Fukcja sprawdza, czy dokonano sprawdzenia, jeśli pozytywnie ono przeszło, to musi istnieć zmienna {{Code|liczba_linki_nierozdzialowe_szablonu}} {{Patrz|liczba_linki_nierozdzialowe_szablonu}} oraz musi być spełniona alternatywa dwóch warunków: {{Code|przed_tekst}} {{Patrz|przed_tekst}} musi być puste lub ma spełniać warunek według wzoru: {{Code|<nowiki>^[%p%s%d%.]*$</nowiki>}}.
Jeżeli funkcja nie dopasowała kodu: {{Code|obiekt_szablon}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, do wartości: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, to działa w pętli aż dopasuje je, aż do zakończenia zasobu danych dostępnych w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, jeżeli nie mogła by tego zrobić. A jeśli je dopasowała, to sprawdza, czy te kody są odpowiednimi obiektami, ewentualnie oddzielonych od siebie znakami {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, poprzez sprawdzanie funkcją wspomnianą w nagłówku. Jeśli ta funkcja zwróci wartość prawdziwą, to zwrócone zostaną parametry:
<syntaxhighlight lang="lua">
return liczba_linki_nierozdzialowe_szablonu,true;
</syntaxhighlight>
W innych przypadkach, jeżeli takiego dopasowania nie znalazła, to zwróć szereg wartości:
<syntaxhighlight lang="lua">
return liczba_spisowa,false;
</syntaxhighlight>
W tym przypadku wartość {{Code|liczba_spisowa}} {{LinkPatrz|liczba_spisowa}}, to nic innego jak ostatni argument naszej funkcji, czyli w przypadku niepowoddzenia dopasowania, zwracana jest wartość ta początkowa, zdrugą wartością, że niezaleziono poszukiwanego obiektu.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowychZakresowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowychZakresowych}} ==
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowychZakresowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_pierwszy_rozdzialowy_artykul,liczba_przed_rozdzialem,liczba_start_naglowek_przed,czy_znajdz)...end;
</syntaxhighlight>
Parametry funkcji:
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
6v9kwymamhef0m2tvxu4dqly2kg6k09
554596
554595
2026-09-06T10:44:22Z
Persino
2851
/* {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} */
554596
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
Jest to funkcja do sprawdzania tekstu zawartości (tekstu rozdziału, bez zawartości nagłówka) napisu wprowadzenia tekstu sekcji, za pomocą funkcji zwracanej, czy ona spełnia pewne określone warunki.
Funkcja, gdy co jest nie tak, to zwraca wartość {{Code|true}}, i przy okazji może zerować pewne określone zmienne, jeśli ona przy tym została odpowiednio ustawiona, przeciwnie ona zawsze zwraca wartość {{Code|nil}}, czyli nie zwraca żadnej wartości.
Za pomocą tej funkcji można sprawdzić, czy funkcja zawiera niedozwolone znaki wikikodu, i dlatego zwraca tą prawdziwość.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe)
... ---- ciało funkcji zwracanej
end;
end;
</syntaxhighlight>
Parametry ogólne funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|czy_zeruj}} {{Patrz|czy_zeruj}} - czy ma zerować, ścisle określone zmienne, które mieszczą się w niezerowej tablicy zmiennych składowych, tzn. w: {{Code|tab_zmienne}} {{LinkPatrz|tab_zmienne}},
* {{Code|tab_zmienne}} {{Patrz|tab_zmienne}} - zmienne w nim do zerowania,
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Parametry funkcji zwracanej dla tekstu rozważanego: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}:
* {{Code|liczba_koniec_naglowek}} {{Patrz|liczba_koniec_naglowek}} - numer znaku, po którym coś rozważamy,
* {{Code|liczba_obiekt_start_nowe}} {{Patrz|liczba_obiekt_start_nowe}} - numer znaku, przed którym coś rozważamy.
; Sprawdzenie spełnienia warunku, przejście do wnętrza tej instrukcji warunkowej{{dk}}
Funkcja zwracana sprawdza, czy zmienne: {{Code|liczba_koniec_naglowek}} {{LinkPatrz|liczba_koniec_naglowek}}, i {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, istnieją, i te zmienne sugerują punkty znakowe w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, ale jeżeli te zmienne liczbowe punktów znakowych mają takie wartości, że nie da się znaleźć dla tej zmiennej tekstowej treści pomiędzy nimi, to ta funkcja nie zwraca żadnej wartości, to zachodzi, kiedy nie jest spełniony warunek:
<syntaxhighlight lang="lua">
if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then
</syntaxhighlight>
; Sprawdzenie uzyskanej zmiennej tekstowej, będąca tekstem pomiędzy linkiem, a końcem rozdziału{{dk}}
* Liczenie zmiennej tekstowej za pomocą, którą będziemy sprawdzać:
: A jeżeli jest jednak tak, tzn. spełniony jest ten warunek, to znajdujemy taki tekst, robi to za pomocą funkcji: {{LzLua|mw.ustring.sub}}, i zapisuje to pod zmienną {{Code|str}} {{Patrz|str}}.
* Pierwszy etap analizowania tej zmiennej, czy jest poprawna, tzn. czy nie zwraca żadnej wartości, ale czy się zakańcza:
: Następnie sprawdza, czy ona jest w cudzysłowach, tzn. czy spełnia warunek: {{Code|<nowiki>^%s*'+(.+)'+%s*$</nowiki>}}, lub czy początek zaczyna się od znaków: {{Code|<nowiki>^[%*#:;<>]+</nowiki>}}, lub czy ten tekst zawiera dozwolone znaki z przedziału: {{Code|<nowiki>^[%s%p%w]*$</nowiki>}} - tzn. czy tekst składa się ze znaków odstępu, interpunkcyjnych, znaków alfanumerycznych lub z dolnym myślników, jeżeli któreś z tych warunków jest spełnione, to funkcja nie zwraca żadnej wartości, ale zatrzymuje się, tzn. zakańcza się, to oznacza, że wszystko jest w porządku. A jeżeli nie spełnione z żadnych z tych warunków, to ona idzie dalej, i robi następne czynności następne, aby sprawdzić dalsze warunki, czy wszystko jest w porządku.
; Sprawdzanie niepustych linii{{dk}}
* Sprawdzanie niepustych linii po liniach, ewentualnie składających się ze znaków odstępów:
: Funkcja liczy ile takich linii znalał, zapisuje to pod zmienną {{Code|ile}} {{Patrz|ile}}, jeśli wśród takich linii znalazł linie pasujące do: {{Code|<nowiki>^[%*#;:<>]</nowiki>}}, lub składające się znaków odstępów: {{Code|<nowiki>^%s*$</nowiki>}}, wtedy funkcja to liczy licznikiem: {{Code|ile_punktowanych}} {{Patrz|ile_punktowanych}}.
Funkcja w tak wyszukanych liniach w przeciwnym razie sprawdza, w liniach niepasujących do tych wzorów, czy tam są artykuły (strony) nie z rozważanej danej książki, przy pomocy funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, jeśli są takie elementy, to funkcja dodaje to do licznika: {{Code|ile_punktowanych}} {{LinkPatrz|ile_punktowanych}}, aby dodać jeden do licznika, dla każdej takiej linii funkcja sprawdza, czy przynajmniej jeden taki artykuł się znajduje tam, w każdej takiej wykrytej linii.
* Jeśli liczba określona przez zmienną: {{Code|ile_punktowanych}} {{LinkPatrz|ile_punktowanych}}, jeżeli jest co najmniej równa wyszukanym liniom: {{Code|ile}} {{LinkPatrz|ile}}, to funcja się zatrzymuje, i nie zwraca żadnej wartości, czyli wskazuje na powodzenie.
* Gdy liczba tego jest mniejsza niż wykrytych linii, to coś jest nie tak, wtedy funkcja nic nie zwraca, tylko idzie dalej.
; Inne operacje w przypadku niestwierdzenia, jak dotąd niepowodzenia przez funkcję, nie ma jeszcze zwróconej wartości {{nobold|{{Code|nil}}}}{{dk}}
* Zerowanie się pewnych wartości:
** Funkcja z tak policzonego: {{Code|str}} {{LinkPatrz|str}}, usuwa formy kodów z obiektami {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, a jeżeli znalazł w nim same, wtedy znaki odstępów, to ona nie zwraca żadnej wartości, ale się zakańcza, przeciwnie, sprawdza, czy jest zmienna: {{Code|czy_zeruj}} {{LinkPatrz|czy_zeruj}}, która jest prawdziwa, a jeśli tak, to elementy zmiennej: {{Code|tab_zmienne}} {{LinkPatrz|tab_zmienne}} są nilowane, tzn. podzmienne o kluczach:
* {{Code|liczba_nie_okladka_artykul}} {{Patrz|liczba_nie_okladka_artykul}} - liczba pozycji sekcji wskazująca, czy istnieje pierwszy taki artykuł (nie okładka, nie strona niedozwolona) aktualnej książki, lub bezpośrednio taki artykuł, niekoniecznie tej książki, czy znajduje się bezpośrednio w pozycji sekcji, i tylko sam tam się znajduje,
* {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{Patrz|liczba_pierwszy_rozdzialowy_artykul}} - liczba pozycji sekcji, która wskazuje na pierwszy taki wykryty artykuł, licząc od przodu, który spełnia pewne ścisle określone kryteria, jaki może być w książce,
: Kryteria określone przez te zmienne powyżej są określone przez funkcję: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}},
* {{Code|czy_ten_rozdzial}} {{Patrz|czy_ten_rozdzial}} - wartość prawdziwą wskazuje, czy wynilowano zmienne należące do rozważanej tablicy.
Ale niezależnie od wartości: {{Code|czy_zeruj}} {{LinkPatrz|czy_zeruj}}, funkcja wtedy zwraca zawsze wraca wartość {{Code|true}}, czyli ona zwraca to niepowodzenie.
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
Funkcja wyszukuje, od tyłu, kolejne rozdziały (napisy wprowadzenia tekstu), którego tekst rozdziału składa się z samych znaków odstępów, lub jest pusty, albo o poziomie wyższym rozdziałowo, nawet gdy jego tekst rozdziału jednak nie jest pusty.
Funkcja jest przerywana po najbliższych niespełniających warunkach. Funkcja zwraca parametry, z ostatniego pasującego dopasowana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - podczas wyszukiwania od tyłu, do jakiego punktu ma wyszukiwać,
* {{Code|liczba_obiekt_start_nowe}} - jak w: {{LinkPatrz|liczba_obiekt_start_nowe}}, wykorzystywane w funkcji: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, do sprawdzania pomiędzy znakami: końcem wyszukiwanego nagłówka, wraz ze znakiem nowej linii, a tą zmienną, robimy to do sprawdzania, czy tekst rozdziału spełnia ściśle określone normy określone przez tą funkcję. To jest to pozycja taka, na jaką wskazuje również pozycja jakaś artykularna, prze którym sprawdzamy tą funkcją tekst.
* {{Code|liczba_obiekt_start_spac_par}} {{Patrz|liczba_obiekt_start_spac_par}} - numer znaku, od którego ma wyszukiwać od tytułu pewne linie,
* {{Code|czy_dodatni}} {{Patrz|czy_dodatni}} - typ wyszukiwania rozdziałów, tzn. {{LinkZobaczTeż|czy_dodatni}},
* {{Code|czy_bez_naglowka}} {{Patrz|czy_bez_naglowka}} - czy ma wyszukiwać do: {{Code|1}}, od tytułu, a nie do: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}},
* {{Code|AnalizowanieSekcjowe}} {{Patrz|AnalizowanieSekcjowe}} - to nic innego jest, jak funkcja inicjowana przez zwracaną procedurę przez: {{LinkŚródtytuł|p.AnalizowanieSekcjowe}}, która ma w sobie pewne elementy początkowe w sobie wsadzonych jako parametry, które są wykorzystywane prze obiekt przez nią zwracany, która coś robi.
; Typy dopasowywania rozdziałów paarametru{{dk}} {{nobold|czy_dodatni {{Code|{{=}}}} {{LinkPatrz|czy_dodatni}} {{ZobaczTeż|czy_dodatni}}}}{{dk}}
* {{Code|1}} - wyszukuje rozdziały wskazywane przez funkcję: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}},
* {{Code|2}} - wyszukuje pozycje list zaczynające się od znaków: {{Code|<nowiki>[%*#:;<>]+</nowiki>}}, jako pewne rozdziały, które trzeba wyszukać,
* Inna wartość niż dwie powyższe - wtedy są wyszukiwane rozdziały niezaczynające się od: {{Code|<nowiki>[^%*#:;<>\n]</nowiki>}}, i kończące się na dwukropek.
: Dla dwóch ostatnich powyższych punktów są wyszukiwane linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
: Funkcja dla tych dwóch pierwszych sprawdza, tylko raz, czy to jest rozdział spisu treści wskazywaną przez funkcję: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, jeżeli parsowanie przeszło niepomyślnie, a funkcja: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, zrzuci wartość prawdziwą, wtedy ta cała funkcja z nagłówka zrzuca wartość logiczną fałszywą. Ta funkcja wykorzystuje wartość: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, jako drugi parametr, dla którego liczy ona tekst przed, ta zmienna może wskazywać na początek pozycji linii artykularnej (z artykułami), aby ona policzyła swoją wartość.
Funkcja działa w pętli do zakończenia zasobu danych lub w inny sposób, ale też do zakończenia. Funkcja wtedy robi operacje zawsze dla: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} równe {{Code|1}} lub dla tych, gdzie: {{LinkŚródtytuł|p.CzyTamElementyNieSpisoweArtykularne|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, zwraca wartość logiczną prawdziwą, własnie dla tego, jeśli ta operacja zwróci prawdę, to dla tego są dopasowywane elementy zwracane. Wtedy wiadomo, że wyszukane tak pozycje są rozdziałami.
Funkcja zwraca wyniku w postaci wartości szegu zwracanych:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej;
</syntaxhighlight>
Wytłumaczenie tych elementów zrzuconych przez nią dla dopasowań, licząc od tyłu:
; Ostanie dopasowanie nagłówka pasujące, gdy tekst jego rozdziału jest równy znakom odstępu lub jest pusty{{dk}}
* {{Code|liczba_start_naglowek}} - początek ostatniego wyszukanego takiego nagłówka,
* {{Code|liczba_koniec_naglowek_poczt}} - koniec pierwszego wyszukanego nagłówka,
* {{Code|naglowek}} - wartość nagłówka dla tego ostatniego dopasowania,
* {{Code|poziom_naglowka}} - poziom takiego nagłówka,
; Niepasujący nagłówek, wyszukane pierwsze z kolei po pasującym{{dk}}
: Według wartości zwracanych powyższych w pierwszej kolejności, dla którego tekst rozdziału nie jest równa znakom odstępu i nie jest pusty:
* {{Code|liczba_start_naglowek_dalej}} - początek po pasującym tak nagłówku,
* {{Code|liczba_koniec_naglowek_dalej}} - a tutaj jego koniec,
* {{Code|naglowek_dalej}} - wartość tekstu napisu wprowadzenia tekstu,
* {{Code|poziom_naglowek_dalej}} - tutaj jego poziom.
W przypadku nieznalezienia takich nagłówków funkcja nie zwraca niczego.
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
Funkcja służy do zaawansowanego szukania, od tyłu, nagłówków w przeciwieństwie do: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, która służy przede wszystkim do szukania sekcji kolejnych jednego rodzaju, a ta funkcja znajduje się w postaci układu sekcji różnego typu w rozważanym tekście.
Funkcja wyszukuje od tyłu, znajduje parametry ostatniego nagłówka i je zwraca, jeżeli je znalazł, a jeśli nie, to nie zwraca żadnej wartości, tylko funkcja się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Jedynie funkcja nie ma parametru: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, ponieważ ta funkcji nie szuka kolejnych rozdziałów tylko jednego rodzaju, lecz wielu.
=== {{Śródtytuł|str_spacja_lub_zerowy_naglowek}}{{Code|str_spacja_lub_zerowy_naglowek}} ===
Dla każdej takiej niepustej linii, sprawdzane jest, czy to są linie z odstępami, lub nie, będące elementami listy, ale w sposób rozszerzony, tzn. ten początek nie może składać się z pewnych znaków, czyli: {{Code|<nowiki>^[^%*#:;<>\n]</nowiki>}}.
Funkcja sprawdza, czy liczba takich linii, jest taka sama, ile jest niepustych linii, wtedy funkcja zwraca wartość logiczną prawdziwą, przeciwnie wartość nilową.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local str_spacja_lub_zerowy_naglowek=function(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do sprawdzenia.
=== Ciąg dalszy opisu funkcji ===
; Etapy dopasowania ostatniego dopasowania rozdziałów, jego pozycja w tekście i jego napis wprowadzenia tekstu
* Etap ogólny
Funkcja najpierw wyszukuje rozdziały poprzez wskazanie przez funkcję: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, a jeżeli znalazł artykuł, o niepustych secjach pomiędzy ostatnim wskazanym artykułen (przed artykułem), a rozdziałem, wtedy ta funkcja zwraca wartość logiczną fałszywą i zwraca wartość nilową, czyli nic nie zwraca, i funkcja się zakańcza, i wskazuje, że nie znalazł takiego nagłówka, to się dzieje pod warunkiem, że funkcja: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, została podana, w przeciwnym wypadku, to już tak się nie dzieje, a nagłówek z tego wywołania mógł być znaleziony, ale nie musiał.
; Etapy alternatywy
* Pierwszy etap
** To dotyczy, że znalazł ostatnie dopasowanie, ale niepasującego nagłówka przed nim nie ma.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli tego nie znalazł, wtedy przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, w pętli nieskończonej, najpierw dla parametru: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, najpierw jest to pierwsze, a później to drugie, jeśli z tego pierwszego zostało wykonana komenda przerwania pętli, to drugie dopasowanie nie zostanie wykonane w danym obiegu jego, normalnie, bez tego są dwa wywołania.
W każdym takim wywołaniu i dopasowaniu, w pierwszym, czy drugim, będzie sprawdzane, czy tego dokonano, czy taki nagłówek znaleziono, a jeśli tak, to sprawdzany jest tekst pomiędzy ostatnim końcem w wykrytym nagłówku, a początkiem tego przedostatniego, lub z etapu ogólnego, funkcją: {{LinkŚródtytuł|str_spacja_lub_zerowy_naglowek}}, jeżeli funkcja zwróciła wartość logiczną odpowiadającej fałszywej, to pętla jest przerywana, w przeciwnym wypadku są inicjowane parametry tego dopasowania, które przygotowuje ona zwrócić do funkcji w nagłówku.
: Ogólnie po drugim taki wywołaniu następuje sprawdzenie parametrów zwróconych:
Jeżeli w ostatnim takim wywołaniu w tym funkcja zwraca niedopasowanie, wtedy zwracane jest przerywanie pętli, wtedy mamy parametry ostatniego dopasowania, jeśli istnieją takie.
* Drugi
** To dotyczy, że takiego dopasowania pasującego nie znalazł.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli to znalazł, to wyszukany stąd nagłówek jest rozwijany przy pomocy funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}. Jeżeli parser funkcji nie wykrył wykrzyknika na końcu takiego nagłówka, wtedy jest sprawdzane przy pomocy iteratora w zakodowanym tekście przy pomocy: {{Code|{{m|Szablonowe}}}}, na podstawie: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, czy w nagłówku istnieje artykuły bieżącej ksiązki, czy analizowanej, i czy to nie jest okładka, czy strona niedozwolona. Jeżeli wykryto takie artykuły, lub pętla nie została wykonana, bo nie ma takich wykrytym nagłówku kodów, to funkcja inicjuje parametry zwracanych wartości przez funkcję w nagłówku.
* Trzeci
** To dotyczy pozostałych przypadków, w którym znalazł ostatnie dopasowanie, a niepasujące przed nim też znalazł.
Jest wywoływane wywołanie: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, najpierw w pierwszym wywołaniu dla: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, a w każdym takim wywołaniu po jest sprawdzane, czy tekst pomiędzy końcem ostatniego wykrytego nagłówka, a początkiem przedostatniego nagłówka, a nawet artykułu wykrytego, czyli czy taki tekst rozdziału, czy składa się z samych znaków odstępów, a jeśli tak, to inicjowane są parametry zwracane przez funkcję. Dalej przechodzimy z pierwszego do drugiego wywołania, w którym oba wywołania są podobnie zbudowane.
; Parametry wychodzące z funkcji{{dk}}
* Oto parametry inicjowane przez funkcję w tych powyższych trzech etapach alternatywnych, które na końcu funkcji w nagłówku są zwracane:
: Funkcja zwraca wartości określone przez kod:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka;
</syntaxhighlight>
Wytłumaczenia parametrów zwracanych:
; Parametry określają ostatnie dopasowanie nagłówkowe w wewnątrz funkcji{{dk}}
* {{Code|liczba_start_naglowek}} - początek tego dopasowania,
* {{Code|liczba_koniec_naglowek}} - jego koniec,
* {{Code|naglowek}} - wartość napisu wprowadzenia tekstu nagłówka,
* {{Code|poziom_naglowka}} - poziom tego nagłówka.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
Funkcja służy do wyszukiwania, od tyłu, pozycji artykularnej przed wykrytym ostatnim rozdziałem, lub gdy nie ma rozdziałów, to liczy pozycję tylko artykularną, lub nawet pozycji rozdziałów zerowych spisu treści albo nawet tych z dwukropkiem na końcu danej linii, i szuka od tyłu takie coś, by to uznać za początek spisu treści wyciętej z tekstu zakodowanego spisu, czyli ogólnie mówiąc funkcja szuka dalej takiego początku dalszego.
Funkcja służy też do wydzielania części spisu spełniające powyższe kryteria, aby można było ją parsować przez inne funkcje '''Stronicowego parsera''', do wydzielania dalszych rozdziałów, a z nich wydzielania nagłówków (napisów wprowadzenia tekstu) i tekstów rozdziałów.
Funkcja pętluje przy wykrytych liniach składających się z odstępów, a się zatrzymuje na normalnych danych lub po zakończeniu zasobów.
Główny opis funkcji {{ZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}:
* Funkcja działa w oętli nieskończnonej, aż do zakończenia danych, lub do zwrócenia elementów przez nią,
* W tej pętli funkcja wyszukuje kolejne linie, które nie są pozycjami listy, z którego wyodrębiona linia jest analizowana bez przerwy, jeżeli istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje parametry:
** {{Code|liczba_start}} {{Patrz|liczba_start}} - od której pozycji od tyłu ma wyszukiwać pozycje artykularne,
** {{Code|czy_dalej_rozdzial}} {{Patrz|czy_dalej_rozdzial}} - czy {{ZobaczTeż|czy_dalej_rozdzial}} uznać za pierwszeństwo, w przypadku wykrytego rozdziału dodatniego w linii, lub nie wykrycia takiej linii, która nie jest częścią listy, wtedy jest ważny element (zmienna) {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie jest brane, coś przeciwnego,
** {{Code|liczba_pierwszy_rozdzialowy_artykul}} - jak w: {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}}.
Parametry {{ZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}} zwracane przez funkcję, które są zwracane kolejno w niej na końcu jej działania:
* Początek takiego punktu, uzyskanym w końcu na końcowym obiektu pętli (wyjaśnienie w tekście),
* Liczba znaków odstępów wykrytych poczasz wszystkich obiektów pętli (jest to reprezzentowane przez: {{Code|liczba_spac}} {{Patrz|liczba_spac}}),
* Czy ta tak, uzyskana i zwrócona, linia jest rozdziałem spisu treści (jest to reprezentowane przez: {{Code|czy_spis}} {{Patrz|czy_spis}}).
Etapy zwracania przez funkcję elementów:
; Uzyskanie linii według ogólnego wzoru
* Według {{LinkZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}, tą linia, byłoby takie coś pomiędzy ewentualnie znakami nowymi liniami, która spełnia wzór: {{Code|<nowiki>([^%*#:;<>\n][^\n]*)</nowiki>}}. To wyszukiwanie jest według funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wyszukujący w sposób ogólny linie, niezależnie jak są one realizowane w tekście.
; Początek i koniec uzyskanej linii według powyższego sposobu{{dk}}
* Początek i koniec przechwyconej linii, to są pewne liczby, wraz ze znakami nowej linii, jeśli po któreś stronie istnieją, lub nawet gdy to są w tym elementy, początku lub końca, tekstu, wtedy długość tych elementów jest zero.
; Brak dopasowania linii
* A jeżeli dopasowanie tej linii nie zgłasza niedopasowania, wtedy przy prawdziwości zmiennej: {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według: {{LinkZobaczTeż|czy_dalej_rozdzial}}, zwracane jest: {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie, wartość minimalną, pomiędzy tą zmienną a inną {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}} (jeśli ta zmienna nie istnieje, to domyślnie ma wartość {{Code|1}}).
; Rozdział równaniowy{{dk}}
* Jeżeli tą linią jest rozdział równaniowy, to zwracane jest, jeżeli wartość {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według {{LinkZobaczTeż|czy_dalej_rozdzial}}, ma wartość fałszywą, wtedy jest to dopasowanie końca tej linii, w pierwszym parametrze zwracanym, wraz z innymi danymi, według {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}, a jeżeli ta wartość jest prawdą, to zwracane jest {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, bo w tej funkcji nie ma prawa takich rozdziałów dopasowywać.Ma dopaasowywać tylko normalne linie niebędące pozycjami listy.
; Pierwsze rozgałęzenie specjalne instrukcji warunkowej{{dk}}
: Znaki odstępów - linia to białe znaki:
* Jeżeli linia istnieje i składa się z samych znaków odstępów, to liczmy długość tych znaków, wraz z nowymi liniami po prawej lub lewej stronie, jeśli istnieją, i wsadzamy to do ogólnego licznika {{Code|liczba_spac}} {{LinkPatrz|liczba_spac}}, która jest zwracana na końcu działania funkcji, jako drugi parametr w: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}. Funkcja wykonuje tych okrążeń pętli tyle, ile jest kolejnych linii składających się z tych znaków.
; Przypadek istnienia linii nie składającej się ze znaków odstępów{{dk}}
: Rozdział spisu treści i rozdział zerowy:
* Jeśli linia jest spisem względem {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przyjmuje wartość początkowi takiej ustalonej linii w tekście, a {{Code|czy_spis}} {{LinkPatrz|czy_spis}} przyjmuje wartość prawdziwą.
* A jeśli tak nie jest, to sprawdzamy, czy przed tą linią jest rozdział zerowy na podstawie funkcji: {{LinkŚródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}. Jeżeli ona jest tym rozdziałem, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma już nową wartość, przeciwnie, jeśli ta linia ma na końcu dwukropek, to ta wartość nowa jest równa początkowi wyszukania tej linii, a jeśli nie, to końcowi. Zmienna, czy jest rozdział spisu {{Code|czy_spis}} {{LinkPatrz|czy_spis}} ma wartość prawdziwą, gdy ten rozdział zerowy istnieje, a jeśli nie, to fałszywą.
; Przypadek istnienia, lub nie, rozdziału zerowego{{dk}}
* Jeśli znaleziono taki rozdział (zerowy), to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, to wtedy nie ma żadnych dodatkowych instrukcji do wykonania.
* Punkty zwracania zmiennych, jeśli przeciwnie do poprzedniego:
** Jeśli znaleziono taki spis, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma wartość początkowi takiej linii
** A jeżeli przeciwnie, nie ma w nim kodów, to końcowi, jeśli wyszukana linia nie jest rozdziałem z dwukropkiem na końcu, a jeśli jest, to początkowi tej linii,
*** Wtedy ją, tą uzyskaną z obliczeń, trzeba wliczać w ramach wydzielonego spisu, wtedy zmienna: {{Code|czy_spis}} {{LinkPatrz|czy_spis}}, jest prawdą,
** A jeśli jednak ma je, wtedy, czy linia ma pozycje artykularne, które nie są okładkami lub stronami niedozwolonymi, a jeśli tak jest, na podstawie wywołania funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, to zwracany jest początek wyszukania takiej linii w tej zmiennej, przeciwnie powtarzana jest ta wartość.
*** Wtedy, gdy linia nie ma takich artykułów, wtedy jeśli ona ma dwukropek na końcu, wtedy ustalamy zmienną: {{Code|czy_spis}} {{LinkPatrz|czy_spis}}, na prawdę.
: Na samym końcu zwracane jest to wszystko w postaci parametrów: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}.
== {{Śródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}{{Code|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}} ==
Funkcja wyszukuje, czy dla obiektu o typie {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} o numerze liczbowym {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} - nie jako łańcuch znakowy, dla ich generowanego odpowiednika {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, generowanego z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, są linki w zależności od podanej zmiennej: {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, a jeżeli tam nie ma linków, to przeszukiwany jest {{LinkPatrz|dalszy_tekst}} w ich poszukiwaniu, którymi zrządzą prawa w zależności od przyporządkowanej zmiennej: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, wartość prawdziwa tej zmiennej, włącza dowolność układu obiektów typu: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}.
Funkcja wyszukuje w linii, ale najwierw w: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, a później w: {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, jeżeli w poprzednim nie znalazł, pierwszego takiego linku przyporządkowagp, któremuś z tych obiektów, i przy pierwszym wykryciu zwraca wartość, ale dany obiekt uwwzględniany względem tego poprzedniegomusi spełniać prawa lub nie, w zależności od podanej zmiennej {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieLinkuWeSzablonieOrazDalszymNapisie(obiekt,kod,dalszy_tekst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_oddzielone,czy_wszystkie_linki)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}}, {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|czy_nieoddzielone}} {{Patrz|czy_nieoddzielone}} - czy linki mają być oddzielone interpunkcją, czy odstępami, w przypadu przeciwnym, jeżeli tak nie jest, to funkcja zwraca wartość fałszywą,
** {{Code|czy_wszystkie_linki}} {{Patrz|czy_wszystkie_linki}} - czy uwzględniaj wszystkie linki, czy tylko artykuły, nie okładki, (dozwolone), danej książki,
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy tekst, do przeszukiwania linkowego.
Funkcja zwraca wartość logiczną, jeżeli prawa linkowe tekstu są przyporządkowane przez zmienne: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, to jeśli znalazłeś takie linki, to zwracaj wartość prrawdziwą, a jeśli nie, to fałszywą.
Jeśli zmienna: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, przyjmuje wartość fałszywą, to te rozważane obiekty, muszą być oddzielone pewnymi znakami, tutaj: {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, a jak nie spełniają tego warunku, to funkcja zwraca wartość fałszywą, w innym wypadku dalej liczy i sprawdza.
== {{Śródtytuł|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}}{{Code|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}} ==
Funkcja jest rozszerzeniem funkcji: {{LinkŚródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}, dla ustalonych dwóch ostatnich zmiennych, które przyjmują wartość {{Code|true}} (prawdziwą), o nazwach: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}} i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, dla tej funkcji, mamy już zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, i {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, a funkcja w nagłówku je ustala, w wyniku działania w pętli.
Funkcja wyszukuje, od tyłu, w tekście, nabliższej pozycji typu: {{Code|SZABLON}}, {{Code|LINKW}} lub {{Code|LINKZ}}, w danej linii, i zwraca odpowiednio dwie wartości, pozycje wykrytą i wartość logiczną powodzenia, w innym przypadku, pozycję początkową z drugim parametrem fałszem.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|liczba_start_rozdzial}} - jak w: {{LinkPatrz|liczba_start_rozdzial}}, pozycja wyszukiwania końcowa,
** {{Code|liczba_spisowa}} {{Patrz|liczba_spisowa}} - pozycja wyszukiwania początkowa.
Parametry zwracane:
* Pierwszy parametr:
** Pozycja, w którym taką pozycję określona przez funkcję znaleziono, drugi parametr wtedy przyjmuje prawdę, jeśli nie znaleziono, takiej pozycji, to ta pozycja przymuje wartość początkową, adrugi parametr jest fałszem,
* Drugi parametr:
** Czy elementy są odzielone od sibie pewnymi znakami, według tej dokumentacji, i czy to są linki artykułów nieokładkowych dozwolonych, w najbliższej linii, wtedy zwraca w drugim parametrze prawdę, w przecciwnym wypadku, w przypadku znalezienia obiektu w najbliższej linii z: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, ale nie wykryto odpowiwdnich linków, według wspomnianej funkcji, wtedy zwracony ten paramtr będzie fałszem, kub do wyczerpania zasobów, też odpowiadającej fałśzowi,
Funkcja wyszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wykorzystując, że tekst jest zakodowany, i znajduje one przy pomocy wyrażenia regularnego generowanego przez: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, na podstawie kodu, którego fragment jest napisany tutaj:
<syntaxhighlight lang="lua">
local liczba_spisu=liczba_spisowa;
local szablonowe_modul=require("Module:Szablonowe");
---- Ustalenie wzoru kodowania, czyli jest to dowolny kod;
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu()
while(true)do
---- Wyszukuje dowolną linię według wyrażenia regularnego podanego w kodzie, zawartą całkowicie w linii;
local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
</syntaxhighlight>
Fukcja sprawdza, czy dokonano sprawdzenia, jeśli pozytywnie ono przeszło, to musi istnieć zmienna {{Code|liczba_linki_nierozdzialowe_szablonu}} {{Patrz|liczba_linki_nierozdzialowe_szablonu}} oraz musi być spełniona alternatywa dwóch warunków: {{Code|przed_tekst}} {{Patrz|przed_tekst}} musi być puste lub ma spełniać warunek według wzoru: {{Code|<nowiki>^[%p%s%d%.]*$</nowiki>}}.
Jeżeli funkcja nie dopasowała kodu: {{Code|obiekt_szablon}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, do wartości: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, to działa w pętli aż dopasuje je, aż do zakończenia zasobu danych dostępnych w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, jeżeli nie mogła by tego zrobić. A jeśli je dopasowała, to sprawdza, czy te kody są odpowiednimi obiektami, ewentualnie oddzielonych od siebie znakami {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, poprzez sprawdzanie funkcją wspomnianą w nagłówku. Jeśli ta funkcja zwróci wartość prawdziwą, to zwrócone zostaną parametry:
<syntaxhighlight lang="lua">
return liczba_linki_nierozdzialowe_szablonu,true;
</syntaxhighlight>
W innych przypadkach, jeżeli takiego dopasowania nie znalazła, to zwróć szereg wartości:
<syntaxhighlight lang="lua">
return liczba_spisowa,false;
</syntaxhighlight>
W tym przypadku wartość {{Code|liczba_spisowa}} {{LinkPatrz|liczba_spisowa}}, to nic innego jak ostatni argument naszej funkcji, czyli w przypadku niepowoddzenia dopasowania, zwracana jest wartość ta początkowa, zdrugą wartością, że niezaleziono poszukiwanego obiektu.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowychZakresowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowychZakresowych}} ==
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowychZakresowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_pierwszy_rozdzialowy_artykul,liczba_przed_rozdzialem,liczba_start_naglowek_przed,czy_znajdz)...end;
</syntaxhighlight>
Parametry funkcji:
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
flcimcp3xnz318skqnky0k2u5498goi
554597
554596
2026-09-06T10:46:40Z
Persino
2851
/* {{Śródtytuł|str_spacja_lub_zerowy_naglowek}}{{Code|str_spacja_lub_zerowy_naglowek}} */
554597
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
Jest to funkcja do sprawdzania tekstu zawartości (tekstu rozdziału, bez zawartości nagłówka) napisu wprowadzenia tekstu sekcji, za pomocą funkcji zwracanej, czy ona spełnia pewne określone warunki.
Funkcja, gdy co jest nie tak, to zwraca wartość {{Code|true}}, i przy okazji może zerować pewne określone zmienne, jeśli ona przy tym została odpowiednio ustawiona, przeciwnie ona zawsze zwraca wartość {{Code|nil}}, czyli nie zwraca żadnej wartości.
Za pomocą tej funkcji można sprawdzić, czy funkcja zawiera niedozwolone znaki wikikodu, i dlatego zwraca tą prawdziwość.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe)
... ---- ciało funkcji zwracanej
end;
end;
</syntaxhighlight>
Parametry ogólne funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|czy_zeruj}} {{Patrz|czy_zeruj}} - czy ma zerować, ścisle określone zmienne, które mieszczą się w niezerowej tablicy zmiennych składowych, tzn. w: {{Code|tab_zmienne}} {{LinkPatrz|tab_zmienne}},
* {{Code|tab_zmienne}} {{Patrz|tab_zmienne}} - zmienne w nim do zerowania,
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Parametry funkcji zwracanej dla tekstu rozważanego: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}:
* {{Code|liczba_koniec_naglowek}} {{Patrz|liczba_koniec_naglowek}} - numer znaku, po którym coś rozważamy,
* {{Code|liczba_obiekt_start_nowe}} {{Patrz|liczba_obiekt_start_nowe}} - numer znaku, przed którym coś rozważamy.
; Sprawdzenie spełnienia warunku, przejście do wnętrza tej instrukcji warunkowej{{dk}}
Funkcja zwracana sprawdza, czy zmienne: {{Code|liczba_koniec_naglowek}} {{LinkPatrz|liczba_koniec_naglowek}}, i {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, istnieją, i te zmienne sugerują punkty znakowe w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, ale jeżeli te zmienne liczbowe punktów znakowych mają takie wartości, że nie da się znaleźć dla tej zmiennej tekstowej treści pomiędzy nimi, to ta funkcja nie zwraca żadnej wartości, to zachodzi, kiedy nie jest spełniony warunek:
<syntaxhighlight lang="lua">
if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then
</syntaxhighlight>
; Sprawdzenie uzyskanej zmiennej tekstowej, będąca tekstem pomiędzy linkiem, a końcem rozdziału{{dk}}
* Liczenie zmiennej tekstowej za pomocą, którą będziemy sprawdzać:
: A jeżeli jest jednak tak, tzn. spełniony jest ten warunek, to znajdujemy taki tekst, robi to za pomocą funkcji: {{LzLua|mw.ustring.sub}}, i zapisuje to pod zmienną {{Code|str}} {{Patrz|str}}.
* Pierwszy etap analizowania tej zmiennej, czy jest poprawna, tzn. czy nie zwraca żadnej wartości, ale czy się zakańcza:
: Następnie sprawdza, czy ona jest w cudzysłowach, tzn. czy spełnia warunek: {{Code|<nowiki>^%s*'+(.+)'+%s*$</nowiki>}}, lub czy początek zaczyna się od znaków: {{Code|<nowiki>^[%*#:;<>]+</nowiki>}}, lub czy ten tekst zawiera dozwolone znaki z przedziału: {{Code|<nowiki>^[%s%p%w]*$</nowiki>}} - tzn. czy tekst składa się ze znaków odstępu, interpunkcyjnych, znaków alfanumerycznych lub z dolnym myślników, jeżeli któreś z tych warunków jest spełnione, to funkcja nie zwraca żadnej wartości, ale zatrzymuje się, tzn. zakańcza się, to oznacza, że wszystko jest w porządku. A jeżeli nie spełnione z żadnych z tych warunków, to ona idzie dalej, i robi następne czynności następne, aby sprawdzić dalsze warunki, czy wszystko jest w porządku.
; Sprawdzanie niepustych linii{{dk}}
* Sprawdzanie niepustych linii po liniach, ewentualnie składających się ze znaków odstępów:
: Funkcja liczy ile takich linii znalał, zapisuje to pod zmienną {{Code|ile}} {{Patrz|ile}}, jeśli wśród takich linii znalazł linie pasujące do: {{Code|<nowiki>^[%*#;:<>]</nowiki>}}, lub składające się znaków odstępów: {{Code|<nowiki>^%s*$</nowiki>}}, wtedy funkcja to liczy licznikiem: {{Code|ile_punktowanych}} {{Patrz|ile_punktowanych}}.
Funkcja w tak wyszukanych liniach w przeciwnym razie sprawdza, w liniach niepasujących do tych wzorów, czy tam są artykuły (strony) nie z rozważanej danej książki, przy pomocy funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, jeśli są takie elementy, to funkcja dodaje to do licznika: {{Code|ile_punktowanych}} {{LinkPatrz|ile_punktowanych}}, aby dodać jeden do licznika, dla każdej takiej linii funkcja sprawdza, czy przynajmniej jeden taki artykuł się znajduje tam, w każdej takiej wykrytej linii.
* Jeśli liczba określona przez zmienną: {{Code|ile_punktowanych}} {{LinkPatrz|ile_punktowanych}}, jeżeli jest co najmniej równa wyszukanym liniom: {{Code|ile}} {{LinkPatrz|ile}}, to funcja się zatrzymuje, i nie zwraca żadnej wartości, czyli wskazuje na powodzenie.
* Gdy liczba tego jest mniejsza niż wykrytych linii, to coś jest nie tak, wtedy funkcja nic nie zwraca, tylko idzie dalej.
; Inne operacje w przypadku niestwierdzenia, jak dotąd niepowodzenia przez funkcję, nie ma jeszcze zwróconej wartości {{nobold|{{Code|nil}}}}{{dk}}
* Zerowanie się pewnych wartości:
** Funkcja z tak policzonego: {{Code|str}} {{LinkPatrz|str}}, usuwa formy kodów z obiektami {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, a jeżeli znalazł w nim same, wtedy znaki odstępów, to ona nie zwraca żadnej wartości, ale się zakańcza, przeciwnie, sprawdza, czy jest zmienna: {{Code|czy_zeruj}} {{LinkPatrz|czy_zeruj}}, która jest prawdziwa, a jeśli tak, to elementy zmiennej: {{Code|tab_zmienne}} {{LinkPatrz|tab_zmienne}} są nilowane, tzn. podzmienne o kluczach:
* {{Code|liczba_nie_okladka_artykul}} {{Patrz|liczba_nie_okladka_artykul}} - liczba pozycji sekcji wskazująca, czy istnieje pierwszy taki artykuł (nie okładka, nie strona niedozwolona) aktualnej książki, lub bezpośrednio taki artykuł, niekoniecznie tej książki, czy znajduje się bezpośrednio w pozycji sekcji, i tylko sam tam się znajduje,
* {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{Patrz|liczba_pierwszy_rozdzialowy_artykul}} - liczba pozycji sekcji, która wskazuje na pierwszy taki wykryty artykuł, licząc od przodu, który spełnia pewne ścisle określone kryteria, jaki może być w książce,
: Kryteria określone przez te zmienne powyżej są określone przez funkcję: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}},
* {{Code|czy_ten_rozdzial}} {{Patrz|czy_ten_rozdzial}} - wartość prawdziwą wskazuje, czy wynilowano zmienne należące do rozważanej tablicy.
Ale niezależnie od wartości: {{Code|czy_zeruj}} {{LinkPatrz|czy_zeruj}}, funkcja wtedy zwraca zawsze wraca wartość {{Code|true}}, czyli ona zwraca to niepowodzenie.
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
Funkcja wyszukuje, od tyłu, kolejne rozdziały (napisy wprowadzenia tekstu), którego tekst rozdziału składa się z samych znaków odstępów, lub jest pusty, albo o poziomie wyższym rozdziałowo, nawet gdy jego tekst rozdziału jednak nie jest pusty.
Funkcja jest przerywana po najbliższych niespełniających warunkach. Funkcja zwraca parametry, z ostatniego pasującego dopasowana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - podczas wyszukiwania od tyłu, do jakiego punktu ma wyszukiwać,
* {{Code|liczba_obiekt_start_nowe}} - jak w: {{LinkPatrz|liczba_obiekt_start_nowe}}, wykorzystywane w funkcji: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, do sprawdzania pomiędzy znakami: końcem wyszukiwanego nagłówka, wraz ze znakiem nowej linii, a tą zmienną, robimy to do sprawdzania, czy tekst rozdziału spełnia ściśle określone normy określone przez tą funkcję. To jest to pozycja taka, na jaką wskazuje również pozycja jakaś artykularna, prze którym sprawdzamy tą funkcją tekst.
* {{Code|liczba_obiekt_start_spac_par}} {{Patrz|liczba_obiekt_start_spac_par}} - numer znaku, od którego ma wyszukiwać od tytułu pewne linie,
* {{Code|czy_dodatni}} {{Patrz|czy_dodatni}} - typ wyszukiwania rozdziałów, tzn. {{LinkZobaczTeż|czy_dodatni}},
* {{Code|czy_bez_naglowka}} {{Patrz|czy_bez_naglowka}} - czy ma wyszukiwać do: {{Code|1}}, od tytułu, a nie do: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}},
* {{Code|AnalizowanieSekcjowe}} {{Patrz|AnalizowanieSekcjowe}} - to nic innego jest, jak funkcja inicjowana przez zwracaną procedurę przez: {{LinkŚródtytuł|p.AnalizowanieSekcjowe}}, która ma w sobie pewne elementy początkowe w sobie wsadzonych jako parametry, które są wykorzystywane prze obiekt przez nią zwracany, która coś robi.
; Typy dopasowywania rozdziałów paarametru{{dk}} {{nobold|czy_dodatni {{Code|{{=}}}} {{LinkPatrz|czy_dodatni}} {{ZobaczTeż|czy_dodatni}}}}{{dk}}
* {{Code|1}} - wyszukuje rozdziały wskazywane przez funkcję: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}},
* {{Code|2}} - wyszukuje pozycje list zaczynające się od znaków: {{Code|<nowiki>[%*#:;<>]+</nowiki>}}, jako pewne rozdziały, które trzeba wyszukać,
* Inna wartość niż dwie powyższe - wtedy są wyszukiwane rozdziały niezaczynające się od: {{Code|<nowiki>[^%*#:;<>\n]</nowiki>}}, i kończące się na dwukropek.
: Dla dwóch ostatnich powyższych punktów są wyszukiwane linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
: Funkcja dla tych dwóch pierwszych sprawdza, tylko raz, czy to jest rozdział spisu treści wskazywaną przez funkcję: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, jeżeli parsowanie przeszło niepomyślnie, a funkcja: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, zrzuci wartość prawdziwą, wtedy ta cała funkcja z nagłówka zrzuca wartość logiczną fałszywą. Ta funkcja wykorzystuje wartość: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, jako drugi parametr, dla którego liczy ona tekst przed, ta zmienna może wskazywać na początek pozycji linii artykularnej (z artykułami), aby ona policzyła swoją wartość.
Funkcja działa w pętli do zakończenia zasobu danych lub w inny sposób, ale też do zakończenia. Funkcja wtedy robi operacje zawsze dla: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} równe {{Code|1}} lub dla tych, gdzie: {{LinkŚródtytuł|p.CzyTamElementyNieSpisoweArtykularne|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, zwraca wartość logiczną prawdziwą, własnie dla tego, jeśli ta operacja zwróci prawdę, to dla tego są dopasowywane elementy zwracane. Wtedy wiadomo, że wyszukane tak pozycje są rozdziałami.
Funkcja zwraca wyniku w postaci wartości szegu zwracanych:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej;
</syntaxhighlight>
Wytłumaczenie tych elementów zrzuconych przez nią dla dopasowań, licząc od tyłu:
; Ostanie dopasowanie nagłówka pasujące, gdy tekst jego rozdziału jest równy znakom odstępu lub jest pusty{{dk}}
* {{Code|liczba_start_naglowek}} - początek ostatniego wyszukanego takiego nagłówka,
* {{Code|liczba_koniec_naglowek_poczt}} - koniec pierwszego wyszukanego nagłówka,
* {{Code|naglowek}} - wartość nagłówka dla tego ostatniego dopasowania,
* {{Code|poziom_naglowka}} - poziom takiego nagłówka,
; Niepasujący nagłówek, wyszukane pierwsze z kolei po pasującym{{dk}}
: Według wartości zwracanych powyższych w pierwszej kolejności, dla którego tekst rozdziału nie jest równa znakom odstępu i nie jest pusty:
* {{Code|liczba_start_naglowek_dalej}} - początek po pasującym tak nagłówku,
* {{Code|liczba_koniec_naglowek_dalej}} - a tutaj jego koniec,
* {{Code|naglowek_dalej}} - wartość tekstu napisu wprowadzenia tekstu,
* {{Code|poziom_naglowek_dalej}} - tutaj jego poziom.
W przypadku nieznalezienia takich nagłówków funkcja nie zwraca niczego.
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
Funkcja służy do zaawansowanego szukania, od tyłu, nagłówków w przeciwieństwie do: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, która służy przede wszystkim do szukania sekcji kolejnych jednego rodzaju, a ta funkcja znajduje się w postaci układu sekcji różnego typu w rozważanym tekście.
Funkcja wyszukuje od tyłu, znajduje parametry ostatniego nagłówka i je zwraca, jeżeli je znalazł, a jeśli nie, to nie zwraca żadnej wartości, tylko funkcja się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Jedynie funkcja nie ma parametru: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, ponieważ ta funkcji nie szuka kolejnych rozdziałów tylko jednego rodzaju, lecz wielu.
=== {{Śródtytuł|str_spacja_lub_zerowy_naglowek}}{{Code|str_spacja_lub_zerowy_naglowek}} ===
Dla każdej takiej niepustej linii, sprawdzane jest, czy to są linie z odstępami, lub czy nie są elementami listy, ale w sposób rozszerzony, tzn. ten początek nie może składać się z pewnych znaków, czyli: {{Code|<nowiki>^[^%*#:;<>\n]</nowiki>}}.
Funkcja sprawdza, czy liczba takich linii, jest taka sama, ile jest niepustych linii, wtedy funkcja zwraca wartość logiczną prawdziwą, przeciwnie wartość nilową.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local str_spacja_lub_zerowy_naglowek=function(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do sprawdzenia.
=== Ciąg dalszy opisu funkcji ===
; Etapy dopasowania ostatniego dopasowania rozdziałów, jego pozycja w tekście i jego napis wprowadzenia tekstu
* Etap ogólny
Funkcja najpierw wyszukuje rozdziały poprzez wskazanie przez funkcję: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, a jeżeli znalazł artykuł, o niepustych secjach pomiędzy ostatnim wskazanym artykułen (przed artykułem), a rozdziałem, wtedy ta funkcja zwraca wartość logiczną fałszywą i zwraca wartość nilową, czyli nic nie zwraca, i funkcja się zakańcza, i wskazuje, że nie znalazł takiego nagłówka, to się dzieje pod warunkiem, że funkcja: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, została podana, w przeciwnym wypadku, to już tak się nie dzieje, a nagłówek z tego wywołania mógł być znaleziony, ale nie musiał.
; Etapy alternatywy
* Pierwszy etap
** To dotyczy, że znalazł ostatnie dopasowanie, ale niepasującego nagłówka przed nim nie ma.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli tego nie znalazł, wtedy przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, w pętli nieskończonej, najpierw dla parametru: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, najpierw jest to pierwsze, a później to drugie, jeśli z tego pierwszego zostało wykonana komenda przerwania pętli, to drugie dopasowanie nie zostanie wykonane w danym obiegu jego, normalnie, bez tego są dwa wywołania.
W każdym takim wywołaniu i dopasowaniu, w pierwszym, czy drugim, będzie sprawdzane, czy tego dokonano, czy taki nagłówek znaleziono, a jeśli tak, to sprawdzany jest tekst pomiędzy ostatnim końcem w wykrytym nagłówku, a początkiem tego przedostatniego, lub z etapu ogólnego, funkcją: {{LinkŚródtytuł|str_spacja_lub_zerowy_naglowek}}, jeżeli funkcja zwróciła wartość logiczną odpowiadającej fałszywej, to pętla jest przerywana, w przeciwnym wypadku są inicjowane parametry tego dopasowania, które przygotowuje ona zwrócić do funkcji w nagłówku.
: Ogólnie po drugim taki wywołaniu następuje sprawdzenie parametrów zwróconych:
Jeżeli w ostatnim takim wywołaniu w tym funkcja zwraca niedopasowanie, wtedy zwracane jest przerywanie pętli, wtedy mamy parametry ostatniego dopasowania, jeśli istnieją takie.
* Drugi
** To dotyczy, że takiego dopasowania pasującego nie znalazł.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli to znalazł, to wyszukany stąd nagłówek jest rozwijany przy pomocy funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}. Jeżeli parser funkcji nie wykrył wykrzyknika na końcu takiego nagłówka, wtedy jest sprawdzane przy pomocy iteratora w zakodowanym tekście przy pomocy: {{Code|{{m|Szablonowe}}}}, na podstawie: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, czy w nagłówku istnieje artykuły bieżącej ksiązki, czy analizowanej, i czy to nie jest okładka, czy strona niedozwolona. Jeżeli wykryto takie artykuły, lub pętla nie została wykonana, bo nie ma takich wykrytym nagłówku kodów, to funkcja inicjuje parametry zwracanych wartości przez funkcję w nagłówku.
* Trzeci
** To dotyczy pozostałych przypadków, w którym znalazł ostatnie dopasowanie, a niepasujące przed nim też znalazł.
Jest wywoływane wywołanie: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, najpierw w pierwszym wywołaniu dla: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, a w każdym takim wywołaniu po jest sprawdzane, czy tekst pomiędzy końcem ostatniego wykrytego nagłówka, a początkiem przedostatniego nagłówka, a nawet artykułu wykrytego, czyli czy taki tekst rozdziału, czy składa się z samych znaków odstępów, a jeśli tak, to inicjowane są parametry zwracane przez funkcję. Dalej przechodzimy z pierwszego do drugiego wywołania, w którym oba wywołania są podobnie zbudowane.
; Parametry wychodzące z funkcji{{dk}}
* Oto parametry inicjowane przez funkcję w tych powyższych trzech etapach alternatywnych, które na końcu funkcji w nagłówku są zwracane:
: Funkcja zwraca wartości określone przez kod:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka;
</syntaxhighlight>
Wytłumaczenia parametrów zwracanych:
; Parametry określają ostatnie dopasowanie nagłówkowe w wewnątrz funkcji{{dk}}
* {{Code|liczba_start_naglowek}} - początek tego dopasowania,
* {{Code|liczba_koniec_naglowek}} - jego koniec,
* {{Code|naglowek}} - wartość napisu wprowadzenia tekstu nagłówka,
* {{Code|poziom_naglowka}} - poziom tego nagłówka.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
Funkcja służy do wyszukiwania, od tyłu, pozycji artykularnej przed wykrytym ostatnim rozdziałem, lub gdy nie ma rozdziałów, to liczy pozycję tylko artykularną, lub nawet pozycji rozdziałów zerowych spisu treści albo nawet tych z dwukropkiem na końcu danej linii, i szuka od tyłu takie coś, by to uznać za początek spisu treści wyciętej z tekstu zakodowanego spisu, czyli ogólnie mówiąc funkcja szuka dalej takiego początku dalszego.
Funkcja służy też do wydzielania części spisu spełniające powyższe kryteria, aby można było ją parsować przez inne funkcje '''Stronicowego parsera''', do wydzielania dalszych rozdziałów, a z nich wydzielania nagłówków (napisów wprowadzenia tekstu) i tekstów rozdziałów.
Funkcja pętluje przy wykrytych liniach składających się z odstępów, a się zatrzymuje na normalnych danych lub po zakończeniu zasobów.
Główny opis funkcji {{ZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}:
* Funkcja działa w oętli nieskończnonej, aż do zakończenia danych, lub do zwrócenia elementów przez nią,
* W tej pętli funkcja wyszukuje kolejne linie, które nie są pozycjami listy, z którego wyodrębiona linia jest analizowana bez przerwy, jeżeli istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje parametry:
** {{Code|liczba_start}} {{Patrz|liczba_start}} - od której pozycji od tyłu ma wyszukiwać pozycje artykularne,
** {{Code|czy_dalej_rozdzial}} {{Patrz|czy_dalej_rozdzial}} - czy {{ZobaczTeż|czy_dalej_rozdzial}} uznać za pierwszeństwo, w przypadku wykrytego rozdziału dodatniego w linii, lub nie wykrycia takiej linii, która nie jest częścią listy, wtedy jest ważny element (zmienna) {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie jest brane, coś przeciwnego,
** {{Code|liczba_pierwszy_rozdzialowy_artykul}} - jak w: {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}}.
Parametry {{ZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}} zwracane przez funkcję, które są zwracane kolejno w niej na końcu jej działania:
* Początek takiego punktu, uzyskanym w końcu na końcowym obiektu pętli (wyjaśnienie w tekście),
* Liczba znaków odstępów wykrytych poczasz wszystkich obiektów pętli (jest to reprezzentowane przez: {{Code|liczba_spac}} {{Patrz|liczba_spac}}),
* Czy ta tak, uzyskana i zwrócona, linia jest rozdziałem spisu treści (jest to reprezentowane przez: {{Code|czy_spis}} {{Patrz|czy_spis}}).
Etapy zwracania przez funkcję elementów:
; Uzyskanie linii według ogólnego wzoru
* Według {{LinkZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}, tą linia, byłoby takie coś pomiędzy ewentualnie znakami nowymi liniami, która spełnia wzór: {{Code|<nowiki>([^%*#:;<>\n][^\n]*)</nowiki>}}. To wyszukiwanie jest według funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wyszukujący w sposób ogólny linie, niezależnie jak są one realizowane w tekście.
; Początek i koniec uzyskanej linii według powyższego sposobu{{dk}}
* Początek i koniec przechwyconej linii, to są pewne liczby, wraz ze znakami nowej linii, jeśli po któreś stronie istnieją, lub nawet gdy to są w tym elementy, początku lub końca, tekstu, wtedy długość tych elementów jest zero.
; Brak dopasowania linii
* A jeżeli dopasowanie tej linii nie zgłasza niedopasowania, wtedy przy prawdziwości zmiennej: {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według: {{LinkZobaczTeż|czy_dalej_rozdzial}}, zwracane jest: {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie, wartość minimalną, pomiędzy tą zmienną a inną {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}} (jeśli ta zmienna nie istnieje, to domyślnie ma wartość {{Code|1}}).
; Rozdział równaniowy{{dk}}
* Jeżeli tą linią jest rozdział równaniowy, to zwracane jest, jeżeli wartość {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według {{LinkZobaczTeż|czy_dalej_rozdzial}}, ma wartość fałszywą, wtedy jest to dopasowanie końca tej linii, w pierwszym parametrze zwracanym, wraz z innymi danymi, według {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}, a jeżeli ta wartość jest prawdą, to zwracane jest {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, bo w tej funkcji nie ma prawa takich rozdziałów dopasowywać.Ma dopaasowywać tylko normalne linie niebędące pozycjami listy.
; Pierwsze rozgałęzenie specjalne instrukcji warunkowej{{dk}}
: Znaki odstępów - linia to białe znaki:
* Jeżeli linia istnieje i składa się z samych znaków odstępów, to liczmy długość tych znaków, wraz z nowymi liniami po prawej lub lewej stronie, jeśli istnieją, i wsadzamy to do ogólnego licznika {{Code|liczba_spac}} {{LinkPatrz|liczba_spac}}, która jest zwracana na końcu działania funkcji, jako drugi parametr w: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}. Funkcja wykonuje tych okrążeń pętli tyle, ile jest kolejnych linii składających się z tych znaków.
; Przypadek istnienia linii nie składającej się ze znaków odstępów{{dk}}
: Rozdział spisu treści i rozdział zerowy:
* Jeśli linia jest spisem względem {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przyjmuje wartość początkowi takiej ustalonej linii w tekście, a {{Code|czy_spis}} {{LinkPatrz|czy_spis}} przyjmuje wartość prawdziwą.
* A jeśli tak nie jest, to sprawdzamy, czy przed tą linią jest rozdział zerowy na podstawie funkcji: {{LinkŚródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}. Jeżeli ona jest tym rozdziałem, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma już nową wartość, przeciwnie, jeśli ta linia ma na końcu dwukropek, to ta wartość nowa jest równa początkowi wyszukania tej linii, a jeśli nie, to końcowi. Zmienna, czy jest rozdział spisu {{Code|czy_spis}} {{LinkPatrz|czy_spis}} ma wartość prawdziwą, gdy ten rozdział zerowy istnieje, a jeśli nie, to fałszywą.
; Przypadek istnienia, lub nie, rozdziału zerowego{{dk}}
* Jeśli znaleziono taki rozdział (zerowy), to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, to wtedy nie ma żadnych dodatkowych instrukcji do wykonania.
* Punkty zwracania zmiennych, jeśli przeciwnie do poprzedniego:
** Jeśli znaleziono taki spis, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma wartość początkowi takiej linii
** A jeżeli przeciwnie, nie ma w nim kodów, to końcowi, jeśli wyszukana linia nie jest rozdziałem z dwukropkiem na końcu, a jeśli jest, to początkowi tej linii,
*** Wtedy ją, tą uzyskaną z obliczeń, trzeba wliczać w ramach wydzielonego spisu, wtedy zmienna: {{Code|czy_spis}} {{LinkPatrz|czy_spis}}, jest prawdą,
** A jeśli jednak ma je, wtedy, czy linia ma pozycje artykularne, które nie są okładkami lub stronami niedozwolonymi, a jeśli tak jest, na podstawie wywołania funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, to zwracany jest początek wyszukania takiej linii w tej zmiennej, przeciwnie powtarzana jest ta wartość.
*** Wtedy, gdy linia nie ma takich artykułów, wtedy jeśli ona ma dwukropek na końcu, wtedy ustalamy zmienną: {{Code|czy_spis}} {{LinkPatrz|czy_spis}}, na prawdę.
: Na samym końcu zwracane jest to wszystko w postaci parametrów: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}.
== {{Śródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}{{Code|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}} ==
Funkcja wyszukuje, czy dla obiektu o typie {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} o numerze liczbowym {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} - nie jako łańcuch znakowy, dla ich generowanego odpowiednika {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, generowanego z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, są linki w zależności od podanej zmiennej: {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, a jeżeli tam nie ma linków, to przeszukiwany jest {{LinkPatrz|dalszy_tekst}} w ich poszukiwaniu, którymi zrządzą prawa w zależności od przyporządkowanej zmiennej: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, wartość prawdziwa tej zmiennej, włącza dowolność układu obiektów typu: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}.
Funkcja wyszukuje w linii, ale najwierw w: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, a później w: {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, jeżeli w poprzednim nie znalazł, pierwszego takiego linku przyporządkowagp, któremuś z tych obiektów, i przy pierwszym wykryciu zwraca wartość, ale dany obiekt uwwzględniany względem tego poprzedniegomusi spełniać prawa lub nie, w zależności od podanej zmiennej {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieLinkuWeSzablonieOrazDalszymNapisie(obiekt,kod,dalszy_tekst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_oddzielone,czy_wszystkie_linki)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}}, {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|czy_nieoddzielone}} {{Patrz|czy_nieoddzielone}} - czy linki mają być oddzielone interpunkcją, czy odstępami, w przypadu przeciwnym, jeżeli tak nie jest, to funkcja zwraca wartość fałszywą,
** {{Code|czy_wszystkie_linki}} {{Patrz|czy_wszystkie_linki}} - czy uwzględniaj wszystkie linki, czy tylko artykuły, nie okładki, (dozwolone), danej książki,
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy tekst, do przeszukiwania linkowego.
Funkcja zwraca wartość logiczną, jeżeli prawa linkowe tekstu są przyporządkowane przez zmienne: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, to jeśli znalazłeś takie linki, to zwracaj wartość prrawdziwą, a jeśli nie, to fałszywą.
Jeśli zmienna: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, przyjmuje wartość fałszywą, to te rozważane obiekty, muszą być oddzielone pewnymi znakami, tutaj: {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, a jak nie spełniają tego warunku, to funkcja zwraca wartość fałszywą, w innym wypadku dalej liczy i sprawdza.
== {{Śródtytuł|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}}{{Code|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}} ==
Funkcja jest rozszerzeniem funkcji: {{LinkŚródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}, dla ustalonych dwóch ostatnich zmiennych, które przyjmują wartość {{Code|true}} (prawdziwą), o nazwach: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}} i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, dla tej funkcji, mamy już zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, i {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, a funkcja w nagłówku je ustala, w wyniku działania w pętli.
Funkcja wyszukuje, od tyłu, w tekście, nabliższej pozycji typu: {{Code|SZABLON}}, {{Code|LINKW}} lub {{Code|LINKZ}}, w danej linii, i zwraca odpowiednio dwie wartości, pozycje wykrytą i wartość logiczną powodzenia, w innym przypadku, pozycję początkową z drugim parametrem fałszem.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|liczba_start_rozdzial}} - jak w: {{LinkPatrz|liczba_start_rozdzial}}, pozycja wyszukiwania końcowa,
** {{Code|liczba_spisowa}} {{Patrz|liczba_spisowa}} - pozycja wyszukiwania początkowa.
Parametry zwracane:
* Pierwszy parametr:
** Pozycja, w którym taką pozycję określona przez funkcję znaleziono, drugi parametr wtedy przyjmuje prawdę, jeśli nie znaleziono, takiej pozycji, to ta pozycja przymuje wartość początkową, adrugi parametr jest fałszem,
* Drugi parametr:
** Czy elementy są odzielone od sibie pewnymi znakami, według tej dokumentacji, i czy to są linki artykułów nieokładkowych dozwolonych, w najbliższej linii, wtedy zwraca w drugim parametrze prawdę, w przecciwnym wypadku, w przypadku znalezienia obiektu w najbliższej linii z: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, ale nie wykryto odpowiwdnich linków, według wspomnianej funkcji, wtedy zwracony ten paramtr będzie fałszem, kub do wyczerpania zasobów, też odpowiadającej fałśzowi,
Funkcja wyszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wykorzystując, że tekst jest zakodowany, i znajduje one przy pomocy wyrażenia regularnego generowanego przez: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, na podstawie kodu, którego fragment jest napisany tutaj:
<syntaxhighlight lang="lua">
local liczba_spisu=liczba_spisowa;
local szablonowe_modul=require("Module:Szablonowe");
---- Ustalenie wzoru kodowania, czyli jest to dowolny kod;
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu()
while(true)do
---- Wyszukuje dowolną linię według wyrażenia regularnego podanego w kodzie, zawartą całkowicie w linii;
local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
</syntaxhighlight>
Fukcja sprawdza, czy dokonano sprawdzenia, jeśli pozytywnie ono przeszło, to musi istnieć zmienna {{Code|liczba_linki_nierozdzialowe_szablonu}} {{Patrz|liczba_linki_nierozdzialowe_szablonu}} oraz musi być spełniona alternatywa dwóch warunków: {{Code|przed_tekst}} {{Patrz|przed_tekst}} musi być puste lub ma spełniać warunek według wzoru: {{Code|<nowiki>^[%p%s%d%.]*$</nowiki>}}.
Jeżeli funkcja nie dopasowała kodu: {{Code|obiekt_szablon}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, do wartości: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, to działa w pętli aż dopasuje je, aż do zakończenia zasobu danych dostępnych w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, jeżeli nie mogła by tego zrobić. A jeśli je dopasowała, to sprawdza, czy te kody są odpowiednimi obiektami, ewentualnie oddzielonych od siebie znakami {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, poprzez sprawdzanie funkcją wspomnianą w nagłówku. Jeśli ta funkcja zwróci wartość prawdziwą, to zwrócone zostaną parametry:
<syntaxhighlight lang="lua">
return liczba_linki_nierozdzialowe_szablonu,true;
</syntaxhighlight>
W innych przypadkach, jeżeli takiego dopasowania nie znalazła, to zwróć szereg wartości:
<syntaxhighlight lang="lua">
return liczba_spisowa,false;
</syntaxhighlight>
W tym przypadku wartość {{Code|liczba_spisowa}} {{LinkPatrz|liczba_spisowa}}, to nic innego jak ostatni argument naszej funkcji, czyli w przypadku niepowoddzenia dopasowania, zwracana jest wartość ta początkowa, zdrugą wartością, że niezaleziono poszukiwanego obiektu.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowychZakresowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowychZakresowych}} ==
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowychZakresowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_pierwszy_rozdzialowy_artykul,liczba_przed_rozdzialem,liczba_start_naglowek_przed,czy_znajdz)...end;
</syntaxhighlight>
Parametry funkcji:
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
du2gz3xqjr76nkqu5chpwjt4mro9zxk
554598
554597
2026-09-06T10:56:56Z
Persino
2851
/* Ciąg dalszy opisu funkcji */
554598
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
Jest to funkcja do sprawdzania tekstu zawartości (tekstu rozdziału, bez zawartości nagłówka) napisu wprowadzenia tekstu sekcji, za pomocą funkcji zwracanej, czy ona spełnia pewne określone warunki.
Funkcja, gdy co jest nie tak, to zwraca wartość {{Code|true}}, i przy okazji może zerować pewne określone zmienne, jeśli ona przy tym została odpowiednio ustawiona, przeciwnie ona zawsze zwraca wartość {{Code|nil}}, czyli nie zwraca żadnej wartości.
Za pomocą tej funkcji można sprawdzić, czy funkcja zawiera niedozwolone znaki wikikodu, i dlatego zwraca tą prawdziwość.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe)
... ---- ciało funkcji zwracanej
end;
end;
</syntaxhighlight>
Parametry ogólne funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|czy_zeruj}} {{Patrz|czy_zeruj}} - czy ma zerować, ścisle określone zmienne, które mieszczą się w niezerowej tablicy zmiennych składowych, tzn. w: {{Code|tab_zmienne}} {{LinkPatrz|tab_zmienne}},
* {{Code|tab_zmienne}} {{Patrz|tab_zmienne}} - zmienne w nim do zerowania,
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Parametry funkcji zwracanej dla tekstu rozważanego: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}:
* {{Code|liczba_koniec_naglowek}} {{Patrz|liczba_koniec_naglowek}} - numer znaku, po którym coś rozważamy,
* {{Code|liczba_obiekt_start_nowe}} {{Patrz|liczba_obiekt_start_nowe}} - numer znaku, przed którym coś rozważamy.
; Sprawdzenie spełnienia warunku, przejście do wnętrza tej instrukcji warunkowej{{dk}}
Funkcja zwracana sprawdza, czy zmienne: {{Code|liczba_koniec_naglowek}} {{LinkPatrz|liczba_koniec_naglowek}}, i {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, istnieją, i te zmienne sugerują punkty znakowe w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, ale jeżeli te zmienne liczbowe punktów znakowych mają takie wartości, że nie da się znaleźć dla tej zmiennej tekstowej treści pomiędzy nimi, to ta funkcja nie zwraca żadnej wartości, to zachodzi, kiedy nie jest spełniony warunek:
<syntaxhighlight lang="lua">
if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then
</syntaxhighlight>
; Sprawdzenie uzyskanej zmiennej tekstowej, będąca tekstem pomiędzy linkiem, a końcem rozdziału{{dk}}
* Liczenie zmiennej tekstowej za pomocą, którą będziemy sprawdzać:
: A jeżeli jest jednak tak, tzn. spełniony jest ten warunek, to znajdujemy taki tekst, robi to za pomocą funkcji: {{LzLua|mw.ustring.sub}}, i zapisuje to pod zmienną {{Code|str}} {{Patrz|str}}.
* Pierwszy etap analizowania tej zmiennej, czy jest poprawna, tzn. czy nie zwraca żadnej wartości, ale czy się zakańcza:
: Następnie sprawdza, czy ona jest w cudzysłowach, tzn. czy spełnia warunek: {{Code|<nowiki>^%s*'+(.+)'+%s*$</nowiki>}}, lub czy początek zaczyna się od znaków: {{Code|<nowiki>^[%*#:;<>]+</nowiki>}}, lub czy ten tekst zawiera dozwolone znaki z przedziału: {{Code|<nowiki>^[%s%p%w]*$</nowiki>}} - tzn. czy tekst składa się ze znaków odstępu, interpunkcyjnych, znaków alfanumerycznych lub z dolnym myślników, jeżeli któreś z tych warunków jest spełnione, to funkcja nie zwraca żadnej wartości, ale zatrzymuje się, tzn. zakańcza się, to oznacza, że wszystko jest w porządku. A jeżeli nie spełnione z żadnych z tych warunków, to ona idzie dalej, i robi następne czynności następne, aby sprawdzić dalsze warunki, czy wszystko jest w porządku.
; Sprawdzanie niepustych linii{{dk}}
* Sprawdzanie niepustych linii po liniach, ewentualnie składających się ze znaków odstępów:
: Funkcja liczy ile takich linii znalał, zapisuje to pod zmienną {{Code|ile}} {{Patrz|ile}}, jeśli wśród takich linii znalazł linie pasujące do: {{Code|<nowiki>^[%*#;:<>]</nowiki>}}, lub składające się znaków odstępów: {{Code|<nowiki>^%s*$</nowiki>}}, wtedy funkcja to liczy licznikiem: {{Code|ile_punktowanych}} {{Patrz|ile_punktowanych}}.
Funkcja w tak wyszukanych liniach w przeciwnym razie sprawdza, w liniach niepasujących do tych wzorów, czy tam są artykuły (strony) nie z rozważanej danej książki, przy pomocy funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, jeśli są takie elementy, to funkcja dodaje to do licznika: {{Code|ile_punktowanych}} {{LinkPatrz|ile_punktowanych}}, aby dodać jeden do licznika, dla każdej takiej linii funkcja sprawdza, czy przynajmniej jeden taki artykuł się znajduje tam, w każdej takiej wykrytej linii.
* Jeśli liczba określona przez zmienną: {{Code|ile_punktowanych}} {{LinkPatrz|ile_punktowanych}}, jeżeli jest co najmniej równa wyszukanym liniom: {{Code|ile}} {{LinkPatrz|ile}}, to funcja się zatrzymuje, i nie zwraca żadnej wartości, czyli wskazuje na powodzenie.
* Gdy liczba tego jest mniejsza niż wykrytych linii, to coś jest nie tak, wtedy funkcja nic nie zwraca, tylko idzie dalej.
; Inne operacje w przypadku niestwierdzenia, jak dotąd niepowodzenia przez funkcję, nie ma jeszcze zwróconej wartości {{nobold|{{Code|nil}}}}{{dk}}
* Zerowanie się pewnych wartości:
** Funkcja z tak policzonego: {{Code|str}} {{LinkPatrz|str}}, usuwa formy kodów z obiektami {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, a jeżeli znalazł w nim same, wtedy znaki odstępów, to ona nie zwraca żadnej wartości, ale się zakańcza, przeciwnie, sprawdza, czy jest zmienna: {{Code|czy_zeruj}} {{LinkPatrz|czy_zeruj}}, która jest prawdziwa, a jeśli tak, to elementy zmiennej: {{Code|tab_zmienne}} {{LinkPatrz|tab_zmienne}} są nilowane, tzn. podzmienne o kluczach:
* {{Code|liczba_nie_okladka_artykul}} {{Patrz|liczba_nie_okladka_artykul}} - liczba pozycji sekcji wskazująca, czy istnieje pierwszy taki artykuł (nie okładka, nie strona niedozwolona) aktualnej książki, lub bezpośrednio taki artykuł, niekoniecznie tej książki, czy znajduje się bezpośrednio w pozycji sekcji, i tylko sam tam się znajduje,
* {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{Patrz|liczba_pierwszy_rozdzialowy_artykul}} - liczba pozycji sekcji, która wskazuje na pierwszy taki wykryty artykuł, licząc od przodu, który spełnia pewne ścisle określone kryteria, jaki może być w książce,
: Kryteria określone przez te zmienne powyżej są określone przez funkcję: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}},
* {{Code|czy_ten_rozdzial}} {{Patrz|czy_ten_rozdzial}} - wartość prawdziwą wskazuje, czy wynilowano zmienne należące do rozważanej tablicy.
Ale niezależnie od wartości: {{Code|czy_zeruj}} {{LinkPatrz|czy_zeruj}}, funkcja wtedy zwraca zawsze wraca wartość {{Code|true}}, czyli ona zwraca to niepowodzenie.
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
Funkcja wyszukuje, od tyłu, kolejne rozdziały (napisy wprowadzenia tekstu), którego tekst rozdziału składa się z samych znaków odstępów, lub jest pusty, albo o poziomie wyższym rozdziałowo, nawet gdy jego tekst rozdziału jednak nie jest pusty.
Funkcja jest przerywana po najbliższych niespełniających warunkach. Funkcja zwraca parametry, z ostatniego pasującego dopasowana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - podczas wyszukiwania od tyłu, do jakiego punktu ma wyszukiwać,
* {{Code|liczba_obiekt_start_nowe}} - jak w: {{LinkPatrz|liczba_obiekt_start_nowe}}, wykorzystywane w funkcji: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, do sprawdzania pomiędzy znakami: końcem wyszukiwanego nagłówka, wraz ze znakiem nowej linii, a tą zmienną, robimy to do sprawdzania, czy tekst rozdziału spełnia ściśle określone normy określone przez tą funkcję. To jest to pozycja taka, na jaką wskazuje również pozycja jakaś artykularna, prze którym sprawdzamy tą funkcją tekst.
* {{Code|liczba_obiekt_start_spac_par}} {{Patrz|liczba_obiekt_start_spac_par}} - numer znaku, od którego ma wyszukiwać od tytułu pewne linie,
* {{Code|czy_dodatni}} {{Patrz|czy_dodatni}} - typ wyszukiwania rozdziałów, tzn. {{LinkZobaczTeż|czy_dodatni}},
* {{Code|czy_bez_naglowka}} {{Patrz|czy_bez_naglowka}} - czy ma wyszukiwać do: {{Code|1}}, od tytułu, a nie do: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}},
* {{Code|AnalizowanieSekcjowe}} {{Patrz|AnalizowanieSekcjowe}} - to nic innego jest, jak funkcja inicjowana przez zwracaną procedurę przez: {{LinkŚródtytuł|p.AnalizowanieSekcjowe}}, która ma w sobie pewne elementy początkowe w sobie wsadzonych jako parametry, które są wykorzystywane prze obiekt przez nią zwracany, która coś robi.
; Typy dopasowywania rozdziałów paarametru{{dk}} {{nobold|czy_dodatni {{Code|{{=}}}} {{LinkPatrz|czy_dodatni}} {{ZobaczTeż|czy_dodatni}}}}{{dk}}
* {{Code|1}} - wyszukuje rozdziały wskazywane przez funkcję: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}},
* {{Code|2}} - wyszukuje pozycje list zaczynające się od znaków: {{Code|<nowiki>[%*#:;<>]+</nowiki>}}, jako pewne rozdziały, które trzeba wyszukać,
* Inna wartość niż dwie powyższe - wtedy są wyszukiwane rozdziały niezaczynające się od: {{Code|<nowiki>[^%*#:;<>\n]</nowiki>}}, i kończące się na dwukropek.
: Dla dwóch ostatnich powyższych punktów są wyszukiwane linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
: Funkcja dla tych dwóch pierwszych sprawdza, tylko raz, czy to jest rozdział spisu treści wskazywaną przez funkcję: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, jeżeli parsowanie przeszło niepomyślnie, a funkcja: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, zrzuci wartość prawdziwą, wtedy ta cała funkcja z nagłówka zrzuca wartość logiczną fałszywą. Ta funkcja wykorzystuje wartość: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, jako drugi parametr, dla którego liczy ona tekst przed, ta zmienna może wskazywać na początek pozycji linii artykularnej (z artykułami), aby ona policzyła swoją wartość.
Funkcja działa w pętli do zakończenia zasobu danych lub w inny sposób, ale też do zakończenia. Funkcja wtedy robi operacje zawsze dla: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} równe {{Code|1}} lub dla tych, gdzie: {{LinkŚródtytuł|p.CzyTamElementyNieSpisoweArtykularne|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, zwraca wartość logiczną prawdziwą, własnie dla tego, jeśli ta operacja zwróci prawdę, to dla tego są dopasowywane elementy zwracane. Wtedy wiadomo, że wyszukane tak pozycje są rozdziałami.
Funkcja zwraca wyniku w postaci wartości szegu zwracanych:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej;
</syntaxhighlight>
Wytłumaczenie tych elementów zrzuconych przez nią dla dopasowań, licząc od tyłu:
; Ostanie dopasowanie nagłówka pasujące, gdy tekst jego rozdziału jest równy znakom odstępu lub jest pusty{{dk}}
* {{Code|liczba_start_naglowek}} - początek ostatniego wyszukanego takiego nagłówka,
* {{Code|liczba_koniec_naglowek_poczt}} - koniec pierwszego wyszukanego nagłówka,
* {{Code|naglowek}} - wartość nagłówka dla tego ostatniego dopasowania,
* {{Code|poziom_naglowka}} - poziom takiego nagłówka,
; Niepasujący nagłówek, wyszukane pierwsze z kolei po pasującym{{dk}}
: Według wartości zwracanych powyższych w pierwszej kolejności, dla którego tekst rozdziału nie jest równa znakom odstępu i nie jest pusty:
* {{Code|liczba_start_naglowek_dalej}} - początek po pasującym tak nagłówku,
* {{Code|liczba_koniec_naglowek_dalej}} - a tutaj jego koniec,
* {{Code|naglowek_dalej}} - wartość tekstu napisu wprowadzenia tekstu,
* {{Code|poziom_naglowek_dalej}} - tutaj jego poziom.
W przypadku nieznalezienia takich nagłówków funkcja nie zwraca niczego.
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
Funkcja służy do zaawansowanego szukania, od tyłu, nagłówków w przeciwieństwie do: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, która służy przede wszystkim do szukania sekcji kolejnych jednego rodzaju, a ta funkcja znajduje się w postaci układu sekcji różnego typu w rozważanym tekście.
Funkcja wyszukuje od tyłu, znajduje parametry ostatniego nagłówka i je zwraca, jeżeli je znalazł, a jeśli nie, to nie zwraca żadnej wartości, tylko funkcja się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Jedynie funkcja nie ma parametru: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, ponieważ ta funkcji nie szuka kolejnych rozdziałów tylko jednego rodzaju, lecz wielu.
=== {{Śródtytuł|str_spacja_lub_zerowy_naglowek}}{{Code|str_spacja_lub_zerowy_naglowek}} ===
Dla każdej takiej niepustej linii, sprawdzane jest, czy to są linie z odstępami, lub czy nie są elementami listy, ale w sposób rozszerzony, tzn. ten początek nie może składać się z pewnych znaków, czyli: {{Code|<nowiki>^[^%*#:;<>\n]</nowiki>}}.
Funkcja sprawdza, czy liczba takich linii, jest taka sama, ile jest niepustych linii, wtedy funkcja zwraca wartość logiczną prawdziwą, przeciwnie wartość nilową.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local str_spacja_lub_zerowy_naglowek=function(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do sprawdzenia.
=== Ciąg dalszy opisu funkcji ===
; Etapy dopasowania ostatniego dopasowania rozdziałów, jego pozycja w tekście i jego napis wprowadzenia tekstu
* Etap ogólny
Funkcja najpierw wyszukuje rozdziały poprzez wskazanie przez funkcję: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, a jeżeli znalazł artykuł, o niepustych secjach pomiędzy ostatnim wskazanym artykułen (przed artykułem), a rozdziałem, wtedy ta funkcja zwraca wartość logiczną fałszywą i zwraca wartość nilową, czyli nic nie zwraca, i funkcja się zakańcza, i wskazuje, że nie znalazł takiego nagłówka, to się dzieje pod warunkiem, że funkcja: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, została podana, w przeciwnym wypadku, to już tak się nie dzieje, a nagłówek z tego wywołania mógł być znaleziony, ale nie musi.
; Etapy alternatywy
* Pierwszy etap
** To dotyczy, że znalazł ostatnie dopasowanie, ale niepasującego nagłówka, przed nim, nie ma.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli tego nie znalazł, wtedy przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, w pętli nieskończonej, najpierw dla parametru: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, najpierw jest to pierwsze, a później to drugie, jeśli z tego pierwszego zostało wykonana komenda przerwania pętli, to drugie dopasowanie nie zostanie wykonane w danym obiegu jego, normalnie, bez tego są dwa wywołania.
W każdym takim wywołaniu i dopasowaniu, w pierwszym, czy drugim, będzie sprawdzane, czy tego dokonano, czy taki nagłówek znaleziono, a jeśli tak, to sprawdzany jest tekst pomiędzy ostatnim końcem w wykrytym nagłówku, a początkiem tego przedostatniego, lub z etapu ogólnego, funkcją: {{LinkŚródtytuł|str_spacja_lub_zerowy_naglowek}}, jeżeli funkcja zwróciła wartość logiczną odpowiadającej fałszywej, to pętla jest przerywana, w przeciwnym wypadku są inicjowane parametry tego dopasowania, które przygotowuje ona zwrócić do funkcji w nagłówku.
: Ogólnie po drugim taki wywołaniu następuje sprawdzenie parametrów zwróconych:
Jeżeli w ostatnim takim wywołaniu w tym funkcja zwraca niedopasowanie, wtedy zwracane jest przerywanie pętli, wtedy mamy parametry ostatniego dopasowania, jeśli istnieją takie.
* Drugi
** To dotyczy, że takiego dopasowania pasującego nie znalazł.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli to znalazł, to wyszukany stąd nagłówek jest rozwijany przy pomocy funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}. Jeżeli parser funkcji nie wykrył wykrzyknika na końcu takiego nagłówka, wtedy jest sprawdzane przy pomocy iteratora w zakodowanym tekście przy pomocy: {{Code|{{m|Szablonowe}}}}, na podstawie: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, czy w nagłówku istnieje artykuły bieżącej ksiązki, czy analizowanej, i czy to nie jest okładka, czy strona niedozwolona. Jeżeli wykryto takie artykuły, lub pętla nie została wykonana, bo nie ma takich wykrytym w nagłówku kodów, to funkcja inicjuje parametry zwracanych wartości przez funkcję w nagłówku.
* Trzeci
** To dotyczy pozostałych przypadków, w którym znalazł ostatnie dopasowanie, a niepasujące przed nim też znalazł.
Jest wywoływane wywołanie: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, najpierw w pierwszym wywołaniu dla: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}. A w każdym takim wywołaniu jest sprawdzane, czy tekst pomiędzy końcem ostatniego wykrytego nagłówka, a początkiem przedostatniego nagłówka, a nawet artykułu wykrytego, czyli czy taki tekst rozdziału, czy składa się z samych znaków odstępów, a jeśli tak, to inicjowane są parametry zwracane przez funkcję. Dalej przechodzimy z pierwszego do drugiego wywołania, w którym oba wywołania są podobnie zbudowane.
; Parametry wychodzące z funkcji{{dk}}
* Oto parametry inicjowane przez funkcję w tych powyższych trzech etapach alternatywnych, które na końcu funkcji w nagłówku są zwracane:
: Funkcja zwraca wartości określone przez kod:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka;
</syntaxhighlight>
Wytłumaczenia parametrów zwracanych:
; Parametry określają ostatnie dopasowanie nagłówkowe w wewnątrz funkcji{{dk}}
* {{Code|liczba_start_naglowek}} - początek tego dopasowania,
* {{Code|liczba_koniec_naglowek}} - jego koniec,
* {{Code|naglowek}} - wartość napisu wprowadzenia tekstu nagłówka,
* {{Code|poziom_naglowka}} - poziom tego nagłówka.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
Funkcja służy do wyszukiwania, od tyłu, pozycji artykularnej przed wykrytym ostatnim rozdziałem, lub gdy nie ma rozdziałów, to liczy pozycję tylko artykularną, lub nawet pozycji rozdziałów zerowych spisu treści albo nawet tych z dwukropkiem na końcu danej linii, i szuka od tyłu takie coś, by to uznać za początek spisu treści wyciętej z tekstu zakodowanego spisu, czyli ogólnie mówiąc funkcja szuka dalej takiego początku dalszego.
Funkcja służy też do wydzielania części spisu spełniające powyższe kryteria, aby można było ją parsować przez inne funkcje '''Stronicowego parsera''', do wydzielania dalszych rozdziałów, a z nich wydzielania nagłówków (napisów wprowadzenia tekstu) i tekstów rozdziałów.
Funkcja pętluje przy wykrytych liniach składających się z odstępów, a się zatrzymuje na normalnych danych lub po zakończeniu zasobów.
Główny opis funkcji {{ZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}:
* Funkcja działa w oętli nieskończnonej, aż do zakończenia danych, lub do zwrócenia elementów przez nią,
* W tej pętli funkcja wyszukuje kolejne linie, które nie są pozycjami listy, z którego wyodrębiona linia jest analizowana bez przerwy, jeżeli istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje parametry:
** {{Code|liczba_start}} {{Patrz|liczba_start}} - od której pozycji od tyłu ma wyszukiwać pozycje artykularne,
** {{Code|czy_dalej_rozdzial}} {{Patrz|czy_dalej_rozdzial}} - czy {{ZobaczTeż|czy_dalej_rozdzial}} uznać za pierwszeństwo, w przypadku wykrytego rozdziału dodatniego w linii, lub nie wykrycia takiej linii, która nie jest częścią listy, wtedy jest ważny element (zmienna) {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie jest brane, coś przeciwnego,
** {{Code|liczba_pierwszy_rozdzialowy_artykul}} - jak w: {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}}.
Parametry {{ZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}} zwracane przez funkcję, które są zwracane kolejno w niej na końcu jej działania:
* Początek takiego punktu, uzyskanym w końcu na końcowym obiektu pętli (wyjaśnienie w tekście),
* Liczba znaków odstępów wykrytych poczasz wszystkich obiektów pętli (jest to reprezzentowane przez: {{Code|liczba_spac}} {{Patrz|liczba_spac}}),
* Czy ta tak, uzyskana i zwrócona, linia jest rozdziałem spisu treści (jest to reprezentowane przez: {{Code|czy_spis}} {{Patrz|czy_spis}}).
Etapy zwracania przez funkcję elementów:
; Uzyskanie linii według ogólnego wzoru
* Według {{LinkZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}, tą linia, byłoby takie coś pomiędzy ewentualnie znakami nowymi liniami, która spełnia wzór: {{Code|<nowiki>([^%*#:;<>\n][^\n]*)</nowiki>}}. To wyszukiwanie jest według funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wyszukujący w sposób ogólny linie, niezależnie jak są one realizowane w tekście.
; Początek i koniec uzyskanej linii według powyższego sposobu{{dk}}
* Początek i koniec przechwyconej linii, to są pewne liczby, wraz ze znakami nowej linii, jeśli po któreś stronie istnieją, lub nawet gdy to są w tym elementy, początku lub końca, tekstu, wtedy długość tych elementów jest zero.
; Brak dopasowania linii
* A jeżeli dopasowanie tej linii nie zgłasza niedopasowania, wtedy przy prawdziwości zmiennej: {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według: {{LinkZobaczTeż|czy_dalej_rozdzial}}, zwracane jest: {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie, wartość minimalną, pomiędzy tą zmienną a inną {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}} (jeśli ta zmienna nie istnieje, to domyślnie ma wartość {{Code|1}}).
; Rozdział równaniowy{{dk}}
* Jeżeli tą linią jest rozdział równaniowy, to zwracane jest, jeżeli wartość {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według {{LinkZobaczTeż|czy_dalej_rozdzial}}, ma wartość fałszywą, wtedy jest to dopasowanie końca tej linii, w pierwszym parametrze zwracanym, wraz z innymi danymi, według {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}, a jeżeli ta wartość jest prawdą, to zwracane jest {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, bo w tej funkcji nie ma prawa takich rozdziałów dopasowywać.Ma dopaasowywać tylko normalne linie niebędące pozycjami listy.
; Pierwsze rozgałęzenie specjalne instrukcji warunkowej{{dk}}
: Znaki odstępów - linia to białe znaki:
* Jeżeli linia istnieje i składa się z samych znaków odstępów, to liczmy długość tych znaków, wraz z nowymi liniami po prawej lub lewej stronie, jeśli istnieją, i wsadzamy to do ogólnego licznika {{Code|liczba_spac}} {{LinkPatrz|liczba_spac}}, która jest zwracana na końcu działania funkcji, jako drugi parametr w: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}. Funkcja wykonuje tych okrążeń pętli tyle, ile jest kolejnych linii składających się z tych znaków.
; Przypadek istnienia linii nie składającej się ze znaków odstępów{{dk}}
: Rozdział spisu treści i rozdział zerowy:
* Jeśli linia jest spisem względem {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przyjmuje wartość początkowi takiej ustalonej linii w tekście, a {{Code|czy_spis}} {{LinkPatrz|czy_spis}} przyjmuje wartość prawdziwą.
* A jeśli tak nie jest, to sprawdzamy, czy przed tą linią jest rozdział zerowy na podstawie funkcji: {{LinkŚródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}. Jeżeli ona jest tym rozdziałem, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma już nową wartość, przeciwnie, jeśli ta linia ma na końcu dwukropek, to ta wartość nowa jest równa początkowi wyszukania tej linii, a jeśli nie, to końcowi. Zmienna, czy jest rozdział spisu {{Code|czy_spis}} {{LinkPatrz|czy_spis}} ma wartość prawdziwą, gdy ten rozdział zerowy istnieje, a jeśli nie, to fałszywą.
; Przypadek istnienia, lub nie, rozdziału zerowego{{dk}}
* Jeśli znaleziono taki rozdział (zerowy), to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, to wtedy nie ma żadnych dodatkowych instrukcji do wykonania.
* Punkty zwracania zmiennych, jeśli przeciwnie do poprzedniego:
** Jeśli znaleziono taki spis, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma wartość początkowi takiej linii
** A jeżeli przeciwnie, nie ma w nim kodów, to końcowi, jeśli wyszukana linia nie jest rozdziałem z dwukropkiem na końcu, a jeśli jest, to początkowi tej linii,
*** Wtedy ją, tą uzyskaną z obliczeń, trzeba wliczać w ramach wydzielonego spisu, wtedy zmienna: {{Code|czy_spis}} {{LinkPatrz|czy_spis}}, jest prawdą,
** A jeśli jednak ma je, wtedy, czy linia ma pozycje artykularne, które nie są okładkami lub stronami niedozwolonymi, a jeśli tak jest, na podstawie wywołania funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, to zwracany jest początek wyszukania takiej linii w tej zmiennej, przeciwnie powtarzana jest ta wartość.
*** Wtedy, gdy linia nie ma takich artykułów, wtedy jeśli ona ma dwukropek na końcu, wtedy ustalamy zmienną: {{Code|czy_spis}} {{LinkPatrz|czy_spis}}, na prawdę.
: Na samym końcu zwracane jest to wszystko w postaci parametrów: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}.
== {{Śródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}{{Code|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}} ==
Funkcja wyszukuje, czy dla obiektu o typie {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} o numerze liczbowym {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} - nie jako łańcuch znakowy, dla ich generowanego odpowiednika {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, generowanego z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, są linki w zależności od podanej zmiennej: {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, a jeżeli tam nie ma linków, to przeszukiwany jest {{LinkPatrz|dalszy_tekst}} w ich poszukiwaniu, którymi zrządzą prawa w zależności od przyporządkowanej zmiennej: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, wartość prawdziwa tej zmiennej, włącza dowolność układu obiektów typu: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}.
Funkcja wyszukuje w linii, ale najwierw w: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, a później w: {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, jeżeli w poprzednim nie znalazł, pierwszego takiego linku przyporządkowagp, któremuś z tych obiektów, i przy pierwszym wykryciu zwraca wartość, ale dany obiekt uwwzględniany względem tego poprzedniegomusi spełniać prawa lub nie, w zależności od podanej zmiennej {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieLinkuWeSzablonieOrazDalszymNapisie(obiekt,kod,dalszy_tekst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_oddzielone,czy_wszystkie_linki)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}}, {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|czy_nieoddzielone}} {{Patrz|czy_nieoddzielone}} - czy linki mają być oddzielone interpunkcją, czy odstępami, w przypadu przeciwnym, jeżeli tak nie jest, to funkcja zwraca wartość fałszywą,
** {{Code|czy_wszystkie_linki}} {{Patrz|czy_wszystkie_linki}} - czy uwzględniaj wszystkie linki, czy tylko artykuły, nie okładki, (dozwolone), danej książki,
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy tekst, do przeszukiwania linkowego.
Funkcja zwraca wartość logiczną, jeżeli prawa linkowe tekstu są przyporządkowane przez zmienne: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, to jeśli znalazłeś takie linki, to zwracaj wartość prrawdziwą, a jeśli nie, to fałszywą.
Jeśli zmienna: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, przyjmuje wartość fałszywą, to te rozważane obiekty, muszą być oddzielone pewnymi znakami, tutaj: {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, a jak nie spełniają tego warunku, to funkcja zwraca wartość fałszywą, w innym wypadku dalej liczy i sprawdza.
== {{Śródtytuł|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}}{{Code|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}} ==
Funkcja jest rozszerzeniem funkcji: {{LinkŚródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}, dla ustalonych dwóch ostatnich zmiennych, które przyjmują wartość {{Code|true}} (prawdziwą), o nazwach: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}} i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, dla tej funkcji, mamy już zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, i {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, a funkcja w nagłówku je ustala, w wyniku działania w pętli.
Funkcja wyszukuje, od tyłu, w tekście, nabliższej pozycji typu: {{Code|SZABLON}}, {{Code|LINKW}} lub {{Code|LINKZ}}, w danej linii, i zwraca odpowiednio dwie wartości, pozycje wykrytą i wartość logiczną powodzenia, w innym przypadku, pozycję początkową z drugim parametrem fałszem.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|liczba_start_rozdzial}} - jak w: {{LinkPatrz|liczba_start_rozdzial}}, pozycja wyszukiwania końcowa,
** {{Code|liczba_spisowa}} {{Patrz|liczba_spisowa}} - pozycja wyszukiwania początkowa.
Parametry zwracane:
* Pierwszy parametr:
** Pozycja, w którym taką pozycję określona przez funkcję znaleziono, drugi parametr wtedy przyjmuje prawdę, jeśli nie znaleziono, takiej pozycji, to ta pozycja przymuje wartość początkową, adrugi parametr jest fałszem,
* Drugi parametr:
** Czy elementy są odzielone od sibie pewnymi znakami, według tej dokumentacji, i czy to są linki artykułów nieokładkowych dozwolonych, w najbliższej linii, wtedy zwraca w drugim parametrze prawdę, w przecciwnym wypadku, w przypadku znalezienia obiektu w najbliższej linii z: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, ale nie wykryto odpowiwdnich linków, według wspomnianej funkcji, wtedy zwracony ten paramtr będzie fałszem, kub do wyczerpania zasobów, też odpowiadającej fałśzowi,
Funkcja wyszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wykorzystując, że tekst jest zakodowany, i znajduje one przy pomocy wyrażenia regularnego generowanego przez: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, na podstawie kodu, którego fragment jest napisany tutaj:
<syntaxhighlight lang="lua">
local liczba_spisu=liczba_spisowa;
local szablonowe_modul=require("Module:Szablonowe");
---- Ustalenie wzoru kodowania, czyli jest to dowolny kod;
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu()
while(true)do
---- Wyszukuje dowolną linię według wyrażenia regularnego podanego w kodzie, zawartą całkowicie w linii;
local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
</syntaxhighlight>
Fukcja sprawdza, czy dokonano sprawdzenia, jeśli pozytywnie ono przeszło, to musi istnieć zmienna {{Code|liczba_linki_nierozdzialowe_szablonu}} {{Patrz|liczba_linki_nierozdzialowe_szablonu}} oraz musi być spełniona alternatywa dwóch warunków: {{Code|przed_tekst}} {{Patrz|przed_tekst}} musi być puste lub ma spełniać warunek według wzoru: {{Code|<nowiki>^[%p%s%d%.]*$</nowiki>}}.
Jeżeli funkcja nie dopasowała kodu: {{Code|obiekt_szablon}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, do wartości: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, to działa w pętli aż dopasuje je, aż do zakończenia zasobu danych dostępnych w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, jeżeli nie mogła by tego zrobić. A jeśli je dopasowała, to sprawdza, czy te kody są odpowiednimi obiektami, ewentualnie oddzielonych od siebie znakami {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, poprzez sprawdzanie funkcją wspomnianą w nagłówku. Jeśli ta funkcja zwróci wartość prawdziwą, to zwrócone zostaną parametry:
<syntaxhighlight lang="lua">
return liczba_linki_nierozdzialowe_szablonu,true;
</syntaxhighlight>
W innych przypadkach, jeżeli takiego dopasowania nie znalazła, to zwróć szereg wartości:
<syntaxhighlight lang="lua">
return liczba_spisowa,false;
</syntaxhighlight>
W tym przypadku wartość {{Code|liczba_spisowa}} {{LinkPatrz|liczba_spisowa}}, to nic innego jak ostatni argument naszej funkcji, czyli w przypadku niepowoddzenia dopasowania, zwracana jest wartość ta początkowa, zdrugą wartością, że niezaleziono poszukiwanego obiektu.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowychZakresowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowychZakresowych}} ==
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowychZakresowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_pierwszy_rozdzialowy_artykul,liczba_przed_rozdzialem,liczba_start_naglowek_przed,czy_znajdz)...end;
</syntaxhighlight>
Parametry funkcji:
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
9d649zyx8yybscmblb4p2lvgjk3k1f8
554599
554598
2026-09-06T11:28:18Z
Persino
2851
/* {{Śródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}{{Code|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}} */
554599
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
Jest to funkcja do sprawdzania tekstu zawartości (tekstu rozdziału, bez zawartości nagłówka) napisu wprowadzenia tekstu sekcji, za pomocą funkcji zwracanej, czy ona spełnia pewne określone warunki.
Funkcja, gdy co jest nie tak, to zwraca wartość {{Code|true}}, i przy okazji może zerować pewne określone zmienne, jeśli ona przy tym została odpowiednio ustawiona, przeciwnie ona zawsze zwraca wartość {{Code|nil}}, czyli nie zwraca żadnej wartości.
Za pomocą tej funkcji można sprawdzić, czy funkcja zawiera niedozwolone znaki wikikodu, i dlatego zwraca tą prawdziwość.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe)
... ---- ciało funkcji zwracanej
end;
end;
</syntaxhighlight>
Parametry ogólne funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|czy_zeruj}} {{Patrz|czy_zeruj}} - czy ma zerować, ścisle określone zmienne, które mieszczą się w niezerowej tablicy zmiennych składowych, tzn. w: {{Code|tab_zmienne}} {{LinkPatrz|tab_zmienne}},
* {{Code|tab_zmienne}} {{Patrz|tab_zmienne}} - zmienne w nim do zerowania,
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Parametry funkcji zwracanej dla tekstu rozważanego: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}:
* {{Code|liczba_koniec_naglowek}} {{Patrz|liczba_koniec_naglowek}} - numer znaku, po którym coś rozważamy,
* {{Code|liczba_obiekt_start_nowe}} {{Patrz|liczba_obiekt_start_nowe}} - numer znaku, przed którym coś rozważamy.
; Sprawdzenie spełnienia warunku, przejście do wnętrza tej instrukcji warunkowej{{dk}}
Funkcja zwracana sprawdza, czy zmienne: {{Code|liczba_koniec_naglowek}} {{LinkPatrz|liczba_koniec_naglowek}}, i {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, istnieją, i te zmienne sugerują punkty znakowe w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, ale jeżeli te zmienne liczbowe punktów znakowych mają takie wartości, że nie da się znaleźć dla tej zmiennej tekstowej treści pomiędzy nimi, to ta funkcja nie zwraca żadnej wartości, to zachodzi, kiedy nie jest spełniony warunek:
<syntaxhighlight lang="lua">
if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then
</syntaxhighlight>
; Sprawdzenie uzyskanej zmiennej tekstowej, będąca tekstem pomiędzy linkiem, a końcem rozdziału{{dk}}
* Liczenie zmiennej tekstowej za pomocą, którą będziemy sprawdzać:
: A jeżeli jest jednak tak, tzn. spełniony jest ten warunek, to znajdujemy taki tekst, robi to za pomocą funkcji: {{LzLua|mw.ustring.sub}}, i zapisuje to pod zmienną {{Code|str}} {{Patrz|str}}.
* Pierwszy etap analizowania tej zmiennej, czy jest poprawna, tzn. czy nie zwraca żadnej wartości, ale czy się zakańcza:
: Następnie sprawdza, czy ona jest w cudzysłowach, tzn. czy spełnia warunek: {{Code|<nowiki>^%s*'+(.+)'+%s*$</nowiki>}}, lub czy początek zaczyna się od znaków: {{Code|<nowiki>^[%*#:;<>]+</nowiki>}}, lub czy ten tekst zawiera dozwolone znaki z przedziału: {{Code|<nowiki>^[%s%p%w]*$</nowiki>}} - tzn. czy tekst składa się ze znaków odstępu, interpunkcyjnych, znaków alfanumerycznych lub z dolnym myślników, jeżeli któreś z tych warunków jest spełnione, to funkcja nie zwraca żadnej wartości, ale zatrzymuje się, tzn. zakańcza się, to oznacza, że wszystko jest w porządku. A jeżeli nie spełnione z żadnych z tych warunków, to ona idzie dalej, i robi następne czynności następne, aby sprawdzić dalsze warunki, czy wszystko jest w porządku.
; Sprawdzanie niepustych linii{{dk}}
* Sprawdzanie niepustych linii po liniach, ewentualnie składających się ze znaków odstępów:
: Funkcja liczy ile takich linii znalał, zapisuje to pod zmienną {{Code|ile}} {{Patrz|ile}}, jeśli wśród takich linii znalazł linie pasujące do: {{Code|<nowiki>^[%*#;:<>]</nowiki>}}, lub składające się znaków odstępów: {{Code|<nowiki>^%s*$</nowiki>}}, wtedy funkcja to liczy licznikiem: {{Code|ile_punktowanych}} {{Patrz|ile_punktowanych}}.
Funkcja w tak wyszukanych liniach w przeciwnym razie sprawdza, w liniach niepasujących do tych wzorów, czy tam są artykuły (strony) nie z rozważanej danej książki, przy pomocy funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, jeśli są takie elementy, to funkcja dodaje to do licznika: {{Code|ile_punktowanych}} {{LinkPatrz|ile_punktowanych}}, aby dodać jeden do licznika, dla każdej takiej linii funkcja sprawdza, czy przynajmniej jeden taki artykuł się znajduje tam, w każdej takiej wykrytej linii.
* Jeśli liczba określona przez zmienną: {{Code|ile_punktowanych}} {{LinkPatrz|ile_punktowanych}}, jeżeli jest co najmniej równa wyszukanym liniom: {{Code|ile}} {{LinkPatrz|ile}}, to funcja się zatrzymuje, i nie zwraca żadnej wartości, czyli wskazuje na powodzenie.
* Gdy liczba tego jest mniejsza niż wykrytych linii, to coś jest nie tak, wtedy funkcja nic nie zwraca, tylko idzie dalej.
; Inne operacje w przypadku niestwierdzenia, jak dotąd niepowodzenia przez funkcję, nie ma jeszcze zwróconej wartości {{nobold|{{Code|nil}}}}{{dk}}
* Zerowanie się pewnych wartości:
** Funkcja z tak policzonego: {{Code|str}} {{LinkPatrz|str}}, usuwa formy kodów z obiektami {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, a jeżeli znalazł w nim same, wtedy znaki odstępów, to ona nie zwraca żadnej wartości, ale się zakańcza, przeciwnie, sprawdza, czy jest zmienna: {{Code|czy_zeruj}} {{LinkPatrz|czy_zeruj}}, która jest prawdziwa, a jeśli tak, to elementy zmiennej: {{Code|tab_zmienne}} {{LinkPatrz|tab_zmienne}} są nilowane, tzn. podzmienne o kluczach:
* {{Code|liczba_nie_okladka_artykul}} {{Patrz|liczba_nie_okladka_artykul}} - liczba pozycji sekcji wskazująca, czy istnieje pierwszy taki artykuł (nie okładka, nie strona niedozwolona) aktualnej książki, lub bezpośrednio taki artykuł, niekoniecznie tej książki, czy znajduje się bezpośrednio w pozycji sekcji, i tylko sam tam się znajduje,
* {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{Patrz|liczba_pierwszy_rozdzialowy_artykul}} - liczba pozycji sekcji, która wskazuje na pierwszy taki wykryty artykuł, licząc od przodu, który spełnia pewne ścisle określone kryteria, jaki może być w książce,
: Kryteria określone przez te zmienne powyżej są określone przez funkcję: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}},
* {{Code|czy_ten_rozdzial}} {{Patrz|czy_ten_rozdzial}} - wartość prawdziwą wskazuje, czy wynilowano zmienne należące do rozważanej tablicy.
Ale niezależnie od wartości: {{Code|czy_zeruj}} {{LinkPatrz|czy_zeruj}}, funkcja wtedy zwraca zawsze wraca wartość {{Code|true}}, czyli ona zwraca to niepowodzenie.
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
Funkcja wyszukuje, od tyłu, kolejne rozdziały (napisy wprowadzenia tekstu), którego tekst rozdziału składa się z samych znaków odstępów, lub jest pusty, albo o poziomie wyższym rozdziałowo, nawet gdy jego tekst rozdziału jednak nie jest pusty.
Funkcja jest przerywana po najbliższych niespełniających warunkach. Funkcja zwraca parametry, z ostatniego pasującego dopasowana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - podczas wyszukiwania od tyłu, do jakiego punktu ma wyszukiwać,
* {{Code|liczba_obiekt_start_nowe}} - jak w: {{LinkPatrz|liczba_obiekt_start_nowe}}, wykorzystywane w funkcji: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, do sprawdzania pomiędzy znakami: końcem wyszukiwanego nagłówka, wraz ze znakiem nowej linii, a tą zmienną, robimy to do sprawdzania, czy tekst rozdziału spełnia ściśle określone normy określone przez tą funkcję. To jest to pozycja taka, na jaką wskazuje również pozycja jakaś artykularna, prze którym sprawdzamy tą funkcją tekst.
* {{Code|liczba_obiekt_start_spac_par}} {{Patrz|liczba_obiekt_start_spac_par}} - numer znaku, od którego ma wyszukiwać od tytułu pewne linie,
* {{Code|czy_dodatni}} {{Patrz|czy_dodatni}} - typ wyszukiwania rozdziałów, tzn. {{LinkZobaczTeż|czy_dodatni}},
* {{Code|czy_bez_naglowka}} {{Patrz|czy_bez_naglowka}} - czy ma wyszukiwać do: {{Code|1}}, od tytułu, a nie do: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}},
* {{Code|AnalizowanieSekcjowe}} {{Patrz|AnalizowanieSekcjowe}} - to nic innego jest, jak funkcja inicjowana przez zwracaną procedurę przez: {{LinkŚródtytuł|p.AnalizowanieSekcjowe}}, która ma w sobie pewne elementy początkowe w sobie wsadzonych jako parametry, które są wykorzystywane prze obiekt przez nią zwracany, która coś robi.
; Typy dopasowywania rozdziałów paarametru{{dk}} {{nobold|czy_dodatni {{Code|{{=}}}} {{LinkPatrz|czy_dodatni}} {{ZobaczTeż|czy_dodatni}}}}{{dk}}
* {{Code|1}} - wyszukuje rozdziały wskazywane przez funkcję: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}},
* {{Code|2}} - wyszukuje pozycje list zaczynające się od znaków: {{Code|<nowiki>[%*#:;<>]+</nowiki>}}, jako pewne rozdziały, które trzeba wyszukać,
* Inna wartość niż dwie powyższe - wtedy są wyszukiwane rozdziały niezaczynające się od: {{Code|<nowiki>[^%*#:;<>\n]</nowiki>}}, i kończące się na dwukropek.
: Dla dwóch ostatnich powyższych punktów są wyszukiwane linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
: Funkcja dla tych dwóch pierwszych sprawdza, tylko raz, czy to jest rozdział spisu treści wskazywaną przez funkcję: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, jeżeli parsowanie przeszło niepomyślnie, a funkcja: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, zrzuci wartość prawdziwą, wtedy ta cała funkcja z nagłówka zrzuca wartość logiczną fałszywą. Ta funkcja wykorzystuje wartość: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, jako drugi parametr, dla którego liczy ona tekst przed, ta zmienna może wskazywać na początek pozycji linii artykularnej (z artykułami), aby ona policzyła swoją wartość.
Funkcja działa w pętli do zakończenia zasobu danych lub w inny sposób, ale też do zakończenia. Funkcja wtedy robi operacje zawsze dla: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} równe {{Code|1}} lub dla tych, gdzie: {{LinkŚródtytuł|p.CzyTamElementyNieSpisoweArtykularne|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, zwraca wartość logiczną prawdziwą, własnie dla tego, jeśli ta operacja zwróci prawdę, to dla tego są dopasowywane elementy zwracane. Wtedy wiadomo, że wyszukane tak pozycje są rozdziałami.
Funkcja zwraca wyniku w postaci wartości szegu zwracanych:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej;
</syntaxhighlight>
Wytłumaczenie tych elementów zrzuconych przez nią dla dopasowań, licząc od tyłu:
; Ostanie dopasowanie nagłówka pasujące, gdy tekst jego rozdziału jest równy znakom odstępu lub jest pusty{{dk}}
* {{Code|liczba_start_naglowek}} - początek ostatniego wyszukanego takiego nagłówka,
* {{Code|liczba_koniec_naglowek_poczt}} - koniec pierwszego wyszukanego nagłówka,
* {{Code|naglowek}} - wartość nagłówka dla tego ostatniego dopasowania,
* {{Code|poziom_naglowka}} - poziom takiego nagłówka,
; Niepasujący nagłówek, wyszukane pierwsze z kolei po pasującym{{dk}}
: Według wartości zwracanych powyższych w pierwszej kolejności, dla którego tekst rozdziału nie jest równa znakom odstępu i nie jest pusty:
* {{Code|liczba_start_naglowek_dalej}} - początek po pasującym tak nagłówku,
* {{Code|liczba_koniec_naglowek_dalej}} - a tutaj jego koniec,
* {{Code|naglowek_dalej}} - wartość tekstu napisu wprowadzenia tekstu,
* {{Code|poziom_naglowek_dalej}} - tutaj jego poziom.
W przypadku nieznalezienia takich nagłówków funkcja nie zwraca niczego.
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
Funkcja służy do zaawansowanego szukania, od tyłu, nagłówków w przeciwieństwie do: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, która służy przede wszystkim do szukania sekcji kolejnych jednego rodzaju, a ta funkcja znajduje się w postaci układu sekcji różnego typu w rozważanym tekście.
Funkcja wyszukuje od tyłu, znajduje parametry ostatniego nagłówka i je zwraca, jeżeli je znalazł, a jeśli nie, to nie zwraca żadnej wartości, tylko funkcja się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Jedynie funkcja nie ma parametru: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, ponieważ ta funkcji nie szuka kolejnych rozdziałów tylko jednego rodzaju, lecz wielu.
=== {{Śródtytuł|str_spacja_lub_zerowy_naglowek}}{{Code|str_spacja_lub_zerowy_naglowek}} ===
Dla każdej takiej niepustej linii, sprawdzane jest, czy to są linie z odstępami, lub czy nie są elementami listy, ale w sposób rozszerzony, tzn. ten początek nie może składać się z pewnych znaków, czyli: {{Code|<nowiki>^[^%*#:;<>\n]</nowiki>}}.
Funkcja sprawdza, czy liczba takich linii, jest taka sama, ile jest niepustych linii, wtedy funkcja zwraca wartość logiczną prawdziwą, przeciwnie wartość nilową.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local str_spacja_lub_zerowy_naglowek=function(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do sprawdzenia.
=== Ciąg dalszy opisu funkcji ===
; Etapy dopasowania ostatniego dopasowania rozdziałów, jego pozycja w tekście i jego napis wprowadzenia tekstu
* Etap ogólny
Funkcja najpierw wyszukuje rozdziały poprzez wskazanie przez funkcję: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, a jeżeli znalazł artykuł, o niepustych secjach pomiędzy ostatnim wskazanym artykułen (przed artykułem), a rozdziałem, wtedy ta funkcja zwraca wartość logiczną fałszywą i zwraca wartość nilową, czyli nic nie zwraca, i funkcja się zakańcza, i wskazuje, że nie znalazł takiego nagłówka, to się dzieje pod warunkiem, że funkcja: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, została podana, w przeciwnym wypadku, to już tak się nie dzieje, a nagłówek z tego wywołania mógł być znaleziony, ale nie musi.
; Etapy alternatywy
* Pierwszy etap
** To dotyczy, że znalazł ostatnie dopasowanie, ale niepasującego nagłówka, przed nim, nie ma.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli tego nie znalazł, wtedy przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, w pętli nieskończonej, najpierw dla parametru: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, najpierw jest to pierwsze, a później to drugie, jeśli z tego pierwszego zostało wykonana komenda przerwania pętli, to drugie dopasowanie nie zostanie wykonane w danym obiegu jego, normalnie, bez tego są dwa wywołania.
W każdym takim wywołaniu i dopasowaniu, w pierwszym, czy drugim, będzie sprawdzane, czy tego dokonano, czy taki nagłówek znaleziono, a jeśli tak, to sprawdzany jest tekst pomiędzy ostatnim końcem w wykrytym nagłówku, a początkiem tego przedostatniego, lub z etapu ogólnego, funkcją: {{LinkŚródtytuł|str_spacja_lub_zerowy_naglowek}}, jeżeli funkcja zwróciła wartość logiczną odpowiadającej fałszywej, to pętla jest przerywana, w przeciwnym wypadku są inicjowane parametry tego dopasowania, które przygotowuje ona zwrócić do funkcji w nagłówku.
: Ogólnie po drugim taki wywołaniu następuje sprawdzenie parametrów zwróconych:
Jeżeli w ostatnim takim wywołaniu w tym funkcja zwraca niedopasowanie, wtedy zwracane jest przerywanie pętli, wtedy mamy parametry ostatniego dopasowania, jeśli istnieją takie.
* Drugi
** To dotyczy, że takiego dopasowania pasującego nie znalazł.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli to znalazł, to wyszukany stąd nagłówek jest rozwijany przy pomocy funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}. Jeżeli parser funkcji nie wykrył wykrzyknika na końcu takiego nagłówka, wtedy jest sprawdzane przy pomocy iteratora w zakodowanym tekście przy pomocy: {{Code|{{m|Szablonowe}}}}, na podstawie: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, czy w nagłówku istnieje artykuły bieżącej ksiązki, czy analizowanej, i czy to nie jest okładka, czy strona niedozwolona. Jeżeli wykryto takie artykuły, lub pętla nie została wykonana, bo nie ma takich wykrytym w nagłówku kodów, to funkcja inicjuje parametry zwracanych wartości przez funkcję w nagłówku.
* Trzeci
** To dotyczy pozostałych przypadków, w którym znalazł ostatnie dopasowanie, a niepasujące przed nim też znalazł.
Jest wywoływane wywołanie: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, najpierw w pierwszym wywołaniu dla: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}. A w każdym takim wywołaniu jest sprawdzane, czy tekst pomiędzy końcem ostatniego wykrytego nagłówka, a początkiem przedostatniego nagłówka, a nawet artykułu wykrytego, czyli czy taki tekst rozdziału, czy składa się z samych znaków odstępów, a jeśli tak, to inicjowane są parametry zwracane przez funkcję. Dalej przechodzimy z pierwszego do drugiego wywołania, w którym oba wywołania są podobnie zbudowane.
; Parametry wychodzące z funkcji{{dk}}
* Oto parametry inicjowane przez funkcję w tych powyższych trzech etapach alternatywnych, które na końcu funkcji w nagłówku są zwracane:
: Funkcja zwraca wartości określone przez kod:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka;
</syntaxhighlight>
Wytłumaczenia parametrów zwracanych:
; Parametry określają ostatnie dopasowanie nagłówkowe w wewnątrz funkcji{{dk}}
* {{Code|liczba_start_naglowek}} - początek tego dopasowania,
* {{Code|liczba_koniec_naglowek}} - jego koniec,
* {{Code|naglowek}} - wartość napisu wprowadzenia tekstu nagłówka,
* {{Code|poziom_naglowka}} - poziom tego nagłówka.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
Funkcja służy do wyszukiwania, od tyłu, pozycji artykularnej przed wykrytym ostatnim rozdziałem, lub gdy nie ma rozdziałów, to liczy pozycję tylko artykularną, lub nawet pozycji rozdziałów zerowych spisu treści albo nawet tych z dwukropkiem na końcu danej linii, i szuka od tyłu takie coś, by to uznać za początek spisu treści wyciętej z tekstu zakodowanego spisu, czyli ogólnie mówiąc funkcja szuka dalej takiego początku dalszego.
Funkcja służy też do wydzielania części spisu spełniające powyższe kryteria, aby można było ją parsować przez inne funkcje '''Stronicowego parsera''', do wydzielania dalszych rozdziałów, a z nich wydzielania nagłówków (napisów wprowadzenia tekstu) i tekstów rozdziałów.
Funkcja pętluje przy wykrytych liniach składających się z odstępów, a się zatrzymuje na normalnych danych lub po zakończeniu zasobów.
Główny opis funkcji {{ZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}:
* Funkcja działa w oętli nieskończnonej, aż do zakończenia danych, lub do zwrócenia elementów przez nią,
* W tej pętli funkcja wyszukuje kolejne linie, które nie są pozycjami listy, z którego wyodrębiona linia jest analizowana bez przerwy, jeżeli istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje parametry:
** {{Code|liczba_start}} {{Patrz|liczba_start}} - od której pozycji od tyłu ma wyszukiwać pozycje artykularne,
** {{Code|czy_dalej_rozdzial}} {{Patrz|czy_dalej_rozdzial}} - czy {{ZobaczTeż|czy_dalej_rozdzial}} uznać za pierwszeństwo, w przypadku wykrytego rozdziału dodatniego w linii, lub nie wykrycia takiej linii, która nie jest częścią listy, wtedy jest ważny element (zmienna) {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie jest brane, coś przeciwnego,
** {{Code|liczba_pierwszy_rozdzialowy_artykul}} - jak w: {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}}.
Parametry {{ZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}} zwracane przez funkcję, które są zwracane kolejno w niej na końcu jej działania:
* Początek takiego punktu, uzyskanym w końcu na końcowym obiektu pętli (wyjaśnienie w tekście),
* Liczba znaków odstępów wykrytych poczasz wszystkich obiektów pętli (jest to reprezzentowane przez: {{Code|liczba_spac}} {{Patrz|liczba_spac}}),
* Czy ta tak, uzyskana i zwrócona, linia jest rozdziałem spisu treści (jest to reprezentowane przez: {{Code|czy_spis}} {{Patrz|czy_spis}}).
Etapy zwracania przez funkcję elementów:
; Uzyskanie linii według ogólnego wzoru
* Według {{LinkZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}, tą linia, byłoby takie coś pomiędzy ewentualnie znakami nowymi liniami, która spełnia wzór: {{Code|<nowiki>([^%*#:;<>\n][^\n]*)</nowiki>}}. To wyszukiwanie jest według funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wyszukujący w sposób ogólny linie, niezależnie jak są one realizowane w tekście.
; Początek i koniec uzyskanej linii według powyższego sposobu{{dk}}
* Początek i koniec przechwyconej linii, to są pewne liczby, wraz ze znakami nowej linii, jeśli po któreś stronie istnieją, lub nawet gdy to są w tym elementy, początku lub końca, tekstu, wtedy długość tych elementów jest zero.
; Brak dopasowania linii
* A jeżeli dopasowanie tej linii nie zgłasza niedopasowania, wtedy przy prawdziwości zmiennej: {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według: {{LinkZobaczTeż|czy_dalej_rozdzial}}, zwracane jest: {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie, wartość minimalną, pomiędzy tą zmienną a inną {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}} (jeśli ta zmienna nie istnieje, to domyślnie ma wartość {{Code|1}}).
; Rozdział równaniowy{{dk}}
* Jeżeli tą linią jest rozdział równaniowy, to zwracane jest, jeżeli wartość {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według {{LinkZobaczTeż|czy_dalej_rozdzial}}, ma wartość fałszywą, wtedy jest to dopasowanie końca tej linii, w pierwszym parametrze zwracanym, wraz z innymi danymi, według {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}, a jeżeli ta wartość jest prawdą, to zwracane jest {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, bo w tej funkcji nie ma prawa takich rozdziałów dopasowywać.Ma dopaasowywać tylko normalne linie niebędące pozycjami listy.
; Pierwsze rozgałęzenie specjalne instrukcji warunkowej{{dk}}
: Znaki odstępów - linia to białe znaki:
* Jeżeli linia istnieje i składa się z samych znaków odstępów, to liczmy długość tych znaków, wraz z nowymi liniami po prawej lub lewej stronie, jeśli istnieją, i wsadzamy to do ogólnego licznika {{Code|liczba_spac}} {{LinkPatrz|liczba_spac}}, która jest zwracana na końcu działania funkcji, jako drugi parametr w: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}. Funkcja wykonuje tych okrążeń pętli tyle, ile jest kolejnych linii składających się z tych znaków.
; Przypadek istnienia linii nie składającej się ze znaków odstępów{{dk}}
: Rozdział spisu treści i rozdział zerowy:
* Jeśli linia jest spisem względem {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przyjmuje wartość początkowi takiej ustalonej linii w tekście, a {{Code|czy_spis}} {{LinkPatrz|czy_spis}} przyjmuje wartość prawdziwą.
* A jeśli tak nie jest, to sprawdzamy, czy przed tą linią jest rozdział zerowy na podstawie funkcji: {{LinkŚródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}. Jeżeli ona jest tym rozdziałem, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma już nową wartość, przeciwnie, jeśli ta linia ma na końcu dwukropek, to ta wartość nowa jest równa początkowi wyszukania tej linii, a jeśli nie, to końcowi. Zmienna, czy jest rozdział spisu {{Code|czy_spis}} {{LinkPatrz|czy_spis}} ma wartość prawdziwą, gdy ten rozdział zerowy istnieje, a jeśli nie, to fałszywą.
; Przypadek istnienia, lub nie, rozdziału zerowego{{dk}}
* Jeśli znaleziono taki rozdział (zerowy), to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, to wtedy nie ma żadnych dodatkowych instrukcji do wykonania.
* Punkty zwracania zmiennych, jeśli przeciwnie do poprzedniego:
** Jeśli znaleziono taki spis, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma wartość początkowi takiej linii
** A jeżeli przeciwnie, nie ma w nim kodów, to końcowi, jeśli wyszukana linia nie jest rozdziałem z dwukropkiem na końcu, a jeśli jest, to początkowi tej linii,
*** Wtedy ją, tą uzyskaną z obliczeń, trzeba wliczać w ramach wydzielonego spisu, wtedy zmienna: {{Code|czy_spis}} {{LinkPatrz|czy_spis}}, jest prawdą,
** A jeśli jednak ma je, wtedy, czy linia ma pozycje artykularne, które nie są okładkami lub stronami niedozwolonymi, a jeśli tak jest, na podstawie wywołania funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, to zwracany jest początek wyszukania takiej linii w tej zmiennej, przeciwnie powtarzana jest ta wartość.
*** Wtedy, gdy linia nie ma takich artykułów, wtedy jeśli ona ma dwukropek na końcu, wtedy ustalamy zmienną: {{Code|czy_spis}} {{LinkPatrz|czy_spis}}, na prawdę.
: Na samym końcu zwracane jest to wszystko w postaci parametrów: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}.
== {{Śródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}{{Code|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}} ==
Funkcja wyszukuje, czy dla obiektu o typie {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} o numerze liczbowym {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} - nie jako łańcuch znakowy, dla ich uzyskiwanego odpowiednika {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, generowanego z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, są linki w zależności od podanej zmiennej: {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, a jeżeli tam nie ma linków, to przeszukiwany jest {{LinkPatrz|dalszy_tekst}} w ich poszukiwaniu, którymi zrządzą prawa w zależności od przyporządkowanej zmiennej: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, wartość prawdziwa tej zmiennej, włącza dowolność układu obiektów typu: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}.
Funkcja sprawdza dany link funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}. A kolejne obiekty w dalszym tekście: {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, są znajdowane dzięki iteratorowi: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}.
* Funkcja patrzy na: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, i sprawdza, czy to jest link,
** Jeśli tak to zwraca wartość pradziwą.
** A jeśli nie, to później robimy to według: {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, w celu wyszukania takiego obiektu, którym jest jakiś pierwszy link.
* Poprzedni wykryty sprawdzany obiekt, względem tego poprzedniego, - te obiekty nie muszą być linkami, przed zwróceniem wartości, jeśli to zrobi, jak to jest jednak link, musi spełniać pewną relację, jeśli wartość {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, nie jest prawdziwa.
** Jeślita relacja jest nie spełniona, to funkcja zwraca wartość fałszywą.
* Funkcja zwraca wartość prawdziwą, jeśli wykryto taki pierwszy potwierdzony link, przy spełnionych relacjach, jeśli trzeba sprawdzić, a jeśli nic nie znalał, to zwrac wartość fałszywą.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieLinkuWeSzablonieOrazDalszymNapisie(obiekt,kod,dalszy_tekst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_oddzielone,czy_wszystkie_linki)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}}, {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|czy_nieoddzielone}} {{Patrz|czy_nieoddzielone}} - czy linki mają być oddzielone interpunkcją, czy odstępami, w przypadu przeciwnym, jeżeli tak nie jest, to funkcja zwraca wartość fałszywą,
** {{Code|czy_wszystkie_linki}} {{Patrz|czy_wszystkie_linki}} - czy uwzględniaj wszystkie linki, czy tylko artykuły, nie okładki, (dozwolone), danej książki,
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy tekst, do przeszukiwania linkowego.
Funkcja zwraca wartość logiczną, jeżeli prawa linkowe tekstu są przyporządkowane przez zmienne: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}} i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, to jeśli znalazł taki pierwszy link, to zwraca wartość prawdziwą, a jeśli nie, to fałszywą.
Jeśli zmienna: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, przyjmuje wartość fałszywą, to te rozważane obiekty, muszą być oddzielone pewnymi znakami, tutaj: {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, a jak nie spełniają tego warunku, to funkcja zwraca wartość fałszywą, w innym wypadku dalej liczy i sprawdza.
== {{Śródtytuł|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}}{{Code|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}} ==
Funkcja jest rozszerzeniem funkcji: {{LinkŚródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}, dla ustalonych dwóch ostatnich zmiennych, które przyjmują wartość {{Code|true}} (prawdziwą), o nazwach: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}} i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, dla tej funkcji, mamy już zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, i {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, a funkcja w nagłówku je ustala, w wyniku działania w pętli.
Funkcja wyszukuje, od tyłu, w tekście, nabliższej pozycji typu: {{Code|SZABLON}}, {{Code|LINKW}} lub {{Code|LINKZ}}, w danej linii, i zwraca odpowiednio dwie wartości, pozycje wykrytą i wartość logiczną powodzenia, w innym przypadku, pozycję początkową z drugim parametrem fałszem.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|liczba_start_rozdzial}} - jak w: {{LinkPatrz|liczba_start_rozdzial}}, pozycja wyszukiwania końcowa,
** {{Code|liczba_spisowa}} {{Patrz|liczba_spisowa}} - pozycja wyszukiwania początkowa.
Parametry zwracane:
* Pierwszy parametr:
** Pozycja, w którym taką pozycję określona przez funkcję znaleziono, drugi parametr wtedy przyjmuje prawdę, jeśli nie znaleziono, takiej pozycji, to ta pozycja przymuje wartość początkową, adrugi parametr jest fałszem,
* Drugi parametr:
** Czy elementy są odzielone od sibie pewnymi znakami, według tej dokumentacji, i czy to są linki artykułów nieokładkowych dozwolonych, w najbliższej linii, wtedy zwraca w drugim parametrze prawdę, w przecciwnym wypadku, w przypadku znalezienia obiektu w najbliższej linii z: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, ale nie wykryto odpowiwdnich linków, według wspomnianej funkcji, wtedy zwracony ten paramtr będzie fałszem, kub do wyczerpania zasobów, też odpowiadającej fałśzowi,
Funkcja wyszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wykorzystując, że tekst jest zakodowany, i znajduje one przy pomocy wyrażenia regularnego generowanego przez: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, na podstawie kodu, którego fragment jest napisany tutaj:
<syntaxhighlight lang="lua">
local liczba_spisu=liczba_spisowa;
local szablonowe_modul=require("Module:Szablonowe");
---- Ustalenie wzoru kodowania, czyli jest to dowolny kod;
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu()
while(true)do
---- Wyszukuje dowolną linię według wyrażenia regularnego podanego w kodzie, zawartą całkowicie w linii;
local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
</syntaxhighlight>
Fukcja sprawdza, czy dokonano sprawdzenia, jeśli pozytywnie ono przeszło, to musi istnieć zmienna {{Code|liczba_linki_nierozdzialowe_szablonu}} {{Patrz|liczba_linki_nierozdzialowe_szablonu}} oraz musi być spełniona alternatywa dwóch warunków: {{Code|przed_tekst}} {{Patrz|przed_tekst}} musi być puste lub ma spełniać warunek według wzoru: {{Code|<nowiki>^[%p%s%d%.]*$</nowiki>}}.
Jeżeli funkcja nie dopasowała kodu: {{Code|obiekt_szablon}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, do wartości: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, to działa w pętli aż dopasuje je, aż do zakończenia zasobu danych dostępnych w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, jeżeli nie mogła by tego zrobić. A jeśli je dopasowała, to sprawdza, czy te kody są odpowiednimi obiektami, ewentualnie oddzielonych od siebie znakami {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, poprzez sprawdzanie funkcją wspomnianą w nagłówku. Jeśli ta funkcja zwróci wartość prawdziwą, to zwrócone zostaną parametry:
<syntaxhighlight lang="lua">
return liczba_linki_nierozdzialowe_szablonu,true;
</syntaxhighlight>
W innych przypadkach, jeżeli takiego dopasowania nie znalazła, to zwróć szereg wartości:
<syntaxhighlight lang="lua">
return liczba_spisowa,false;
</syntaxhighlight>
W tym przypadku wartość {{Code|liczba_spisowa}} {{LinkPatrz|liczba_spisowa}}, to nic innego jak ostatni argument naszej funkcji, czyli w przypadku niepowoddzenia dopasowania, zwracana jest wartość ta początkowa, zdrugą wartością, że niezaleziono poszukiwanego obiektu.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowychZakresowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowychZakresowych}} ==
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowychZakresowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_pierwszy_rozdzialowy_artykul,liczba_przed_rozdzialem,liczba_start_naglowek_przed,czy_znajdz)...end;
</syntaxhighlight>
Parametry funkcji:
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
jc9lyuid8bvvr6t5buav346pnk5nckq
554600
554599
2026-09-06T11:48:56Z
Persino
2851
/* {{Śródtytuł|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}}{{Code|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}} */
554600
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.AnalizowanieSekcjowe}}{{Code|p.AnalizowanieSekcjowe}} ==
Jest to funkcja do sprawdzania tekstu zawartości (tekstu rozdziału, bez zawartości nagłówka) napisu wprowadzenia tekstu sekcji, za pomocą funkcji zwracanej, czy ona spełnia pewne określone warunki.
Funkcja, gdy co jest nie tak, to zwraca wartość {{Code|true}}, i przy okazji może zerować pewne określone zmienne, jeśli ona przy tym została odpowiednio ustawiona, przeciwnie ona zawsze zwraca wartość {{Code|nil}}, czyli nie zwraca żadnej wartości.
Za pomocą tej funkcji można sprawdzić, czy funkcja zawiera niedozwolone znaki wikikodu, i dlatego zwraca tą prawdziwość.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe)
... ---- ciało funkcji zwracanej
end;
end;
</syntaxhighlight>
Parametry ogólne funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|czy_zeruj}} {{Patrz|czy_zeruj}} - czy ma zerować, ścisle określone zmienne, które mieszczą się w niezerowej tablicy zmiennych składowych, tzn. w: {{Code|tab_zmienne}} {{LinkPatrz|tab_zmienne}},
* {{Code|tab_zmienne}} {{Patrz|tab_zmienne}} - zmienne w nim do zerowania,
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Parametry funkcji zwracanej dla tekstu rozważanego: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}:
* {{Code|liczba_koniec_naglowek}} {{Patrz|liczba_koniec_naglowek}} - numer znaku, po którym coś rozważamy,
* {{Code|liczba_obiekt_start_nowe}} {{Patrz|liczba_obiekt_start_nowe}} - numer znaku, przed którym coś rozważamy.
; Sprawdzenie spełnienia warunku, przejście do wnętrza tej instrukcji warunkowej{{dk}}
Funkcja zwracana sprawdza, czy zmienne: {{Code|liczba_koniec_naglowek}} {{LinkPatrz|liczba_koniec_naglowek}}, i {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, istnieją, i te zmienne sugerują punkty znakowe w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, ale jeżeli te zmienne liczbowe punktów znakowych mają takie wartości, że nie da się znaleźć dla tej zmiennej tekstowej treści pomiędzy nimi, to ta funkcja nie zwraca żadnej wartości, to zachodzi, kiedy nie jest spełniony warunek:
<syntaxhighlight lang="lua">
if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then
</syntaxhighlight>
; Sprawdzenie uzyskanej zmiennej tekstowej, będąca tekstem pomiędzy linkiem, a końcem rozdziału{{dk}}
* Liczenie zmiennej tekstowej za pomocą, którą będziemy sprawdzać:
: A jeżeli jest jednak tak, tzn. spełniony jest ten warunek, to znajdujemy taki tekst, robi to za pomocą funkcji: {{LzLua|mw.ustring.sub}}, i zapisuje to pod zmienną {{Code|str}} {{Patrz|str}}.
* Pierwszy etap analizowania tej zmiennej, czy jest poprawna, tzn. czy nie zwraca żadnej wartości, ale czy się zakańcza:
: Następnie sprawdza, czy ona jest w cudzysłowach, tzn. czy spełnia warunek: {{Code|<nowiki>^%s*'+(.+)'+%s*$</nowiki>}}, lub czy początek zaczyna się od znaków: {{Code|<nowiki>^[%*#:;<>]+</nowiki>}}, lub czy ten tekst zawiera dozwolone znaki z przedziału: {{Code|<nowiki>^[%s%p%w]*$</nowiki>}} - tzn. czy tekst składa się ze znaków odstępu, interpunkcyjnych, znaków alfanumerycznych lub z dolnym myślników, jeżeli któreś z tych warunków jest spełnione, to funkcja nie zwraca żadnej wartości, ale zatrzymuje się, tzn. zakańcza się, to oznacza, że wszystko jest w porządku. A jeżeli nie spełnione z żadnych z tych warunków, to ona idzie dalej, i robi następne czynności następne, aby sprawdzić dalsze warunki, czy wszystko jest w porządku.
; Sprawdzanie niepustych linii{{dk}}
* Sprawdzanie niepustych linii po liniach, ewentualnie składających się ze znaków odstępów:
: Funkcja liczy ile takich linii znalał, zapisuje to pod zmienną {{Code|ile}} {{Patrz|ile}}, jeśli wśród takich linii znalazł linie pasujące do: {{Code|<nowiki>^[%*#;:<>]</nowiki>}}, lub składające się znaków odstępów: {{Code|<nowiki>^%s*$</nowiki>}}, wtedy funkcja to liczy licznikiem: {{Code|ile_punktowanych}} {{Patrz|ile_punktowanych}}.
Funkcja w tak wyszukanych liniach w przeciwnym razie sprawdza, w liniach niepasujących do tych wzorów, czy tam są artykuły (strony) nie z rozważanej danej książki, przy pomocy funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, jeśli są takie elementy, to funkcja dodaje to do licznika: {{Code|ile_punktowanych}} {{LinkPatrz|ile_punktowanych}}, aby dodać jeden do licznika, dla każdej takiej linii funkcja sprawdza, czy przynajmniej jeden taki artykuł się znajduje tam, w każdej takiej wykrytej linii.
* Jeśli liczba określona przez zmienną: {{Code|ile_punktowanych}} {{LinkPatrz|ile_punktowanych}}, jeżeli jest co najmniej równa wyszukanym liniom: {{Code|ile}} {{LinkPatrz|ile}}, to funcja się zatrzymuje, i nie zwraca żadnej wartości, czyli wskazuje na powodzenie.
* Gdy liczba tego jest mniejsza niż wykrytych linii, to coś jest nie tak, wtedy funkcja nic nie zwraca, tylko idzie dalej.
; Inne operacje w przypadku niestwierdzenia, jak dotąd niepowodzenia przez funkcję, nie ma jeszcze zwróconej wartości {{nobold|{{Code|nil}}}}{{dk}}
* Zerowanie się pewnych wartości:
** Funkcja z tak policzonego: {{Code|str}} {{LinkPatrz|str}}, usuwa formy kodów z obiektami {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, a jeżeli znalazł w nim same, wtedy znaki odstępów, to ona nie zwraca żadnej wartości, ale się zakańcza, przeciwnie, sprawdza, czy jest zmienna: {{Code|czy_zeruj}} {{LinkPatrz|czy_zeruj}}, która jest prawdziwa, a jeśli tak, to elementy zmiennej: {{Code|tab_zmienne}} {{LinkPatrz|tab_zmienne}} są nilowane, tzn. podzmienne o kluczach:
* {{Code|liczba_nie_okladka_artykul}} {{Patrz|liczba_nie_okladka_artykul}} - liczba pozycji sekcji wskazująca, czy istnieje pierwszy taki artykuł (nie okładka, nie strona niedozwolona) aktualnej książki, lub bezpośrednio taki artykuł, niekoniecznie tej książki, czy znajduje się bezpośrednio w pozycji sekcji, i tylko sam tam się znajduje,
* {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{Patrz|liczba_pierwszy_rozdzialowy_artykul}} - liczba pozycji sekcji, która wskazuje na pierwszy taki wykryty artykuł, licząc od przodu, który spełnia pewne ścisle określone kryteria, jaki może być w książce,
: Kryteria określone przez te zmienne powyżej są określone przez funkcję: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}},
* {{Code|czy_ten_rozdzial}} {{Patrz|czy_ten_rozdzial}} - wartość prawdziwą wskazuje, czy wynilowano zmienne należące do rozważanej tablicy.
Ale niezależnie od wartości: {{Code|czy_zeruj}} {{LinkPatrz|czy_zeruj}}, funkcja wtedy zwraca zawsze wraca wartość {{Code|true}}, czyli ona zwraca to niepowodzenie.
== {{Śródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}{{Code|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}} ==
Funkcja wyszukuje, od tyłu, kolejne rozdziały (napisy wprowadzenia tekstu), którego tekst rozdziału składa się z samych znaków odstępów, lub jest pusty, albo o poziomie wyższym rozdziałowo, nawet gdy jego tekst rozdziału jednak nie jest pusty.
Funkcja jest przerywana po najbliższych niespełniających warunkach. Funkcja zwraca parametry, z ostatniego pasującego dopasowana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start_rozdzial}} {{Patrz|liczba_start_rozdzial}} - podczas wyszukiwania od tyłu, do jakiego punktu ma wyszukiwać,
* {{Code|liczba_obiekt_start_nowe}} - jak w: {{LinkPatrz|liczba_obiekt_start_nowe}}, wykorzystywane w funkcji: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, do sprawdzania pomiędzy znakami: końcem wyszukiwanego nagłówka, wraz ze znakiem nowej linii, a tą zmienną, robimy to do sprawdzania, czy tekst rozdziału spełnia ściśle określone normy określone przez tą funkcję. To jest to pozycja taka, na jaką wskazuje również pozycja jakaś artykularna, prze którym sprawdzamy tą funkcją tekst.
* {{Code|liczba_obiekt_start_spac_par}} {{Patrz|liczba_obiekt_start_spac_par}} - numer znaku, od którego ma wyszukiwać od tytułu pewne linie,
* {{Code|czy_dodatni}} {{Patrz|czy_dodatni}} - typ wyszukiwania rozdziałów, tzn. {{LinkZobaczTeż|czy_dodatni}},
* {{Code|czy_bez_naglowka}} {{Patrz|czy_bez_naglowka}} - czy ma wyszukiwać do: {{Code|1}}, od tytułu, a nie do: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}},
* {{Code|AnalizowanieSekcjowe}} {{Patrz|AnalizowanieSekcjowe}} - to nic innego jest, jak funkcja inicjowana przez zwracaną procedurę przez: {{LinkŚródtytuł|p.AnalizowanieSekcjowe}}, która ma w sobie pewne elementy początkowe w sobie wsadzonych jako parametry, które są wykorzystywane prze obiekt przez nią zwracany, która coś robi.
; Typy dopasowywania rozdziałów paarametru{{dk}} {{nobold|czy_dodatni {{Code|{{=}}}} {{LinkPatrz|czy_dodatni}} {{ZobaczTeż|czy_dodatni}}}}{{dk}}
* {{Code|1}} - wyszukuje rozdziały wskazywane przez funkcję: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}},
* {{Code|2}} - wyszukuje pozycje list zaczynające się od znaków: {{Code|<nowiki>[%*#:;<>]+</nowiki>}}, jako pewne rozdziały, które trzeba wyszukać,
* Inna wartość niż dwie powyższe - wtedy są wyszukiwane rozdziały niezaczynające się od: {{Code|<nowiki>[^%*#:;<>\n]</nowiki>}}, i kończące się na dwukropek.
: Dla dwóch ostatnich powyższych punktów są wyszukiwane linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
: Funkcja dla tych dwóch pierwszych sprawdza, tylko raz, czy to jest rozdział spisu treści wskazywaną przez funkcję: {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, jeżeli parsowanie przeszło niepomyślnie, a funkcja: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, zrzuci wartość prawdziwą, wtedy ta cała funkcja z nagłówka zrzuca wartość logiczną fałszywą. Ta funkcja wykorzystuje wartość: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, jako drugi parametr, dla którego liczy ona tekst przed, ta zmienna może wskazywać na początek pozycji linii artykularnej (z artykułami), aby ona policzyła swoją wartość.
Funkcja działa w pętli do zakończenia zasobu danych lub w inny sposób, ale też do zakończenia. Funkcja wtedy robi operacje zawsze dla: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} równe {{Code|1}} lub dla tych, gdzie: {{LinkŚródtytuł|p.CzyTamElementyNieSpisoweArtykularne|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, zwraca wartość logiczną prawdziwą, własnie dla tego, jeśli ta operacja zwróci prawdę, to dla tego są dopasowywane elementy zwracane. Wtedy wiadomo, że wyszukane tak pozycje są rozdziałami.
Funkcja zwraca wyniku w postaci wartości szegu zwracanych:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej;
</syntaxhighlight>
Wytłumaczenie tych elementów zrzuconych przez nią dla dopasowań, licząc od tyłu:
; Ostanie dopasowanie nagłówka pasujące, gdy tekst jego rozdziału jest równy znakom odstępu lub jest pusty{{dk}}
* {{Code|liczba_start_naglowek}} - początek ostatniego wyszukanego takiego nagłówka,
* {{Code|liczba_koniec_naglowek_poczt}} - koniec pierwszego wyszukanego nagłówka,
* {{Code|naglowek}} - wartość nagłówka dla tego ostatniego dopasowania,
* {{Code|poziom_naglowka}} - poziom takiego nagłówka,
; Niepasujący nagłówek, wyszukane pierwsze z kolei po pasującym{{dk}}
: Według wartości zwracanych powyższych w pierwszej kolejności, dla którego tekst rozdziału nie jest równa znakom odstępu i nie jest pusty:
* {{Code|liczba_start_naglowek_dalej}} - początek po pasującym tak nagłówku,
* {{Code|liczba_koniec_naglowek_dalej}} - a tutaj jego koniec,
* {{Code|naglowek_dalej}} - wartość tekstu napisu wprowadzenia tekstu,
* {{Code|poziom_naglowek_dalej}} - tutaj jego poziom.
W przypadku nieznalezienia takich nagłówków funkcja nie zwraca niczego.
== {{Śródtytuł|p.SzukanieKolejnychSekcji}}{{Code|p.SzukanieKolejnychSekcji}} ==
Funkcja służy do zaawansowanego szukania, od tyłu, nagłówków w przeciwieństwie do: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, która służy przede wszystkim do szukania sekcji kolejnych jednego rodzaju, a ta funkcja znajduje się w postaci układu sekcji różnego typu w rozważanym tekście.
Funkcja wyszukuje od tyłu, znajduje parametry ostatniego nagłówka i je zwraca, jeżeli je znalazł, a jeśli nie, to nie zwraca żadnej wartości, tylko funkcja się zakańcza.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Jedynie funkcja nie ma parametru: {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, ponieważ ta funkcji nie szuka kolejnych rozdziałów tylko jednego rodzaju, lecz wielu.
=== {{Śródtytuł|str_spacja_lub_zerowy_naglowek}}{{Code|str_spacja_lub_zerowy_naglowek}} ===
Dla każdej takiej niepustej linii, sprawdzane jest, czy to są linie z odstępami, lub czy nie są elementami listy, ale w sposób rozszerzony, tzn. ten początek nie może składać się z pewnych znaków, czyli: {{Code|<nowiki>^[^%*#:;<>\n]</nowiki>}}.
Funkcja sprawdza, czy liczba takich linii, jest taka sama, ile jest niepustych linii, wtedy funkcja zwraca wartość logiczną prawdziwą, przeciwnie wartość nilową.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local str_spacja_lub_zerowy_naglowek=function(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - tekst do sprawdzenia.
=== Ciąg dalszy opisu funkcji ===
; Etapy dopasowania ostatniego dopasowania rozdziałów, jego pozycja w tekście i jego napis wprowadzenia tekstu
* Etap ogólny
Funkcja najpierw wyszukuje rozdziały poprzez wskazanie przez funkcję: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, a jeżeli znalazł artykuł, o niepustych secjach pomiędzy ostatnim wskazanym artykułen (przed artykułem), a rozdziałem, wtedy ta funkcja zwraca wartość logiczną fałszywą i zwraca wartość nilową, czyli nic nie zwraca, i funkcja się zakańcza, i wskazuje, że nie znalazł takiego nagłówka, to się dzieje pod warunkiem, że funkcja: {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}}, została podana, w przeciwnym wypadku, to już tak się nie dzieje, a nagłówek z tego wywołania mógł być znaleziony, ale nie musi.
; Etapy alternatywy
* Pierwszy etap
** To dotyczy, że znalazł ostatnie dopasowanie, ale niepasującego nagłówka, przed nim, nie ma.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli tego nie znalazł, wtedy przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, w pętli nieskończonej, najpierw dla parametru: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}, najpierw jest to pierwsze, a później to drugie, jeśli z tego pierwszego zostało wykonana komenda przerwania pętli, to drugie dopasowanie nie zostanie wykonane w danym obiegu jego, normalnie, bez tego są dwa wywołania.
W każdym takim wywołaniu i dopasowaniu, w pierwszym, czy drugim, będzie sprawdzane, czy tego dokonano, czy taki nagłówek znaleziono, a jeśli tak, to sprawdzany jest tekst pomiędzy ostatnim końcem w wykrytym nagłówku, a początkiem tego przedostatniego, lub z etapu ogólnego, funkcją: {{LinkŚródtytuł|str_spacja_lub_zerowy_naglowek}}, jeżeli funkcja zwróciła wartość logiczną odpowiadającej fałszywej, to pętla jest przerywana, w przeciwnym wypadku są inicjowane parametry tego dopasowania, które przygotowuje ona zwrócić do funkcji w nagłówku.
: Ogólnie po drugim taki wywołaniu następuje sprawdzenie parametrów zwróconych:
Jeżeli w ostatnim takim wywołaniu w tym funkcja zwraca niedopasowanie, wtedy zwracane jest przerywanie pętli, wtedy mamy parametry ostatniego dopasowania, jeśli istnieją takie.
* Drugi
** To dotyczy, że takiego dopasowania pasującego nie znalazł.
Wtedy funkcją: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, znajdowane jest dopasowanie w minimalnie podwójnych cudzysłowach, a jeżeli to znalazł, to wyszukany stąd nagłówek jest rozwijany przy pomocy funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści/Tom I}}}}. Jeżeli parser funkcji nie wykrył wykrzyknika na końcu takiego nagłówka, wtedy jest sprawdzane przy pomocy iteratora w zakodowanym tekście przy pomocy: {{Code|{{m|Szablonowe}}}}, na podstawie: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, czy w nagłówku istnieje artykuły bieżącej ksiązki, czy analizowanej, i czy to nie jest okładka, czy strona niedozwolona. Jeżeli wykryto takie artykuły, lub pętla nie została wykonana, bo nie ma takich wykrytym w nagłówku kodów, to funkcja inicjuje parametry zwracanych wartości przez funkcję w nagłówku.
* Trzeci
** To dotyczy pozostałych przypadków, w którym znalazł ostatnie dopasowanie, a niepasujące przed nim też znalazł.
Jest wywoływane wywołanie: {{LinkŚródtytuł|p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}}, najpierw w pierwszym wywołaniu dla: {{Code|czy_dodatni}} {{Code|{{=}}}} {{Code|2}}, a później dla {{Code|3}}. A w każdym takim wywołaniu jest sprawdzane, czy tekst pomiędzy końcem ostatniego wykrytego nagłówka, a początkiem przedostatniego nagłówka, a nawet artykułu wykrytego, czyli czy taki tekst rozdziału, czy składa się z samych znaków odstępów, a jeśli tak, to inicjowane są parametry zwracane przez funkcję. Dalej przechodzimy z pierwszego do drugiego wywołania, w którym oba wywołania są podobnie zbudowane.
; Parametry wychodzące z funkcji{{dk}}
* Oto parametry inicjowane przez funkcję w tych powyższych trzech etapach alternatywnych, które na końcu funkcji w nagłówku są zwracane:
: Funkcja zwraca wartości określone przez kod:
<syntaxhighlight lang="lua">
return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka;
</syntaxhighlight>
Wytłumaczenia parametrów zwracanych:
; Parametry określają ostatnie dopasowanie nagłówkowe w wewnątrz funkcji{{dk}}
* {{Code|liczba_start_naglowek}} - początek tego dopasowania,
* {{Code|liczba_koniec_naglowek}} - jego koniec,
* {{Code|naglowek}} - wartość napisu wprowadzenia tekstu nagłówka,
* {{Code|poziom_naglowka}} - poziom tego nagłówka.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowych}} ==
Funkcja służy do wyszukiwania, od tyłu, pozycji artykularnej przed wykrytym ostatnim rozdziałem, lub gdy nie ma rozdziałów, to liczy pozycję tylko artykularną, lub nawet pozycji rozdziałów zerowych spisu treści albo nawet tych z dwukropkiem na końcu danej linii, i szuka od tyłu takie coś, by to uznać za początek spisu treści wyciętej z tekstu zakodowanego spisu, czyli ogólnie mówiąc funkcja szuka dalej takiego początku dalszego.
Funkcja służy też do wydzielania części spisu spełniające powyższe kryteria, aby można było ją parsować przez inne funkcje '''Stronicowego parsera''', do wydzielania dalszych rozdziałów, a z nich wydzielania nagłówków (napisów wprowadzenia tekstu) i tekstów rozdziałów.
Funkcja pętluje przy wykrytych liniach składających się z odstępów, a się zatrzymuje na normalnych danych lub po zakończeniu zasobów.
Główny opis funkcji {{ZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}:
* Funkcja działa w oętli nieskończnonej, aż do zakończenia danych, lub do zwrócenia elementów przez nią,
* W tej pętli funkcja wyszukuje kolejne linie, które nie są pozycjami listy, z którego wyodrębiona linia jest analizowana bez przerwy, jeżeli istnieje.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}}, i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje parametry:
** {{Code|liczba_start}} {{Patrz|liczba_start}} - od której pozycji od tyłu ma wyszukiwać pozycje artykularne,
** {{Code|czy_dalej_rozdzial}} {{Patrz|czy_dalej_rozdzial}} - czy {{ZobaczTeż|czy_dalej_rozdzial}} uznać za pierwszeństwo, w przypadku wykrytego rozdziału dodatniego w linii, lub nie wykrycia takiej linii, która nie jest częścią listy, wtedy jest ważny element (zmienna) {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie jest brane, coś przeciwnego,
** {{Code|liczba_pierwszy_rozdzialowy_artykul}} - jak w: {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}}.
Parametry {{ZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}} zwracane przez funkcję, które są zwracane kolejno w niej na końcu jej działania:
* Początek takiego punktu, uzyskanym w końcu na końcowym obiektu pętli (wyjaśnienie w tekście),
* Liczba znaków odstępów wykrytych poczasz wszystkich obiektów pętli (jest to reprezzentowane przez: {{Code|liczba_spac}} {{Patrz|liczba_spac}}),
* Czy ta tak, uzyskana i zwrócona, linia jest rozdziałem spisu treści (jest to reprezentowane przez: {{Code|czy_spis}} {{Patrz|czy_spis}}).
Etapy zwracania przez funkcję elementów:
; Uzyskanie linii według ogólnego wzoru
* Według {{LinkZobaczTeż|p.SzukanieSekcjiLinkowychLiniowych}}, tą linia, byłoby takie coś pomiędzy ewentualnie znakami nowymi liniami, która spełnia wzór: {{Code|<nowiki>([^%*#:;<>\n][^\n]*)</nowiki>}}. To wyszukiwanie jest według funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wyszukujący w sposób ogólny linie, niezależnie jak są one realizowane w tekście.
; Początek i koniec uzyskanej linii według powyższego sposobu{{dk}}
* Początek i koniec przechwyconej linii, to są pewne liczby, wraz ze znakami nowej linii, jeśli po któreś stronie istnieją, lub nawet gdy to są w tym elementy, początku lub końca, tekstu, wtedy długość tych elementów jest zero.
; Brak dopasowania linii
* A jeżeli dopasowanie tej linii nie zgłasza niedopasowania, wtedy przy prawdziwości zmiennej: {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według: {{LinkZobaczTeż|czy_dalej_rozdzial}}, zwracane jest: {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przeciwnie, wartość minimalną, pomiędzy tą zmienną a inną {{Code|liczba_pierwszy_rozdzialowy_artykul}} {{LinkPatrz|liczba_pierwszy_rozdzialowy_artykul}} (jeśli ta zmienna nie istnieje, to domyślnie ma wartość {{Code|1}}).
; Rozdział równaniowy{{dk}}
* Jeżeli tą linią jest rozdział równaniowy, to zwracane jest, jeżeli wartość {{Code|czy_dalej_rozdzial}} {{LinkPatrz|czy_dalej_rozdzial}}, według {{LinkZobaczTeż|czy_dalej_rozdzial}}, ma wartość fałszywą, wtedy jest to dopasowanie końca tej linii, w pierwszym parametrze zwracanym, wraz z innymi danymi, według {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}, a jeżeli ta wartość jest prawdą, to zwracane jest {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, bo w tej funkcji nie ma prawa takich rozdziałów dopasowywać.Ma dopaasowywać tylko normalne linie niebędące pozycjami listy.
; Pierwsze rozgałęzenie specjalne instrukcji warunkowej{{dk}}
: Znaki odstępów - linia to białe znaki:
* Jeżeli linia istnieje i składa się z samych znaków odstępów, to liczmy długość tych znaków, wraz z nowymi liniami po prawej lub lewej stronie, jeśli istnieją, i wsadzamy to do ogólnego licznika {{Code|liczba_spac}} {{LinkPatrz|liczba_spac}}, która jest zwracana na końcu działania funkcji, jako drugi parametr w: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}. Funkcja wykonuje tych okrążeń pętli tyle, ile jest kolejnych linii składających się z tych znaków.
; Przypadek istnienia linii nie składającej się ze znaków odstępów{{dk}}
: Rozdział spisu treści i rozdział zerowy:
* Jeśli linia jest spisem względem {{LinkŚródtytuł|p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, przyjmuje wartość początkowi takiej ustalonej linii w tekście, a {{Code|czy_spis}} {{LinkPatrz|czy_spis}} przyjmuje wartość prawdziwą.
* A jeśli tak nie jest, to sprawdzamy, czy przed tą linią jest rozdział zerowy na podstawie funkcji: {{LinkŚródtytuł|p.ZnajdowanieZerowegoSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}. Jeżeli ona jest tym rozdziałem, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma już nową wartość, przeciwnie, jeśli ta linia ma na końcu dwukropek, to ta wartość nowa jest równa początkowi wyszukania tej linii, a jeśli nie, to końcowi. Zmienna, czy jest rozdział spisu {{Code|czy_spis}} {{LinkPatrz|czy_spis}} ma wartość prawdziwą, gdy ten rozdział zerowy istnieje, a jeśli nie, to fałszywą.
; Przypadek istnienia, lub nie, rozdziału zerowego{{dk}}
* Jeśli znaleziono taki rozdział (zerowy), to {{Code|liczba_start}} {{LinkPatrz|liczba_start}}, to wtedy nie ma żadnych dodatkowych instrukcji do wykonania.
* Punkty zwracania zmiennych, jeśli przeciwnie do poprzedniego:
** Jeśli znaleziono taki spis, to {{Code|liczba_start}} {{LinkPatrz|liczba_start}} ma wartość początkowi takiej linii
** A jeżeli przeciwnie, nie ma w nim kodów, to końcowi, jeśli wyszukana linia nie jest rozdziałem z dwukropkiem na końcu, a jeśli jest, to początkowi tej linii,
*** Wtedy ją, tą uzyskaną z obliczeń, trzeba wliczać w ramach wydzielonego spisu, wtedy zmienna: {{Code|czy_spis}} {{LinkPatrz|czy_spis}}, jest prawdą,
** A jeśli jednak ma je, wtedy, czy linia ma pozycje artykularne, które nie są okładkami lub stronami niedozwolonymi, a jeśli tak jest, na podstawie wywołania funkcji: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}, to zwracany jest początek wyszukania takiej linii w tej zmiennej, przeciwnie powtarzana jest ta wartość.
*** Wtedy, gdy linia nie ma takich artykułów, wtedy jeśli ona ma dwukropek na końcu, wtedy ustalamy zmienną: {{Code|czy_spis}} {{LinkPatrz|czy_spis}}, na prawdę.
: Na samym końcu zwracane jest to wszystko w postaci parametrów: {{LinkZobaczTeż|zwracane-p.SzukanieSekcjiLinkowychLiniowych}}.
== {{Śródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}{{Code|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}} ==
Funkcja wyszukuje, czy dla obiektu o typie {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} o numerze liczbowym {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} - nie jako łańcuch znakowy, dla ich uzyskiwanego odpowiednika {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, generowanego z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}, są linki w zależności od podanej zmiennej: {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, a jeżeli tam nie ma linków, to przeszukiwany jest {{LinkPatrz|dalszy_tekst}} w ich poszukiwaniu, którymi zrządzą prawa w zależności od przyporządkowanej zmiennej: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, wartość prawdziwa tej zmiennej, włącza dowolność układu obiektów typu: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}.
Funkcja sprawdza dany link funkcją: {{LinkŚródtytuł|p.CzyGeneralnieElementSpisuRzeczy|StronicowyParser/AnalizaSpisuRzeczy/Tom II}}. A kolejne obiekty w dalszym tekście: {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, są znajdowane dzięki iteratorowi: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}.
* Funkcja patrzy na: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, i sprawdza, czy to jest link,
** Jeśli tak to zwraca wartość pradziwą.
** A jeśli nie, to później robimy to według: {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, w celu wyszukania takiego obiektu, którym jest jakiś pierwszy link.
* Poprzedni wykryty sprawdzany obiekt, względem tego poprzedniego, - te obiekty nie muszą być linkami, przed zwróceniem wartości, jeśli to zrobi, jak to jest jednak link, musi spełniać pewną relację, jeśli wartość {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, nie jest prawdziwa.
** Jeślita relacja jest nie spełniona, to funkcja zwraca wartość fałszywą.
* Funkcja zwraca wartość prawdziwą, jeśli wykryto taki pierwszy potwierdzony link, przy spełnionych relacjach, jeśli trzeba sprawdzić, a jeśli nic nie znalał, to zwrac wartość fałszywą.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieLinkuWeSzablonieOrazDalszymNapisie(obiekt,kod,dalszy_tekst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_oddzielone,czy_wszystkie_linki)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_start_rozdzial}} {{LinkPatrz|liczba_start_rozdzial}}, {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|czy_nieoddzielone}} {{Patrz|czy_nieoddzielone}} - czy linki mają być oddzielone interpunkcją, czy odstępami, w przypadu przeciwnym, jeżeli tak nie jest, to funkcja zwraca wartość fałszywą,
** {{Code|czy_wszystkie_linki}} {{Patrz|czy_wszystkie_linki}} - czy uwzględniaj wszystkie linki, czy tylko artykuły, nie okładki, (dozwolone), danej książki,
** {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - dalszy tekst, do przeszukiwania linkowego.
Funkcja zwraca wartość logiczną, jeżeli prawa linkowe tekstu są przyporządkowane przez zmienne: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}} i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, to jeśli znalazł taki pierwszy link, to zwraca wartość prawdziwą, a jeśli nie, to fałszywą.
Jeśli zmienna: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}}, przyjmuje wartość fałszywą, to te rozważane obiekty, muszą być oddzielone pewnymi znakami, tutaj: {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, a jak nie spełniają tego warunku, to funkcja zwraca wartość fałszywą, w innym wypadku dalej liczy i sprawdza.
== {{Śródtytuł|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}}{{Code|p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach}} ==
Funkcja jest rozszerzeniem funkcji: {{LinkŚródtytuł|p.SzukanieLinkuWeSzablonieOrazDalszymNapisie}}, dla ustalonych dwóch ostatnich zmiennych, które przyjmują wartość {{Code|true}} (prawdziwą), o nazwach: {{Code|czy_nieoddzielone}} {{LinkPatrz|czy_nieoddzielone}} i {{Code|czy_wszystkie_linki}} {{LinkPatrz|czy_wszystkie_linki}}, dla tej funkcji, mamy już zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, i {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, a funkcja w nagłówku je ustala, w wyniku działania w pętli.
Funkcja wyszukuje, od tyłu, w tekście, nabliższej pozycji typu: {{Code|SZABLON}}, {{Code|LINKW}} lub {{Code|LINKZ}}, w danej linii, i zwraca odpowiednio dwie wartości, pozycje wykrytą i wartość logiczną powodzenia, w innym przypadku, pozycję początkową z drugim parametrem fałszem.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa)...end;
</syntaxhighlight>
Parametry funkcji:
* Funkcja ma takie same parametry, i to samo znaczą, jak w punkcie: {{LinkZobaczTeż|parametry-p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych}},
* Funkcja nie przyjmuje parametrów z listy zmiennych podanych w poprzedniej pozycji listy powyżej: {{Code|liczba_obiekt_start_nowe}} {{LinkPatrz|liczba_obiekt_start_nowe}}, {{Code|liczba_obiekt_start_spac_par}} {{LinkPatrz|liczba_obiekt_start_spac_par}}, {{Code|czy_dodatni}} {{LinkPatrz|czy_dodatni}} i {{Code|AnalizowanieSekcjowe}} {{LinkPatrz|AnalizowanieSekcjowe}},
* Dodatkowo funkcja przyjmuje dodatkowe wartości jako argumenty:
** {{Code|liczba_start_rozdzial}} - jak w: {{LinkPatrz|liczba_start_rozdzial}}, pozycja wyszukiwania końcowa,
** {{Code|liczba_spisowa}} {{Patrz|liczba_spisowa}} - pozycja wyszukiwania początkowa.
Funkcja wyszukuje najbliższą linię od tyłu z obiektami typu: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}.
Parametry zwracane:
* Pierwszy parametr:
** Pozycja, w którym taką pozycję określoną przez funkcję znaleziono, drugi parametr wtedy przyjmuje prawdę, jeśli nie znaleziono takiej pozycji, to ta pozycja przymuje wartość początkową, a drugi parametr staje się fałszem,
* Drugi parametr:
** Czy elementy są odzielone od siebie pewnymi znakami, i czy to są linki artykułów nieokładkowych, czy dozwolonych, i czy obiekty w linii do pierwszego wykrytego linku, czy spełniają relacja, wtedy zwraca w drugim parametrze prawdę, w przeciwnym wypadku, nie wykryto takich odpowiednich linków, według wspomnianej funkcji, wtedy zwracony ten parametr będzie fałszem,
** Funkcją dokonuje okrążeń peli aż do wyczerpania zasobów, też odpowiadającej fałszowi, lub do wykrycia tych pewnych danych.
Funkcja wyszukuje kolejne linie przy pomocy funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, wykorzystując, że tekst jest zakodowany, i znajduje one przy pomocy wyrażenia regularnego generowanego przez: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, na podstawie kodu, którego fragment jest napisany tutaj:
<syntaxhighlight lang="lua">
local liczba_spisu=liczba_spisowa;
local szablonowe_modul=require("Module:Szablonowe");
---- Ustalenie wzoru kodowania, czyli jest to dowolny kod;
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu()
while(true)do
---- Wyszukuje dowolną linię według wyrażenia regularnego podanego w kodzie, zawartą całkowicie w linii;
local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true);
</syntaxhighlight>
Fukcja sprawdza, czy dokonano sprawdzenia, jeśli pozytywnie ono przeszło, to musi istnieć zmienna: {{Code|liczba_linki_nierozdzialowe_szablonu}} {{Patrz|liczba_linki_nierozdzialowe_szablonu}}, oraz musi być spełniona alternatywa dwóch warunków: to {{Code|przed_tekst}} {{Patrz|przed_tekst}}, musi być puste lub ma spełniać warunek według wzoru: {{Code|<nowiki>^[%p%s%d%.]*$</nowiki>}}.
Jeżeli funkcja nie dopasowała kodu: {{Code|obiekt_szablon}} {{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, do wartości: {{Code|SZABLON}}, {{Code|LINKW}} i {{Code|LINKZ}}, to działa w pętli aż dopasuje je, aż do zakończenia zasobu danych dostępnych w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}}, jeżeli nie mogła by tego zrobić. A jeśli je dopasowała, to sprawdza, czy te kody są odpowiednimi obiektami, ewentualnie oddzielonych od siebie znakami {{Code|<nowiki>[%p%s%d%.]*</nowiki>}}, poprzez sprawdzanie funkcją wspomnianą w nagłówku. Jeśli ta funkcja zwróci wartość prawdziwą, to zwrócone zostaną parametry:
<syntaxhighlight lang="lua">
return liczba_linki_nierozdzialowe_szablonu,true;
</syntaxhighlight>
W innych przypadkach, jeżeli takiego dopasowania nie znalazła, to zwróć szereg wartości:
<syntaxhighlight lang="lua">
return liczba_spisowa,false;
</syntaxhighlight>
W tym przypadku wartość {{Code|liczba_spisowa}} {{LinkPatrz|liczba_spisowa}}, to nic innego jak ostatni argument naszej funkcji, czyli w przypadku niepowodzenia dopasowania, zwracana jest wartość ta początkowa, z drugą wartością, że niezaleziono poszukiwanego obiektu.
== {{Śródtytuł|p.SzukanieSekcjiLinkowychLiniowychZakresowych}}{{Code|p.SzukanieSekcjiLinkowychLiniowychZakresowych}} ==
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SzukanieSekcjiLinkowychLiniowychZakresowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_pierwszy_rozdzialowy_artykul,liczba_przed_rozdzialem,liczba_start_naglowek_przed,czy_znajdz)...end;
</syntaxhighlight>
Parametry funkcji:
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
hy7jkod67mkvoku6c280xa1fzipf0b8
Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom VI
4
63921
554547
553024
2026-09-05T20:01:37Z
Persino
2851
554547
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.PoliczKoniecZakodowanegoTekstuArtykularnego}}{{Code|p.PoliczKoniecZakodowanegoTekstuArtykularnego}} ==
== {{Śródtytuł|p.KoniecStronyLicencja}}{{Code|p.KoniecStronyLicencja}} ==
Funkcja wyszukuje od tyłu, szablon licencji: {{s|Licencja}}, i zwraca jego koniec dopasowania, jak i jego kod w postaci zakodowanego tekstu. Funkcja wyszukuje od końca tekstu do pewnego momentu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.KoniecStronyLicencja(tekst_rozwiniety_calego_artykulu,liczba_start,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start}} - jak w: {{LinkPatrz|liczba_start|StronicowyParser/AnalizaSpisuRzeczy/Tom V}}, czyli do jakiego momentu ma wyszukiwać,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wykorzystuje wzor zdefiniowany przy pomocy funkcji: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, dla obiektu typu: {{Code|SZABLON}}, dla dowolnego numeru, jest to wzor, dzięki któremu wyszukujemy szablon, lub twory szablonowe tym wzorem, których treść: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, wyznaczamy z {{Code|obiekt}}, dla tego typu obiektu, i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} z {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
Wyszukujemy kolejne te twory szablonowe przy pomocy: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, i wybieramy z tego same tylko szablony we specjalnej funkcji, wśród tych znajdujemy ich nazwy przy pomocy niej, jak i inne nieważne parametry, sprawdzając, czy to jest nazwa szablonu licencji.
Funkcja wyszukuje, aż do wyczerpania zasobów tekstu, lub po zatrzymaniu tego na pierwszym wykrytym tak takim szablonie. Funkcja nie potrafi przekroczyć zakresu liczenia, i znajduje tą nazwę, a więc tego szablonu.
Te kod zakodowany jest tworzony dzięki: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}, z uzyskanego z pętli dla obiektu: {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}{{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, jej numeru: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, co na podstawie tej wspomnianej funkcji uzyskujemy je, jako szablonowy kod bazy zakodowanego tekstu.
Jak funkcja znalazła ten szablon, to zwraca dwie wartości, napisane we wstępie po nagłówku według {{Patrz|ogólne zwracane parametry-p.KoniecStronyLicencja}}:
<syntaxhighlight lang="lua">
return liczba_koniec_szablon,norma_wzoru;
</syntaxhighlight>
Która jest odpowiednikiem sekwencji: {{LinkPatrz|ogólne zwracane parametry-p.KoniecStronyLicencja}}, tylko dla szablonów w specjalnej funkcji wybierającej typy szablonowe tylko szablonów, napisaną w niej w sposób:
<syntaxhighlight lang="lua">
---- Funkcja wśród nazw szablonów, wybiera tylko jedną nazwę: Licencja, i na podstawie tego zwraca dane, lub ta specjalna funkcja nic nie zwraca, ale się zatrzymuje, i dlatego pętla nadrzedna wie, ze ma dalej wyszukiwać kolejne takie twory, a więc i szablony;
if(nazwa_szablonu=="Licencja")then
return liczba_koniec_szablon,szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod);
end;
</syntaxhighlight>
== {{Śródtytuł|p.KorygowanieTekstuSpisuRzeczy}}{{Code|p.KorygowanieTekstuSpisuRzeczy}} ==
Funkcja do korygowania tekstu {{Code|tekst}} {{LinkPatrz|tekst}} spisu treści z wydzielonego z: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, poza tą funkcją, za pomocą jego początku i końca wydzielenia z tego.
Ten tekst, jest korygowany przez tą funkcję, z elementami bibliografii (a te pierwsze tylko linki z bieżącej książki są zostawiane, a dalsze są też zostawiane) i literatury (a tutaj tak samo jak z pierwszymi, z artykułami bieżącej książki, a dalsze są usuwane). W przypadku bibliografii, tylko szablony licencji i przypisów, czyli te elementy {{ZobaczTeż|specjalne szablony}} są zostawiane, a dalsze są usuwane, w przypadku literatury szablony wszystkie są usuwane. Pozostałe części, które z tych elementów zostają przez tą funkcję usunięte, czyli zastąpione zostają ciągiem pustym, czyli są usunięte inaczej mówiąc.
Elementy bibliografii i literatury mieszczą się w pewnych zdefiniowanym osobnych rozdziałach, które mieszczą się w spisie książki, i są to pewne napisy wprowadzenia tekstu z tymi osobnymi tymi, czego dotyczą, co usuwamy, co zostawiamy, w ich, w ich napisach wprowadzenia tekstu, wraz ich zawartościami, a te teksty, to właśnie modyfikujemy.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.KorygowanieTekstuSpisuRzeczy(tekst,tab_wzor,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} {{Patrz|tekst}} - część wydzielonego tekstu z całości: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|tab_wzor}} {{Patrz|tab_wzor}} - tablica dwuwyniarowa, składająca się ze wzoru rozdziału i drugiej wartości logicznej: {{Code|true/false}}, czy ma dalsze linki i szablony (tutaj szablony: {{LinkZobaczTeż|specjalne szablony}}) zostawiać, a które już nie, w wydzielonym tekście {{LinkPatrz|tekst}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Wartość zwracana:
* Jest to zmodyfikowana wartość tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}, wydzielonego poza tą funkcją z tekstu artykułu zakodowanego, z elementami biliografii lub literatury, w którym usuwaliśmy pewne elementy.
Ten wzor do wydzielania tekstu z drugą wartością logiczną, jest w tablicy, dla: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe|p=StronicowyParser/obiekty}}}}, a przytaczamy tutaj jego definicję {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe={
[1]={"[ _\t]*'*[ _\t]*[Ll][Ii][Tt][Ee][Rr][Aa][Tt][Uu][Rr][Aa][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",false,},
[2]={"[ _\t]*'*[ _\t]*[Bb][Ii][Bb][Ll][Ii][Oo][Gg][Rr][Aa][Ff][Ii][Aa][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",true,},
};
</syntaxhighlight>
Poszczególne elementy tej tablicy, tzn. elementy numerowane, są to pojedyncze tablice o nazwie: {{Code|tab_wzor}} {{LinkPatrz|tab_wzor}}, wsadzane jako drugi parametr naszej funkcji.
Przed korygowaniem tekstu spisu treści, szablon korzysta z funkcji do znajdowania odpowiedniego nagłówka dodatniego, niezależnie jakiego, od pierwszej pozycji tego wydzielonego tekstu, zdefiniowanego w: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}} {{Patrz|nagłówek_dodatni}}, a jeżeli tam jego nie znalazł, to je szuka w w zerowych rozdziałach według: {{LinkŚródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu|StronicowyParser/AnalizaSpisuRzeczy/Tom III}} {{Patrz|nagłówek_zerowy}}.
Jak znalazł początki tych nagłówków za pomocą tego pierwszego, jak nie znalazł to według drugiego sposobu, to szuka ich końców, jeżeli znalazł według tego pierwszego, to szuka końca według nagłówka podobnego, czyli też dodatniego, ale dowolnego, a jak znalazł, to zerowe zamiast dodatniego, to szuka nagłówka końcowego na dwa możliwe sposoby, sposób pierwszy: {{LinkPatrz|nagłówek_dodatni}} - nagłówek dodatni, i {{LinkPatrz|nagłówek_zerowy}} - nagłówek zerowy, i znajduje ten wcześniejszy, i na podstawie tego mamy treści, z którego możemy wydzielić tekst przed tym napisem wprowadzenia tekstu i po, jak i to pomiędzy.
To pomiędzy, czyli tekst, który dotyczy rozdziału: '''Bibliografia''' lub '''Literatura''', modyfikujemy ich tekst rozdziału, a na samym końcu po korekcji łączymy te trzy tekstu w jeden wielki tekst i zwracamy przez tą funkcję.
W nagłówku '''Bibliografia''' funkcja uwzględnia szablony: przypisów jak: {{s|Przypisy}}, licencji jak: {{s|Licencja}}, definicje tych tabel są:
* Szablonów przypisów, która uwzględnia wiele rodzajów przypisów różnego rodzaju, jak przypisy bibliograficzne (szablon: {{s|Przypisy}} i {{s|Przypisy-lista}}) i rzeczowe (szablon: {{s|Uwagi}}), są one zdefiniowane przy pomocy modułu {{m|Przypisy}}:
<syntaxhighlight lang="lua">
p.szablony_przypisowe={
["Przypisy"]=true,
["Uwagi"]=true,
["Przypisy-lista"]=true,
};
</syntaxhighlight>
* Szablonów licencji, która uwzględnia na razie tylko jeden rodzajów licencji, są one zdefiniowane przy pomocy modułu {{m|Licencja}}:
<syntaxhighlight lang="lua">
p.szablony_licencji={
["Licencja"]=true,
};
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
rrx9x68droinoeibbui90gv1ul7lchl
554560
554547
2026-09-05T22:00:05Z
Persino
2851
554560
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.PoliczKoniecZakodowanegoTekstuArtykularnego}}{{Code|p.PoliczKoniecZakodowanegoTekstuArtykularnego}} ==
== {{Śródtytuł|p.KoniecStronyLicencja}}{{Code|p.KoniecStronyLicencja}} ==
Funkcja wyszukuje od tyłu, szablon licencji: {{s|Licencja}}, i zwraca jego koniec dopasowania, jak i jego kod w postaci zakodowanego tekstu. Funkcja wyszukuje od końca tekstu do pewnego momentu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.KoniecStronyLicencja(tekst_rozwiniety_calego_artykulu,liczba_start,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start}} - jak w: {{LinkPatrz|liczba_start|StronicowyParser/AnalizaSpisuRzeczy/Tom V}}, czyli do jakiego momentu ma wyszukiwać,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wykorzystuje wzor zdefiniowany przy pomocy funkcji: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, dla obiektu typu: {{Code|SZABLON}}, dla dowolnego numeru, jest to wzor, dzięki któremu wyszukujemy szablon, lub twory szablonowe tym wzorem, których treść: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, wyznaczamy z {{Code|obiekt}}, dla tego typu obiektu, i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} z {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
Wyszukujemy kolejne te twory szablonowe przy pomocy: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, i wybieramy z tego same tylko szablony we specjalnej funkcji, wśród tych znajdujemy ich nazwy przy pomocy niej, jak i inne nieważne parametry, sprawdzając, czy to jest nazwa szablonu licencji.
Funkcja wyszukuje, aż do wyczerpania zasobów tekstu, lub po zatrzymaniu tego na pierwszym wykrytym tak takim szablonie. Funkcja nie potrafi przekroczyć zakresu liczenia, i znajduje tą nazwę, a więc tego szablonu.
Te kod zakodowany jest tworzony dzięki: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}, z uzyskanego z pętli dla obiektu: {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}{{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, jej numeru: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, co na podstawie tej wspomnianej funkcji uzyskujemy je, jako szablonowy kod bazy zakodowanego tekstu.
Jak funkcja znalazła ten szablon, to zwraca dwie wartości, napisane we wstępie po nagłówku według {{Patrz|ogólne zwracane parametry-p.KoniecStronyLicencja}}:
<syntaxhighlight lang="lua">
return liczba_koniec_szablon,norma_wzoru;
</syntaxhighlight>
Która jest odpowiednikiem sekwencji: {{LinkPatrz|ogólne zwracane parametry-p.KoniecStronyLicencja}}, tylko dla szablonów w specjalnej funkcji wybierającej typy szablonowe tylko szablonów, napisaną w niej w sposób:
<syntaxhighlight lang="lua">
---- Funkcja wśród nazw szablonów, wybiera tylko jedną nazwę: Licencja, i na podstawie tego zwraca dane, lub ta specjalna funkcja nic nie zwraca, ale się zatrzymuje, i dlatego pętla nadrzedna wie, ze ma dalej wyszukiwać kolejne takie twory, a więc i szablony;
if(nazwa_szablonu=="Licencja")then
return liczba_koniec_szablon,szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod);
end;
</syntaxhighlight>
== {{Śródtytuł|p.KorygowanieTekstuSpisuRzeczy}}{{Code|p.KorygowanieTekstuSpisuRzeczy}} ==
Funkcja do korygowania tekstu {{Code|tekst}} {{LinkPatrz|tekst}} spisu treści z wydzielonego z: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, poza tą funkcją, za pomocą jego początku i końca wydzielenia z tego.
Ten tekst, jest korygowany przez tą funkcję, z elementami bibliografii (a te pierwsze tylko linki z bieżącej książki są zostawiane, a dalsze są też zostawiane) i literatury (a tutaj tak samo jak z pierwszymi, z artykułami bieżącej książki, a dalsze są usuwane). W przypadku bibliografii, tylko szablony licencji i przypisów, czyli te elementy {{ZobaczTeż|specjalne szablony}} są zostawiane, a dalsze są usuwane, w przypadku literatury szablony wszystkie są usuwane. Pozostałe części, które z tych elementów zostają przez tą funkcję usunięte, czyli zastąpione zostają ciągiem pustym, czyli są usunięte inaczej mówiąc.
Elementy bibliografii i literatury mieszczą się w pewnych zdefiniowanym osobnych rozdziałach, które mieszczą się w spisie książki, i są to pewne napisy wprowadzenia tekstu z tymi osobnymi tymi, czego dotyczą, co usuwamy, co zostawiamy, w ich, w ich napisach wprowadzenia tekstu, wraz ich zawartościami, a te teksty, to właśnie modyfikujemy.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.KorygowanieTekstuSpisuRzeczy(tekst,tab_wzor,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} {{Patrz|tekst}} - część wydzielonego tekstu z całości: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|tab_wzor}} {{Patrz|tab_wzor}} - tablica dwuwyniarowa, składająca się ze wzoru rozdziału i drugiej wartości logicznej: {{Code|true/false}}, czy ma dalsze linki i szablony (tutaj szablony: {{LinkZobaczTeż|specjalne szablony}}) zostawiać, a które już nie, w wydzielonym tekście: {{Code|tekst}} {{LinkPatrz|tekst}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Wartość zwracana:
* Jest to zmodyfikowana wartość tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}, wydzielonego poza tą funkcją z tekstu artykułu zakodowanego, z elementami biliografii lub literatury, w którym usuwaliśmy pewne elementy.
Ten wzor do wydzielania tekstu z drugą wartością logiczną, jest w tablicy, dla: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe|p=StronicowyParser/obiekty}}}}, a przytaczamy tutaj jego definicję {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe={
[1]={"[ _\t]*'*[ _\t]*[Ll][Ii][Tt][Ee][Rr][Aa][Tt][Uu][Rr][Aa][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",false,},
[2]={"[ _\t]*'*[ _\t]*[Bb][Ii][Bb][Ll][Ii][Oo][Gg][Rr][Aa][Ff][Ii][Aa][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",true,},
};
</syntaxhighlight>
Poszczególne elementy tej tablicy, tzn. elementy numerowane, są to pojedyncze tablice o nazwie: {{Code|tab_wzor}} {{LinkPatrz|tab_wzor}}, wsadzane jako drugi parametr naszej funkcji.
Przed korygowaniem tekstu spisu treści, szablon korzysta z funkcji do znajdowania odpowiedniego nagłówka dodatniego, niezależnie jakiego, od pierwszej pozycji tego wydzielonego tekstu, zdefiniowanego w: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}} {{Patrz|nagłówek_dodatni}}, a jeżeli tam jego nie znalazł, to je szuka w w zerowych rozdziałach według: {{LinkŚródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu|StronicowyParser/AnalizaSpisuRzeczy/Tom III}} {{Patrz|nagłówek_zerowy}}.
Jak znalazł początki tych nagłówków za pomocą tego pierwszego, jak nie znalazł to według drugiego sposobu, to szuka ich końców, jeżeli znalazł według tego pierwszego, to szuka końca według nagłówka podobnego, czyli też dodatniego, ale dowolnego, a jak znalazł, to zerowe zamiast dodatniego, to szuka nagłówka końcowego na dwa możliwe sposoby, sposób pierwszy: {{LinkPatrz|nagłówek_dodatni}} - nagłówek dodatni, i {{LinkPatrz|nagłówek_zerowy}} - nagłówek zerowy, i znajduje ten wcześniejszy, i na podstawie tego mamy treści, z którego możemy wydzielić tekst przed tym napisem wprowadzenia tekstu i po, jak i to pomiędzy.
To pomiędzy, czyli tekst, który dotyczy rozdziału: '''Bibliografia''' lub '''Literatura''', modyfikujemy ich tekst rozdziału, a na samym końcu po korekcji łączymy te trzy tekstu w jeden wielki tekst i zwracamy przez tą funkcję.
W nagłówku '''Bibliografia''' funkcja uwzględnia szablony: przypisów jak: {{s|Przypisy}}, licencji jak: {{s|Licencja}}, definicje tych tabel są:
* Szablonów przypisów, która uwzględnia wiele rodzajów przypisów różnego rodzaju, jak przypisy bibliograficzne (szablon: {{s|Przypisy}} i {{s|Przypisy-lista}}) i rzeczowe (szablon: {{s|Uwagi}}), są one zdefiniowane przy pomocy modułu {{m|Przypisy}}:
<syntaxhighlight lang="lua">
p.szablony_przypisowe={
["Przypisy"]=true,
["Uwagi"]=true,
["Przypisy-lista"]=true,
};
</syntaxhighlight>
* Szablonów licencji, która uwzględnia na razie tylko jeden rodzajów licencji, są one zdefiniowane przy pomocy modułu {{m|Licencja}}:
<syntaxhighlight lang="lua">
p.szablony_licencji={
["Licencja"]=true,
};
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
dzqoozc61pckwbpvti66yoqd56py6yv
554561
554560
2026-09-05T23:04:40Z
Persino
2851
/* p.KoniecStronyLicencja */
554561
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.PoliczKoniecZakodowanegoTekstuArtykularnego}}{{Code|p.PoliczKoniecZakodowanegoTekstuArtykularnego}} ==
== {{Śródtytuł|p.KoniecStronyLicencja}}{{Code|p.KoniecStronyLicencja}} ==
Funkcja wyszukuje, od tyłu, szablon licencji: {{s|Licencja}}, i zwraca jego koniec dopasowania, jak i jego kod w postaci zakodowanego tekstu. Funkcja wyszukuje od końca tekstu do pewnego momentu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.KoniecStronyLicencja(tekst_rozwiniety_calego_artykulu,liczba_start,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start}} - jak w: {{LinkPatrz|liczba_start|StronicowyParser/AnalizaSpisuRzeczy/Tom V}}, czyli do jakiego momentu ma wyszukiwać,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wykorzystuje wzor zdefiniowany przy pomocy funkcji: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, dla obiektu typu: {{Code|SZABLON}}, dla dowolnego numeru, jest to wzor, dzięki któremu wyszukujemy szablon, lub twory szablonowe tym wzorem, których treść: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, wyznaczamy z {{Code|obiekt}}, dla tego typu obiektu, i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} z {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
Wyszukujemy kolejne te twory szablonowe przy pomocy: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, i wybieramy z tego same tylko szablony we specjalnej funkcji, wśród tych znajdujemy ich nazwy przy pomocy niej, jak i inne nieważne parametry, sprawdzając, czy to jest nazwa szablonu licencji.
Funkcja wyszukuje, aż do wyczerpania zasobów tekstu, lub po zatrzymaniu tego na pierwszym wykrytym tak takim szablonie. Funkcja nie potrafi przekroczyć zakresu liczenia, i znajduje tą nazwę, a więc tego szablonu.
Te kod zakodowany jest tworzony dzięki: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}, z uzyskanego z pętli dla obiektu: {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}{{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, jej numeru: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, co na podstawie tej wspomnianej funkcji uzyskujemy je, jako szablonowy kod bazy zakodowanego tekstu.
Jak funkcja znalazła ten szablon, to zwraca dwie wartości, napisane we wstępie po nagłówku według {{Patrz|ogólne zwracane parametry-p.KoniecStronyLicencja}}:
<syntaxhighlight lang="lua">
return liczba_koniec_szablon,norma_wzoru;
</syntaxhighlight>
Która jest odpowiednikiem sekwencji: {{LinkPatrz|ogólne zwracane parametry-p.KoniecStronyLicencja}}, tylko dla szablonów w specjalnej funkcji wybierającej typy szablonowe tylko szablonów, napisaną w niej w sposób:
<syntaxhighlight lang="lua">
---- Funkcja wśród nazw szablonów, wybiera tylko jedną nazwę: Licencja, i na podstawie tego zwraca dane, lub ta specjalna funkcja nic nie zwraca, ale się zatrzymuje, i dlatego pętla nadrzedna wie, ze ma dalej wyszukiwać kolejne takie twory, a więc i szablony;
if(nazwa_szablonu=="Licencja")then
return liczba_koniec_szablon,szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod);
end;
</syntaxhighlight>
== {{Śródtytuł|p.KorygowanieTekstuSpisuRzeczy}}{{Code|p.KorygowanieTekstuSpisuRzeczy}} ==
Funkcja do korygowania tekstu {{Code|tekst}} {{LinkPatrz|tekst}} spisu treści z wydzielonego z: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, poza tą funkcją, za pomocą jego początku i końca wydzielenia z tego.
Ten tekst, jest korygowany przez tą funkcję, z elementami bibliografii (a te pierwsze tylko linki z bieżącej książki są zostawiane, a dalsze są też zostawiane) i literatury (a tutaj tak samo jak z pierwszymi, z artykułami bieżącej książki, a dalsze są usuwane). W przypadku bibliografii, tylko szablony licencji i przypisów, czyli te elementy {{ZobaczTeż|specjalne szablony}} są zostawiane, a dalsze są usuwane, w przypadku literatury szablony wszystkie są usuwane. Pozostałe części, które z tych elementów zostają przez tą funkcję usunięte, czyli zastąpione zostają ciągiem pustym, czyli są usunięte inaczej mówiąc.
Elementy bibliografii i literatury mieszczą się w pewnych zdefiniowanym osobnych rozdziałach, które mieszczą się w spisie książki, i są to pewne napisy wprowadzenia tekstu z tymi osobnymi tymi, czego dotyczą, co usuwamy, co zostawiamy, w ich, w ich napisach wprowadzenia tekstu, wraz ich zawartościami, a te teksty, to właśnie modyfikujemy.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.KorygowanieTekstuSpisuRzeczy(tekst,tab_wzor,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} {{Patrz|tekst}} - część wydzielonego tekstu z całości: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|tab_wzor}} {{Patrz|tab_wzor}} - tablica dwuwyniarowa, składająca się ze wzoru rozdziału i drugiej wartości logicznej: {{Code|true/false}}, czy ma dalsze linki i szablony (tutaj szablony: {{LinkZobaczTeż|specjalne szablony}}) zostawiać, a które już nie, w wydzielonym tekście: {{Code|tekst}} {{LinkPatrz|tekst}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Wartość zwracana:
* Jest to zmodyfikowana wartość tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}, wydzielonego poza tą funkcją z tekstu artykułu zakodowanego, z elementami biliografii lub literatury, w którym usuwaliśmy pewne elementy.
Ten wzor do wydzielania tekstu z drugą wartością logiczną, jest w tablicy, dla: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe|p=StronicowyParser/obiekty}}}}, a przytaczamy tutaj jego definicję {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe={
[1]={"[ _\t]*'*[ _\t]*[Ll][Ii][Tt][Ee][Rr][Aa][Tt][Uu][Rr][Aa][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",false,},
[2]={"[ _\t]*'*[ _\t]*[Bb][Ii][Bb][Ll][Ii][Oo][Gg][Rr][Aa][Ff][Ii][Aa][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",true,},
};
</syntaxhighlight>
Poszczególne elementy tej tablicy, tzn. elementy numerowane, są to pojedyncze tablice o nazwie: {{Code|tab_wzor}} {{LinkPatrz|tab_wzor}}, wsadzane jako drugi parametr naszej funkcji.
Przed korygowaniem tekstu spisu treści, szablon korzysta z funkcji do znajdowania odpowiedniego nagłówka dodatniego, niezależnie jakiego, od pierwszej pozycji tego wydzielonego tekstu, zdefiniowanego w: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}} {{Patrz|nagłówek_dodatni}}, a jeżeli tam jego nie znalazł, to je szuka w w zerowych rozdziałach według: {{LinkŚródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu|StronicowyParser/AnalizaSpisuRzeczy/Tom III}} {{Patrz|nagłówek_zerowy}}.
Jak znalazł początki tych nagłówków za pomocą tego pierwszego, jak nie znalazł to według drugiego sposobu, to szuka ich końców, jeżeli znalazł według tego pierwszego, to szuka końca według nagłówka podobnego, czyli też dodatniego, ale dowolnego, a jak znalazł, to zerowe zamiast dodatniego, to szuka nagłówka końcowego na dwa możliwe sposoby, sposób pierwszy: {{LinkPatrz|nagłówek_dodatni}} - nagłówek dodatni, i {{LinkPatrz|nagłówek_zerowy}} - nagłówek zerowy, i znajduje ten wcześniejszy, i na podstawie tego mamy treści, z którego możemy wydzielić tekst przed tym napisem wprowadzenia tekstu i po, jak i to pomiędzy.
To pomiędzy, czyli tekst, który dotyczy rozdziału: '''Bibliografia''' lub '''Literatura''', modyfikujemy ich tekst rozdziału, a na samym końcu po korekcji łączymy te trzy tekstu w jeden wielki tekst i zwracamy przez tą funkcję.
W nagłówku '''Bibliografia''' funkcja uwzględnia szablony: przypisów jak: {{s|Przypisy}}, licencji jak: {{s|Licencja}}, definicje tych tabel są:
* Szablonów przypisów, która uwzględnia wiele rodzajów przypisów różnego rodzaju, jak przypisy bibliograficzne (szablon: {{s|Przypisy}} i {{s|Przypisy-lista}}) i rzeczowe (szablon: {{s|Uwagi}}), są one zdefiniowane przy pomocy modułu {{m|Przypisy}}:
<syntaxhighlight lang="lua">
p.szablony_przypisowe={
["Przypisy"]=true,
["Uwagi"]=true,
["Przypisy-lista"]=true,
};
</syntaxhighlight>
* Szablonów licencji, która uwzględnia na razie tylko jeden rodzajów licencji, są one zdefiniowane przy pomocy modułu {{m|Licencja}}:
<syntaxhighlight lang="lua">
p.szablony_licencji={
["Licencja"]=true,
};
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
bw9bxlmvzx1ltva6r6j7crj5p0tj8i0
554562
554561
2026-09-05T23:09:53Z
Persino
2851
/* p.KoniecStronyLicencja */
554562
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.PoliczKoniecZakodowanegoTekstuArtykularnego}}{{Code|p.PoliczKoniecZakodowanegoTekstuArtykularnego}} ==
== {{Śródtytuł|p.KoniecStronyLicencja}}{{Code|p.KoniecStronyLicencja}} ==
Funkcja wyszukuje, od tyłu, szablon licencji: {{s|Licencja}}, i zwraca jego koniec dopasowania, jak i jego kod w postaci zakodowanego tekstu. Funkcja wyszukuje od końca tekstu do pewnego momentu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.KoniecStronyLicencja(tekst_rozwiniety_calego_artykulu,liczba_start,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|liczba_start}} - jak w: {{LinkPatrz|liczba_start|StronicowyParser/AnalizaSpisuRzeczy/Tom V}}, czyli do jakiego momentu ma wyszukiwać,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/AnalizaSpisuRzeczy}}.
Funkcja wykorzystuje wzor zdefiniowany przy pomocy funkcji: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, dla obiektu typu: {{Code|SZABLON}}, dla dowolnego numeru, jest to wzor, dzięki któremu wyszukujemy szablon, lub twory szablonowe tym wzorem, których treść: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/AnalizaSpisuRzeczy}}, wyznaczamy z {{Code|obiekt}}, dla tego typu obiektu, i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}} z {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy}}.
Wyszukujemy kolejne te twory szablonowe przy pomocy: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, i wybieramy z tego same tylko szablony we specjalnej funkcji, wśród tych znajdujemy ich nazwy przy pomocy niej, jak i inne nieważne parametry, sprawdzając, czy to jest nazwa szablonu licencji.
Funkcja wyszukuje, aż do wyczerpania zasobów tekstu, lub po zatrzymaniu tego na pierwszym wykrytym tak takim szablonie. Funkcja nie potrafi przekroczyć zakresu liczenia, i znajduje tą nazwę, a więc tego szablonu.
Te kod zakodowany jest tworzony dzięki: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}, z uzyskanego z pętli dla obiektu: {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}{{LinkPatrz|obiekt|StronicowyParser/AnalizaSpisuRzeczy}}, jego numeru: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/AnalizaSpisuRzeczy}}, co na podstawie tej wspomnianej funkcji uzyskujemy je, jako szablonowy kod bazy zakodowanego tekstu.
Jak funkcja znalazła ten szablon, to zwraca dwie wartości, napisane we wstępie po nagłówku według {{Patrz|ogólne zwracane parametry-p.KoniecStronyLicencja}}:
<syntaxhighlight lang="lua">
return liczba_koniec_szablon,norma_wzoru;
</syntaxhighlight>
Która jest odpowiednikiem sekwencji: {{LinkPatrz|ogólne zwracane parametry-p.KoniecStronyLicencja}}, tylko dla szablonów w specjalnej funkcji wybierającej typy szablonowe tylko szablonów, napisaną w niej w sposób:
<syntaxhighlight lang="lua">
---- Funkcja wśród nazw szablonów, wybiera tylko jedną nazwę: Licencja, i na podstawie tego zwraca dane, lub ta specjalna funkcja nic nie zwraca, ale się zatrzymuje, i dlatego pętla nadrzedna wie, ze ma dalej wyszukiwać kolejne takie twory, a więc i szablony;
if(nazwa_szablonu=="Licencja")then
return liczba_koniec_szablon,szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod);
end;
</syntaxhighlight>
== {{Śródtytuł|p.KorygowanieTekstuSpisuRzeczy}}{{Code|p.KorygowanieTekstuSpisuRzeczy}} ==
Funkcja do korygowania tekstu {{Code|tekst}} {{LinkPatrz|tekst}} spisu treści z wydzielonego z: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, poza tą funkcją, za pomocą jego początku i końca wydzielenia z tego.
Ten tekst, jest korygowany przez tą funkcję, z elementami bibliografii (a te pierwsze tylko linki z bieżącej książki są zostawiane, a dalsze są też zostawiane) i literatury (a tutaj tak samo jak z pierwszymi, z artykułami bieżącej książki, a dalsze są usuwane). W przypadku bibliografii, tylko szablony licencji i przypisów, czyli te elementy {{ZobaczTeż|specjalne szablony}} są zostawiane, a dalsze są usuwane, w przypadku literatury szablony wszystkie są usuwane. Pozostałe części, które z tych elementów zostają przez tą funkcję usunięte, czyli zastąpione zostają ciągiem pustym, czyli są usunięte inaczej mówiąc.
Elementy bibliografii i literatury mieszczą się w pewnych zdefiniowanym osobnych rozdziałach, które mieszczą się w spisie książki, i są to pewne napisy wprowadzenia tekstu z tymi osobnymi tymi, czego dotyczą, co usuwamy, co zostawiamy, w ich, w ich napisach wprowadzenia tekstu, wraz ich zawartościami, a te teksty, to właśnie modyfikujemy.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.KorygowanieTekstuSpisuRzeczy(tekst,tab_wzor,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} {{Patrz|tekst}} - część wydzielonego tekstu z całości: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* {{Code|tab_wzor}} {{Patrz|tab_wzor}} - tablica dwuwyniarowa, składająca się ze wzoru rozdziału i drugiej wartości logicznej: {{Code|true/false}}, czy ma dalsze linki i szablony (tutaj szablony: {{LinkZobaczTeż|specjalne szablony}}) zostawiać, a które już nie, w wydzielonym tekście: {{Code|tekst}} {{LinkPatrz|tekst}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
Wartość zwracana:
* Jest to zmodyfikowana wartość tekstu: {{Code|tekst}} {{LinkPatrz|tekst}}, wydzielonego poza tą funkcją z tekstu artykułu zakodowanego, z elementami biliografii lub literatury, w którym usuwaliśmy pewne elementy.
Ten wzor do wydzielania tekstu z drugą wartością logiczną, jest w tablicy, dla: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe|p=StronicowyParser/obiekty}}}}, a przytaczamy tutaj jego definicję {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe={
[1]={"[ _\t]*'*[ _\t]*[Ll][Ii][Tt][Ee][Rr][Aa][Tt][Uu][Rr][Aa][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",false,},
[2]={"[ _\t]*'*[ _\t]*[Bb][Ii][Bb][Ll][Ii][Oo][Gg][Rr][Aa][Ff][Ii][Aa][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",true,},
};
</syntaxhighlight>
Poszczególne elementy tej tablicy, tzn. elementy numerowane, są to pojedyncze tablice o nazwie: {{Code|tab_wzor}} {{LinkPatrz|tab_wzor}}, wsadzane jako drugi parametr naszej funkcji.
Przed korygowaniem tekstu spisu treści, szablon korzysta z funkcji do znajdowania odpowiedniego nagłówka dodatniego, niezależnie jakiego, od pierwszej pozycji tego wydzielonego tekstu, zdefiniowanego w: {{LinkŚródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}} {{Patrz|nagłówek_dodatni}}, a jeżeli tam jego nie znalazł, to je szuka w w zerowych rozdziałach według: {{LinkŚródtytuł|p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu|StronicowyParser/AnalizaSpisuRzeczy/Tom III}} {{Patrz|nagłówek_zerowy}}.
Jak znalazł początki tych nagłówków za pomocą tego pierwszego, jak nie znalazł to według drugiego sposobu, to szuka ich końców, jeżeli znalazł według tego pierwszego, to szuka końca według nagłówka podobnego, czyli też dodatniego, ale dowolnego, a jak znalazł, to zerowe zamiast dodatniego, to szuka nagłówka końcowego na dwa możliwe sposoby, sposób pierwszy: {{LinkPatrz|nagłówek_dodatni}} - nagłówek dodatni, i {{LinkPatrz|nagłówek_zerowy}} - nagłówek zerowy, i znajduje ten wcześniejszy, i na podstawie tego mamy treści, z którego możemy wydzielić tekst przed tym napisem wprowadzenia tekstu i po, jak i to pomiędzy.
To pomiędzy, czyli tekst, który dotyczy rozdziału: '''Bibliografia''' lub '''Literatura''', modyfikujemy ich tekst rozdziału, a na samym końcu po korekcji łączymy te trzy tekstu w jeden wielki tekst i zwracamy przez tą funkcję.
W nagłówku '''Bibliografia''' funkcja uwzględnia szablony: przypisów jak: {{s|Przypisy}}, licencji jak: {{s|Licencja}}, definicje tych tabel są:
* Szablonów przypisów, która uwzględnia wiele rodzajów przypisów różnego rodzaju, jak przypisy bibliograficzne (szablon: {{s|Przypisy}} i {{s|Przypisy-lista}}) i rzeczowe (szablon: {{s|Uwagi}}), są one zdefiniowane przy pomocy modułu {{m|Przypisy}}:
<syntaxhighlight lang="lua">
p.szablony_przypisowe={
["Przypisy"]=true,
["Uwagi"]=true,
["Przypisy-lista"]=true,
};
</syntaxhighlight>
* Szablonów licencji, która uwzględnia na razie tylko jeden rodzajów licencji, są one zdefiniowane przy pomocy modułu {{m|Licencja}}:
<syntaxhighlight lang="lua">
p.szablony_licencji={
["Licencja"]=true,
};
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
d2ahfhsorba60qymx3d1pwqtdg11171
Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom VII
4
63922
554548
552975
2026-09-05T20:05:54Z
Persino
2851
554548
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.AnalizaSpisuRzeczy}}{{Code|p.AnalizaSpisuRzeczy}} ==
Funkcja służy z zakodowanego i z przetworzonego tekstu artykułu danego spisu, wydzielić z niej właściwy fragment, który jest tym odpowiednim spisem treści.
Funkcja uwzględnia w swojej budowie, że on ma w sobie zawierać również szablony przypisów: jak: {{s|Przypisy}}, i licencji jak: {{s|Licencja}}, robi to za pomocą odpowiednich funkcji korekcji (korygowania) wydzielonego spisu.
=== Parametry funkcji ===
Przedstawimy tutaj fragment definicji tej funkcji, a także opis odnośnikowy jej parametrów.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/AnalizaSpisuRzeczy}},
* Parametry z sekcji: {{LinkZobaczTeż|Parametry zakodowanego spisu|StronicowyParser/AnalizaSpisuRzeczy}}.
=== Parametry zwracane ===
* Funkcja zwraca wydzielony tekst spis treści z tekstu zakodowanego i przetworzonego artykułu (spisu książki - podręcznika).
<syntaxhighlight lang="lua">
---- Wydzielenie właściwego spisu treści z całej treści zakodowanego artykułu spisu;
local tekst=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start,liczba_koniec);
---- Korygowanie danych wydzielonego spisu według powyższej metody, korekcja odbywa się po wszystkich możliwościach tabeli;
for _,tab_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe)do
---- Kolejne iteracje korekcji odpowiedniego spisu, kolejnymi krokami według poniższej funkcji;
tekst=p.KorygowanieTekstuSpisuRzeczy(tekst,tab_wzor,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
end;
---- Zwracanie wydzielonego i skorygowanego spisu treści;
return tekst;
</syntaxhighlight>
=== Wydzielanie właściwego spisu treści, liczenie punktów granicznych ===
Za pomocą tych dwóch liczb granicznych, punktu startowego i końcowego, będziemy wydzielać właściwy tekst spisu treści z całości zakodowanego spisu treści, ale najpierw te dwie liczby musimy wyznaczyć za pomocą pewnych ustalonych procedur. Będziemy to robić za pomocą funkcji w module: {{Code|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}}}.
==== Punkt startowy ====
Będziemy tu znajdować punkt startowy, przed którym tekst zostanie ucięty w wyniku końcowym w wyniku zwracania wartości przez tę funkcję.
===== Znajdowanie pierwszego artykułu książki =====
Pierwszy kod szablonowy według bazy kodów znajdujemy według następującego źródła:
<syntaxhighlight lang="lua">
---- Według bazy kodów, to reprezentuje, to wyrażenie regularne, dowolny kod bazy modułu: Szablonowe;
local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu();
---- Wyrażenie regularne wyszukiwania, względem warunków przechwytywania:
---- lista_szablon,
---- odstepy_poczatku_rozdzialu,
---- przerwa_szablon,
---- obiekt_szablon,
---- kod_szablon,
---- dalszy_tekst;
local wzor_szablonu_list="([%*:#;<>]*)([^%S\n]*)([^\n]-)[^%S\n]*[\'\"]*[^%S\n]*"..szablon_normy_kodowania_szablonu.."[^%S\n]*[\'\"]*[^%S\n]*([^\n]-)[^%S\n]*";
---- Uruchomienie nieskończonej petli wyszukiwania, która wewwnętrznie zostanie zakończona;
while(true)do
---- szukanie elementów, według wyrażenia regularnego powyższego, tzn. początku i końca jego wyszukiwania, powyższych elementów przechwyconych przez tę funkcję;
local liczba_start_szablon,liczba_koniec_szablon,lista_szablon,odstepy_poczatku_rozdzialu,przerwa_szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,wzor_szablonu_list,liczba_obiekt_koniec,nil,false);
</syntaxhighlight>
Szukamy kolejne linie, używając funkcji: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoruElementuLinii|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, mając wyrażenie regularne powyższe, szukamy, co najmniej pozycji list, a co najwyżej rozdziałów dodatnich, lub nawet zwykłej linii, oczywiście z jakimś kodem. Szukane elementy, numerując je odpowiednio, to są:
* {{Code|lista_szablon}} {{Patrz|lista_szablon}} - odpowiednie tą są znaki pozycji listy, lub nie ma ich wcale,
* {{Code|odstepy_poczatku_rozdzialu}} {{Patrz|odstepy_poczatku_rozdzialu}} - jest to cią odstępów bez znaku nowej linii {{Code|\n}},
* {{Code|przerwa_szablon}} {{Patrz|przerwa_szablon}} - elementy te i {{LinkPatrz|dalszy_tekst}}, gdzie mogą znajdować się tam elementy rozdziału dodatniego przy pustych wykrytych łańcuchach: {{LinkPatrz|lista_szablon}} i {{LinkPatrz|odstepy_poczatku_rozdzialu}}, to tam również mogą znajdowwać się znaki, typu: {{Code|<}} lub {{Code|>}}, oprócz tego,
* {{Code|obiekt_szablon}} {{Patrz|obiekt_szablon}} - jest to typ obiektu, który znajdujemy w kodzie, akceptowalne rodzaje, to {{ZobaczTeż|akceptowalne kody}}: {{Code|LINKW}} - linki wewnętrzne, {{Code|LINKZ}} - linki zewnętrzne, i {{Code|SZABLON}} - kody szablonowe, w tym linki inteligente i inne linki, a nieakceptowalnymi kodami są to różnego rodzaju nagłówki wraz z istniejącymi zawartościami, ale też {{Code|SZABLON}} - inne niż te linki, a może {{Code|ZNACZNIK}},
* {{Code|kod_szablon}} {{Patrz|kod_szablon}} - numer kodu o typie {{LinkPatrz|obiekt_szablon}}, który może być przetłumaczony na liczbę w wyniku transformacji przez funkcję: {{LzLua|tonumber}}, zamieniającą łańcuch znakowy na liczbę naturalną dodatnią;
* {{Code|dalszy_tekst}} {{Patrz|dalszy_tekst}} - jest to dalszy kod, za pierwszym takim zauważalnym kodzie, modułu: {{Code|{{m|Szablonowe}}}}.
====== Wyszukiwanie kolejnych możliwości linii z kodami szablonowymi bazy kodów, znając powyższe zmienne ======
Przy możliwych akceptowalnych kodach typu: {{LinkZobaczTeż|akceptowalne kody}}, będziemy znaajdować kolejne możliwości:
* Pozycje akceptowalne przez funkcje listy:
** Pozycje dowolnej listy przy niepustym łańcuchu znakowym: {{LinkPatrz|lista_szablon}}, i pustym: {{LinkPatrz|przerwa_szablon}}, co oznacza jego znaki, czyli to, że za nim bezpośrednio znajduje się kod bazy kodowania, np. linku, ale akceptowalnego elementu,
** Pozycje listy, gdzie: {{LinkPatrz|lista_szablon}}, nie zaczyna się od dwukropka {{Code|:}},
** Dowolna lista dwukropkowa, czyli {{LinkPatrz|lista_szablon}}, zaczyna się na dwukropek, a {{LinkPatrz|przerwa_szablon}}, to mogą znaki jeden z: {{Code|<}} i {{Code|>}},
* Początkowe znaki linii dalszego tekstu {{LinkPatrz|dalszy_tekst}}, tzn: nie jest {{Code|>}}, gdy: {{LinkPatrz|lista_szablon}} i {{LinkPatrz|przerwa_szablon}}, są puste,
* Dowolny rozdział równaniowy dodatni, gdy zmienne: {{LinkPatrz|lista_szablon}} i {{LinkPatrz|odstepy_poczatku_rozdzialu}}, są puste, a {{LinkPatrz|przerwa_szablon}}, zaczyna się od równa się, a {{LinkPatrz|dalszy_tekst}}, końcy się też na to.
; Gdy nie znaleziono elementów według powyższych punktów, tzn. szukamy według{{dk}}
* Gdy linii nie można było przydzielić, do któryś z powyższych punktów, to badamy, czy {{LinkPatrz|obiekt_szablon}} i {{LinkPatrz|kod_szablon}} - przetłumaczony na numer, czy w nim ewentualnie da się znaleźć kody linków, jeżeli one są szablonami, czy znacznikami, centrowania, lub sztucznymi nagłówkami, a nawet nagłówkami znacznikowymi,
* Szukamy w ich zawartości elementów, tzn. bezpośrednio zmiennych kodowych linków {{ZobaczTeż|inne_kody}}: {{Code|szablon}}, {{Code|obiekt_szablon}} {{LinkPatrz|obiekt_szablon}}, {{Code|kod_szablon}} {{LinkPatrz|kod_szablon}} i {{Code|dalszy_tekst}} {{LinkPatrz|dalszy_tekst}}, przy pomocy funkcji: {{LinkŚródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu|StronicowyParser/AnalizaSpisuRzeczy/Tom IV}}.
* W ten sposób znaleźliźmy inne kody i dalszy jego tekst w postaci elementów podanych w: {{LinkZobaczTeż|inne_kody}}.
==== Punkt końcowy ====
==== Wydzielanie spisu właściwego ====
===== Korekcja uzyskanego wyniku =====
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
hkforvsuz7z2z1c7hffb2cd029z8gnh
Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy
4
63923
554525
552994
2026-09-05T18:29:41Z
Persino
2851
/* Spis treści */
554525
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Funkcje do analizy i wydzielania, ze strony, dowolnego spisu rzeczy należącego do książki w przestrzeni nazw, nawet niby, czyli: '''{{Np|(main)|link=tak}}''', '''{{Np|Wikijunior|link=tak}}''', '''{{lr2|Brudnopis}}/<użytkownik>''' i '''{{Np|User|link=tak}}/<użytkownik>'''.
Moduł posiada specjalistyczne funkcje wyszukujące tekst według wzoru od przodu, jak i od tyłu, jak i funkcje znajdujące szcziśle określone elementy niezaleznie w jakim porządku, ale kolejność sie liczy, tzn. do przodu lub wsteczna.
Funkcja wyszukuje rozdziały, w tym rozdział: '''Spis treści''', czy: '''Spis rzeczy''', niezależnie jak są znormowane, od tyłu, znajdując rozdziały najbliższe przed sobą, nawet wyszukując je kolejne.
== Argumenty (zmienne) wstawiane do różnych funkcji ==
=== Parametry tekstu ===
Są to elementy części i całości kodu zakodowanego artykułu {{ZobaczTeż|Podstawowe parametry}}:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia, umieszczona pomiędzy znakami nowej linii lub elementami końca i początku łańcucha znakowego,
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst, całości zakodowanego artykułu.
=== Elementy kodowania kodów różnych obiektów ===
Elementy różnych kodów to {{ZobaczTeż|Parametry kodowania}}, używane w tabeli bazy {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}:
* {{Code|obiekt}} {{Patrz|obiekt}} - rodzaj kkodu w bazie danych zakodowanego tekstu,
* {{Code|kod}} {{Patrz|kod}} - numer kodu w danego rodzaju.
=== Elementy złożone z rodzaju kodu i jego numeru ===
Parametry uzyskane {{ZobaczTeż|Parametry złożone}} przy pomocy tabel z innych elementów:
* {{Code|szablon}} {{Patrz|szablon}} - element złożony z elementów: {{LinkZobaczTeż|Parametry kodowania}}, przy użyciu tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
=== Parametry zakodowanego spisu ===
Są to elementy parametrów strony zakodowanego spisu {{ZobaczTeż|Parametry zakodowanego spisu}}:
* {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} - kolejno jest to: '''nazwa przestrzeni nazw''', '''nazwa przestrzeni książki''', i '''nazwa książki''',
* {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} - nazwa artykułu spisu treści w podręcznikiem, jego wartością może być wartość pusta,
* {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - pełna nazwa spisu w wersji szablonowej, bez przestrzeni nazw {{Np|Template|link=tak}}, dla przestrzeni {{Np|(main)|link=tak}}, jest z dwukropkiem na początku,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tabela bazy danych zakodowanego tekstu, dla różnych obiektów {{LinkPatrz|obiekt}} z róznymi numerami elementów w nim {{LinkPatrz|kod}}
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica niektórych, nie wszystkich, przetworzonych elementów z: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, w wyniku użycia pewnych funkcji,
* Parametry tabele potrzebne przez funkcję {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|p.AnalizujLinkSzablonyOrazLinki}}, używane przez nią:
** {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} - tablica nazw spisu przekierowaniowego,
== Spis treści ==
Poszcególne moduły opisują, dla przejrzysości podzielone na nie, poszczególne funkcje w module: {{Code|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}}}, a te strony z nimi.
{{Hr}}
{{Kolumny|2|2=
=== {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom I}} ===
Funkcje do przeszukiwania ciągów znakowych podanych w tekście lub wewnątrz linii, w postaci przechwytywanych ciągów znakowych (ich jest maksymalnie dziewięć), one zwracają początek i koniec ostatniego dopasowania według kryteriów, w postaci pierwszy elementów zwracanych, dalsze elementy, to są przechwytywania, zdefiniowane bezpośrednio we wzoru wyszukiwania w postaci nawiasów okrągłych, tak są zaznaczane takie elementy.
=== {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom II}} ===
Funkcje do sprawdzania, czy szablon, obiekt typu: {{Code|SZABLON}}, czy inne: {{Code|LINKW}} i {{Code|LINKZ}}, są obiektami spisu treści podręcznika, a jeżeli tak, to funkcja zwraca wartość prawdziwości (powodzenia), lub do rewidowania, czy w linii niebędącej pozycją ujemną, czy tam są w ogóle elementy symbolizujące jakiegoś rodzaju linki spisu rzeczy, tam przedstawiane szablony albo to są szablony linków inteligetnych - czyli szablonu spisu, jak i inne linki typowo spisowe, używane tylko w spisach, a nie w treściwych częściach książki.
=== {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom III}} ===
Funkcje do wyszukiwania napisów wprowadzenia tekstu przede wszystkim zerowych, ale też mozna sprawdzić, czy przypadkiem, to jest rozdział centrowany, aby go czasami wykluczyć z obliczeń.
=== {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom IV}} ===
Funkcje wyszukujące rozdziały lub w samym nagłówku, które mają odpowiednie lub nie zawartości, takiego pierwszego, od tyłu, lub do przodu.
=== {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom V}} ===
Funkcje dotyczące wyszukiwania sekcji na zakodowanym tekście strony, w tym również linkowych, warunków znajdowania kolejnych rozdziałów w wikikodzie, jakie nagłówki wyszukiwać, jakie muszą spełniać rozwiązania.
=== {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom VI}} ===
Funkcje do korygowania pozycji końca spisu treści wydzielonej z zakodowanej treści artykułu (strony), by ona mieściła się wraz z licencją (z szablonem: {{s|Licencja}}), lub wydzielania spisu treści, co do napisu wprowadzenia tekstu i jego tekstu rozdziału, o nagłówkach: '''Bibliografia''' i '''Literatura''', niezależnie jak są znormowane.
=== {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom VII}} ===
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
3tktjeu3ikq0yg3m0y7f5pzgo59vcoq
554526
554525
2026-09-05T18:36:11Z
Persino
2851
/* Spis treści */
554526
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Funkcje do analizy i wydzielania, ze strony, dowolnego spisu rzeczy należącego do książki w przestrzeni nazw, nawet niby, czyli: '''{{Np|(main)|link=tak}}''', '''{{Np|Wikijunior|link=tak}}''', '''{{lr2|Brudnopis}}/<użytkownik>''' i '''{{Np|User|link=tak}}/<użytkownik>'''.
Moduł posiada specjalistyczne funkcje wyszukujące tekst według wzoru od przodu, jak i od tyłu, jak i funkcje znajdujące szcziśle określone elementy niezaleznie w jakim porządku, ale kolejność sie liczy, tzn. do przodu lub wsteczna.
Funkcja wyszukuje rozdziały, w tym rozdział: '''Spis treści''', czy: '''Spis rzeczy''', niezależnie jak są znormowane, od tyłu, znajdując rozdziały najbliższe przed sobą, nawet wyszukując je kolejne.
== Argumenty (zmienne) wstawiane do różnych funkcji ==
=== Parametry tekstu ===
Są to elementy części i całości kodu zakodowanego artykułu {{ZobaczTeż|Podstawowe parametry}}:
* {{Code|linia}} {{Patrz|linia}} - linia do sprawdzenia, umieszczona pomiędzy znakami nowej linii lub elementami końca i początku łańcucha znakowego,
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - przeszukiwany tekst, całości zakodowanego artykułu.
=== Elementy kodowania kodów różnych obiektów ===
Elementy różnych kodów to {{ZobaczTeż|Parametry kodowania}}, używane w tabeli bazy {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}:
* {{Code|obiekt}} {{Patrz|obiekt}} - rodzaj kkodu w bazie danych zakodowanego tekstu,
* {{Code|kod}} {{Patrz|kod}} - numer kodu w danego rodzaju.
=== Elementy złożone z rodzaju kodu i jego numeru ===
Parametry uzyskane {{ZobaczTeż|Parametry złożone}} przy pomocy tabel z innych elementów:
* {{Code|szablon}} {{Patrz|szablon}} - element złożony z elementów: {{LinkZobaczTeż|Parametry kodowania}}, przy użyciu tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
=== Parametry zakodowanego spisu ===
Są to elementy parametrów strony zakodowanego spisu {{ZobaczTeż|Parametry zakodowanego spisu}}:
* {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} - kolejno jest to: '''nazwa przestrzeni nazw''', '''nazwa przestrzeni książki''', i '''nazwa książki''',
* {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} - nazwa artykułu spisu treści w podręcznikiem, jego wartością może być wartość pusta,
* {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - pełna nazwa spisu w wersji szablonowej, bez przestrzeni nazw {{Np|Template|link=tak}}, dla przestrzeni {{Np|(main)|link=tak}}, jest z dwukropkiem na początku,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tabela bazy danych zakodowanego tekstu, dla różnych obiektów {{LinkPatrz|obiekt}} z róznymi numerami elementów w nim {{LinkPatrz|kod}}
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica niektórych, nie wszystkich, przetworzonych elementów z: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, w wyniku użycia pewnych funkcji,
* Parametry tabele potrzebne przez funkcję {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|p.AnalizujLinkSzablonyOrazLinki}}, używane przez nią:
** {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} - tablica nazw spisu przekierowaniowego,
== Spis treści ==
Poszcególne moduły opisują, dla przejrzysości podzielone na nie, poszczególne funkcje w module: {{Code|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}}}, a te strony z nimi.
{{Hr}}
{{Kolumny|2|2=
=== {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom I}} - Szukania według wzoru ===
Funkcje do przeszukiwania ciągów znakowych podanych w tekście lub wewnątrz linii, w postaci przechwytywanych ciągów znakowych (ich jest maksymalnie dziewięć), one zwracają początek i koniec ostatniego dopasowania według kryteriów, w postaci pierwszy elementów zwracanych, dalsze elementy, to są przechwytywania, zdefiniowane bezpośrednio we wzoru wyszukiwania w postaci nawiasów okrągłych, tak są zaznaczane takie elementy.
=== {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom II}} - Czy dany element obiekt jest linkiem do artykułu danej ksiązki ===
Funkcje do sprawdzania, czy szablon, obiekt typu: {{Code|SZABLON}}, czy inne: {{Code|LINKW}} i {{Code|LINKZ}}, są obiektami spisu treści podręcznika, a jeżeli tak, to funkcja zwraca wartość prawdziwości (powodzenia), lub do rewidowania, czy w linii niebędącej pozycją ujemną, czy tam są w ogóle elementy symbolizujące jakiegoś rodzaju linki spisu rzeczy, tam przedstawiane szablony albo to są szablony linków inteligetnych - czyli szablonu spisu, jak i inne linki typowo spisowe, używane tylko w spisach, a nie w treściwych częściach książki.
=== {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom III}} - Parsowanie spisu treści, czy rzeczy, rozdziału ===
Funkcje do wyszukiwania napisów wprowadzenia tekstu przede wszystkim zerowych, ale też mozna sprawdzić, czy przypadkiem, to jest rozdział centrowany, aby go czasami wykluczyć z obliczeń.
=== {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom IV}} - Znajdowanie najbliższego rozdziału ===
Funkcje wyszukujące rozdziały lub w samym nagłówku, które mają odpowiednie lub nie zawartości, takiego pierwszego, od tyłu, lub do przodu.
=== {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom V}} - Analiza poszczególnych sekcji ===
Funkcje dotyczące wyszukiwania sekcji na zakodowanym tekście strony, w tym również linkowych, warunków znajdowania kolejnych rozdziałów w wikikodzie, jakie nagłówki wyszukiwać, jakie muszą spełniać rozwiązania.
=== {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom VI}} - Funkcje korygowania spisu rzeczy ===
Funkcje do korygowania pozycji końca spisu treści wydzielonej z zakodowanej treści artykułu (strony), by ona mieściła się wraz z licencją (z szablonem: {{s|Licencja}}), lub wydzielania spisu treści, co do napisu wprowadzenia tekstu i jego tekstu rozdziału, o nagłówkach: '''Bibliografia''' i '''Literatura''', niezależnie jak są znormowane.
=== {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom VII}} - Funkcja do wydzielania z tekstu artykułu przetworzonego, właściwej jej części spisu ===
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
m1y7z1dz7mv5jtgr26mt9uo2m8fy8vl
Niemiecki/Gramatyka/Deklinacja nazw miesięcy i dni tygodnia
0
64132
554564
2026-09-06T07:29:13Z
EdytaT
2664
Utworzono nową stronę „ {{Rozdział|[[Niemiecki|Język niemiecki]]|[[Niemiecki/Gramatyka#Rzeczownik_(Substantiv/Nomen)|Gramatyka]]<br>Deklinacja nazw miesięcy i dni tygodnia}} == Deklinacja nazw miesięcy i dni tygodnia == === Liczba pojedyncza ''Gen.'' nazw miesięcy i dni tygodnia === * Nazwy miesięcy (''Januar'', ''Februar'' ...) i dni tygodnia (''Montag'', ''Dienstag'' ...) mają cechy zarówno rzeczowników własnych jak i rzeczowników pospolitych<ref name=Wahrig_Monate>[htt…”
554564
wikitext
text/x-wiki
{{Rozdział|[[Niemiecki|Język niemiecki]]|[[Niemiecki/Gramatyka#Rzeczownik_(Substantiv/Nomen)|Gramatyka]]<br>Deklinacja nazw miesięcy i dni tygodnia}}
== Deklinacja nazw miesięcy i dni tygodnia ==
=== Liczba pojedyncza ''Gen.'' nazw miesięcy i dni tygodnia ===
* Nazwy miesięcy (''Januar'', ''Februar'' ...) i dni tygodnia (''Montag'', ''Dienstag'' ...) mają cechy zarówno rzeczowników własnych jak i rzeczowników pospolitych<ref name=Wahrig_Monate>[http://books.google.com/books?id=sZGwuIt2FEMC&pg=PA325&lpg=PA325&dq=Wahrig+Gattungsname&source=bl&ots=kgrRRdRhzm&sig=N67l_ocb97pMwgKeVdZq666xhHk&hl=pl&ei=EHnQTPaSOM_tOf_6idQE&sa=X&oi=book_result&ct=result&resnum=1&ved=0CBQQ6AEwAA#v=onepage&q=Gattungsnamen&f=false praca zbiorowa, ''Wahrig - Richtiges Deutsch leicht gemacht'', wissensmedia GmbH, Gütersloh/München, ISBN 978-3-577-07566-4, dostęp 09.01.2021]</ref>. W ''Sing.'' ''Gen.'' albo otrzymują one końcówkę '''-s''', albo jej nie maję. Obie formy są prawidłowe:
: np. ''des Januar'' albo ''des Januars'', ''des Montags'' albo ''des Montag''
:* Obecnie przy nazwach miesięcy dominuje brak końcówki '''-s''', a w przypadku dni tygodnia występuje ona częściej.<ref name=Wahrig_Monate/>
== Przypisy ==
<references/>
2hu4whtwrkait7xsn3dt9dgb0qbcqlb
554566
554564
2026-09-06T07:34:28Z
EdytaT
2664
554566
wikitext
text/x-wiki
{{Rozdział|[[Niemiecki|Język niemiecki]]|[[Niemiecki/Gramatyka#Rzeczownik_(Substantiv/Nomen)|Gramatyka]]<br>Deklinacja nazw miesięcy i dni tygodnia}}
== Deklinacja nazw miesięcy i dni tygodnia (''Deklination von Monats- und Wochentagsnamen'') ==
=== Liczba pojedyncza ''Gen.'' nazw miesięcy i dni tygodnia ===
* Nazwy miesięcy (''Januar'', ''Februar'' ...) i dni tygodnia (''Montag'', ''Dienstag'' ...) mają cechy zarówno rzeczowników własnych jak i rzeczowników pospolitych<ref name=Wahrig_Monate>[http://books.google.com/books?id=sZGwuIt2FEMC&pg=PA325&lpg=PA325&dq=Wahrig+Gattungsname&source=bl&ots=kgrRRdRhzm&sig=N67l_ocb97pMwgKeVdZq666xhHk&hl=pl&ei=EHnQTPaSOM_tOf_6idQE&sa=X&oi=book_result&ct=result&resnum=1&ved=0CBQQ6AEwAA#v=onepage&q=Gattungsnamen&f=false praca zbiorowa, ''Wahrig - Richtiges Deutsch leicht gemacht'', wissensmedia GmbH, Gütersloh/München, ISBN 978-3-577-07566-4, dostęp 09.01.2021]</ref>. W ''Sing.'' ''Gen.'' albo otrzymują one końcówkę '''-s''', albo jej nie maję. Obie formy są prawidłowe:
: np. ''des Januar'' albo ''des Januars'', ''des Montags'' albo ''des Montag''
:* Obecnie przy nazwach miesięcy dominuje brak końcówki '''-s''', a w przypadku dni tygodnia występuje ona częściej.<ref name=Wahrig_Monate/>
== Przypisy ==
<references/>
54xgxu2iiap453x58aqn0r7cea2h24n
554567
554566
2026-09-06T07:36:43Z
EdytaT
2664
554567
wikitext
text/x-wiki
{{Rozdział|[[Niemiecki|Język niemiecki]]|[[Niemiecki/Gramatyka#Rzeczownik_(Substantiv/Nomen)|Gramatyka]]<br>Deklinacja nazw miesięcy i dni tygodnia}}
== Deklinacja nazw miesięcy i dni tygodnia (''Deklination von Monats- und Wochentagsnamen'') ==
=== Liczba pojedyncza ''Gen.'' nazw miesięcy i dni tygodnia ===
* Nazwy miesięcy (''Januar'', ''Februar'' ...) i dni tygodnia (''Montag'', ''Dienstag'' ...) mają cechy zarówno rzeczowników własnych jak i rzeczowników pospolitych<ref name=Wahrig_Monate>[http://books.google.com/books?id=sZGwuIt2FEMC&pg=PA325&lpg=PA325&dq=Wahrig+Gattungsname&source=bl&ots=kgrRRdRhzm&sig=N67l_ocb97pMwgKeVdZq666xhHk&hl=pl&ei=EHnQTPaSOM_tOf_6idQE&sa=X&oi=book_result&ct=result&resnum=1&ved=0CBQQ6AEwAA#v=onepage&q=Gattungsnamen&f=false praca zbiorowa, ''Wahrig - Richtiges Deutsch leicht gemacht'', wissensmedia GmbH, Gütersloh/München, ISBN 978-3-577-07566-4, dostęp 09.01.2021]</ref>. W ''Sing.'' ''Gen.'' albo otrzymują one końcówkę '''-s''', albo jej nie mają. Obie formy są prawidłowe:
: np. ''des Januar'' albo ''des Januars'', ''des Montags'' albo ''des Montag''
:* Obecnie przy nazwach miesięcy dominuje brak końcówki '''-s''', a w przypadku dni tygodnia występuje ona częściej.<ref name=Wahrig_Monate/>
== Przypisy ==
<references/>
81p2wcli6hjp2e71brvy3dzfbjq951m