Wikibooks plwikibooks https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna MediaWiki 1.47.0-wmf.11 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 Moduł:StronicowyParser/NumerLubNazwaArtykułówKsiążek 828 58936 547747 547681 2026-07-17T15:13:59Z Persino 2851 547747 Scribunto text/plain local p={}; local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame,tabela_listy_danych_analizy_ksiazki); if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(frame); local parametry_modul=require("Module:Parametry"); local szablonowe_modul=require("Module:Szablonowe"); local naglowek=parametry_modul.CzyTak(args["nagłówek"]); local nie_wszystkie=parametry_modul.CzyTak(args["nie wszystkie"]); ---- local dane=tonumber(args["dane"]); if((not dane)or((dane~=1)and(dane~=2)and(dane~=3)))then dane=1;end; ---- local artykul_spisu=args["spis"]; artykul_spisu=artykul_spisu and parametry_modul["Odstępy"]{[1]=artykul_spisu,[2]="tak",} or nil; local tab_artykul=(not naglowek)and {} or nil; local poziomowo=parametry_modul.CzyTak(args["poziomowo"]); local tab_poziomowo={}; local tab_poziomowo_1={}; local tab_poziomowo_2={}; local html_modul=require("Module:Html"); ---- local function ParametrySzablonuPobierania() if(not zbieraj_dane_wszystkie)then local pierwszy_parametr_szablonu=nil;local czy_nazwa=nil; if(not typ)then pierwszy_parametr_szablonu=args[1] and ((not naglowek) and mw.ustring.gsub(html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true),"^([^#]*)#(.*)$","%1") or html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true)) or "Przykładowy artykuł"; else pierwszy_parametr_szablonu=args[1] and ((not poziomowo) and (tonumber(args[1]) or 1) or args[1]) or ((not poziomowo) and 1 or "1"); czy_nazwa=parametry_modul.CzyTak(args["nazwa"]); end; return function() return {pierwszy_parametr_szablonu,czy_nazwa,dane,}; end; end; end; local pierwszy_parametr_szablonu=ParametrySzablonuPobierania(); ---- local ktory=(tonumber(args["który"]) or 1); local i=(not poziomowo) and 1 or nil; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu; local tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu); local odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu; local tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu); setmetatable(tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter); setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter); local HNumerPoziomow_4=nil; local HNumerPoziomow_3=nil local HNumerPoziomow_2=nil; local HNumerPoziomow_1=nil; local HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local HNumerPoziomowNaglowkow_1=nil; local HNumerPoziomowNaglowkow_2=nil; local tab_numer=poziomowo and {} or nil; local tab_numer_baza_spis_tresci=nil; local tab_numer_3=nil local tab_numer_4=nil;--poziomowo and {} or nil; local spis=false; local pierwszy_dodatni_naglowek=nil; local pierwszy_ujemny_naglowek=nil; local poprzedni_poziom_znakowy_rozdzialu=nil; local poprzedni_tab_poziomowo=nil; local poziom_pierwszego_dodatniego_naglowka=0; local poziom_pierwszego_ujemnego_naglowka=0; local poziom_zerowego_naglowka=0; local poziom_srednikowego_naglowka=0; local ostatni_rozdzial_dodatni=nil; local ostatni_rozdzial_centrowany=nil; local pierwszy_rozdzial_dodatni=nil; local glowny_dodatni_rozdzial=nil; local glowny_ujemny_rozdzial=nil; local spis_tresci=nil; local poziom_pierwszego_ujemnego_spisu_tresci=nil; local ostatni_poczatek_artykulu=nil; local pierwszy_rowny_rozdzial=nil; local rozdzial; local czy_pierwszy_nilowy=nil; local czy_nienilowy_rozdzial=nil; local czy_pierwszy_nilowy_rozdzial=nil; local czy_ostatni_rozdzial_jest_centrowany=nil; local glowny_spis_tresci_lub_rozdzial_ksiazki=nil; local poprz_poziom_rozdzialu_lub_artykulu=nil; local poprz_numeracji_rozdzialu_lub_artykulu=nil; local poprz_numer_rozdzialu_lub_artykulu=nil; local poprz_czysty_poziom_rozdzialu_lub_artykulu=nil; local poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=nil; local staly_dodatek_rozdzialu=0; ---- local poziom_spisu_tresci_dodatek=nil; ---- local odejmnij_od_dwukropka=0; ----- local czy_w_trakcie_dwukropkowania=nil; ----- local numer_poprz=nil; ---- local tab_lista_artykulow_w_ksiazce2=tab_lista_artykulow_w_ksiazce; tab_lista_artykulow_w_ksiazce={}; local function TabLista(tab_lista) local max_ile=0; for name,value in pairs(tab_lista)do max_ile=math.max(max_ile,name); end; local function Iterator(tab_lista) local p2=0; local s=0; local pp=0; local function InneTablica(numer) local p1=0; return function() if((tab_lista[numer])and(tab_lista[numer][p1+1])and(tab_lista[numer][p1+1][6]==pp))then p1=p1+1; pp=pp+1; return s,tab_lista[numer][p1]; end; end; end; local function WszystkieInneTablica() local tab={}; for i=1,max_ile-2,1 do tab[i]=InneTablica(i+2); end; return function() for i=1,max_ile-2,1 do local wartosc,tab_artykul=tab[i](); if((wartosc)and(tab_artykul))then return wartosc,tab_artykul; end; end; end; end; --local p1=0; --local p2=0; --local s=0; local iter_inne_tablice=WszystkieInneTablica(); return function() s=s+1; local wartosc,tab_artykul=iter_inne_tablice(); if((wartosc)and(tab_artykul))then return wartosc,tab_artykul; elseif((tab_lista[2])and(tab_lista[2][p2+1]))then p2=p2+1; pp=pp+1; return s,tab_lista[2][p2]; else return nil; end; end; end; local tab={}; local iter=Iterator(tab_lista); for s,artykul_w_bazie in iter do tab[s]=artykul_w_bazie; end; return tab; end; for s,tab_lista in ipairs( tab_lista_artykulow_w_ksiazce2)do if(not tab_lista_artykulow_w_ksiazce[s])then tab_lista_artykulow_w_ksiazce[s]={};end; tab_lista_artykulow_w_ksiazce[s][1]=tab_lista[1]; tab_lista_artykulow_w_ksiazce[s][2]=TabLista(tab_lista); end; ---- local function ToNumberPoziomArtykulu(poziom_artykulu) local numer_artykulu=tonumber(poziom_artykulu); local numer_dodatkowy=((numer_artykulu)and(numer_artykulu>0)) and 0 or 1; return (numer_artykulu or 0),numer_dodatkowy; end; local function ZerowyArtykul(tab_lista_2,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz) if((not w_rozdziale) and(poziom_zerowego_artykulu>0) and(poziom_zerowego_naglowka>0))then if(p>1)then local czy_jest_nast=tab_lista_2[p-1]; if(czy_jest_nast)then local numer=tonumber(tab_lista_2[p-1][2][1]); if(numer>0)then poziom_zerowego_artykulu=0; end; else poziom_zerowego_artykulu=0; end; end; elseif(poziom_zerowego_artykulu==0)then poziom_zerowego_artykulu=poziom_zerowego_artykulu_poprz; end; return poziom_zerowego_artykulu; end; local function OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka) if((not czy_w_trakcie_dwukropkowania)and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))then odejmnij_od_dwukropka=math.max((#poziom_poczatku_artykulu-(numer_poprz or 0)-1),0); czy_w_trakcie_dwukropkowania=true; elseif((czy_w_trakcie_dwukropkowania)and(not mw.ustring.match(poziom_poczatku_artykulu,"^:")))then odejmnij_od_dwukropka=0; czy_w_trakcie_dwukropkowania=nil; end; if(odejmnij_od_dwukropka>0)then poziom_artykulu=poziom_artykulu-odejmnij_od_dwukropka; if(poziom_artykulu<1)then poziom_artykulu=1; end; end; return poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania; end; local function PoziomNumeracji(numeracja_artykulu) if(numeracja_artykulu)then numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"^%s*%.*(.-)%.*%s*$","%1"); numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%s+",""); numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%.+","."); local tab_numeracja_artykulu=numeracja_artykulu and mw.text.split(numeracja_artykulu,"%s*%.%s*",false); local poziom_numeracji_artykulu=((numeracja_artykulu~="") and (#tab_numeracja_artykulu) or 0); return poziom_numeracji_artykulu; end; return 0; end; ----- local function UzyskajArtykul(artykul,pomin_link) local artykul=(not naglowek)and stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul,pomin_link) or stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul,true,pomin_link); return artykul; end; ---- local nazwa_spisu=nil;local numer_spisu=nil; local prawdziwy_poziom_rozdzialu_poprz=nil; for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local poziom_rozdzialu; local poziom_poczatku_rozdzialu=nil; local poziom_znakowy_rozdzialu=nil; local prawdziwy_poziom_rozdzialu=nil; local poziom_naglowka=nil; local poziom_naglowka_bez_poprawki=nil; local numer_rozdzialu=nil; local tab_numer_zapasowe=nil; local poziom_numeracji_rozdzialu=nil; local czy_jest_teraz_spis_tresci=nil; local czy_rozdzial_centrowany=nil; ----- local zbieraj_dane=true; ----- czy_nienilowy_rozdzial=tab_lista[1][2][1]; poziom_rozdzialu=czy_nienilowy_rozdzial or 0; ---- rozdzial=tab_lista[1][1]; ---- local czy_rozdzial_spisu=false; if((m==1)and(not numer_spisu)and(not nazwa_spisu))then if(czy_nienilowy_rozdzial==nil)then local spis=tab_lista[1]["spis"]; if(spis)then nazwa_spisu=spis[1]; numer_spisu=spis[2]; czy_rozdzial_spisu=true; pierwszy_dodatni_naglowek=false; pierwszy_ujemny_naglowek=false; glowny_spis_tresci_lub_rozdzial_ksiazki=false; end; end; elseif((m>2)and(numer_spisu)and(nazwa_spisu))then if(poziom_rozdzialu==1)then local spis=tab_lista[1]["spis"]; if(spis)then nazwa_spisu=spis[1]; numer_spisu=spis[2]; czy_rozdzial_spisu=true; pierwszy_dodatni_naglowek=false; pierwszy_ujemny_naglowek=false; glowny_spis_tresci_lub_rozdzial_ksiazki=false; end; end; end; ----- local function PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu) if(not poprz_czysty_poziom_rozdzialu_lub_artykulu)then staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,}; return poziom_naglowka,staly_dodatek_rozdzialu; end; if(poziom_naglowka==poprz_czysty_poziom_rozdzialu_lub_artykulu)then local poziom_numeracji=poziom_numeracji_rozdzialu-(staly_dodatek_rozdzialu[1] or 0); return poziom_naglowka+((poziom_numeracji>=0)and poziom_numeracji or 0),staly_dodatek_rozdzialu; elseif(poziom_naglowka~=poprz_czysty_poziom_rozdzialu_lub_artykulu)then staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,}; return poziom_naglowka,staly_dodatek_rozdzialu; end; end; local function PoziomNumerNaglowkaStalyDodatekRozdzialu(staly_dodatek_rozdzialu,poziom_naglowka,poprz_czysty_poziom_rozdzialu_lub_artykulu) if(parametry_modul.TypeTable(staly_dodatek_rozdzialu))then return 0; elseif(poziom_naglowka>poprz_czysty_poziom_rozdzialu_lub_artykulu)then local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[2] or 0); return dodatek; elseif(poziom_naglowka<poprz_czysty_poziom_rozdzialu_lub_artykulu)then local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[1] or 0); return dodatek; end; end; local function PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,poziom_rozdzialu,poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami) local function JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu) return ((poziom_poczatku_artykulu)and(poziom_poczatku_rozdzialu) and(((mw.ustring.match(poziom_poczatku_rozdzialu,"^*")) and((mw.ustring.match(poziom_poczatku_artykulu,"^:")) or(mw.ustring.match(poziom_poczatku_artykulu,"^#")) ) )or((mw.ustring.match(poziom_poczatku_rozdzialu,"^#"))and(mw.ustring.match(poziom_poczatku_artykulu,"^:"))))); end; if(JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu))then local roznica=poziom_rozdzialu-poziom_artykulu; if(roznica>=0)then staly_poziom_rozdzialu_z_artykulami=roznica+1; else staly_poziom_rozdzialu_z_artykulami=0; end; return (poziom_artykulu+staly_poziom_rozdzialu_z_artykulami),staly_poziom_rozdzialu_z_artykulami; elseif(JedenDwa(poziom_poczatku_artykulu,poziom_poczatku_rozdzialu))then staly_poziom_rozdzialu_z_artykulami=0; elseif(#poziom_poczatku_artykulu==0)then staly_poziom_rozdzialu_z_artykulami=0; end; return (poziom_artykulu+(staly_poziom_rozdzialu_z_artykulami or 0)),staly_poziom_rozdzialu_z_artykulami; end; local function CzyWliczacBezPoziomowo(p,i) if(naglowek)then return true;end; local tab=tab_lista[2]; if(not tab)then return false;end; if(p==i)then return true;end; local tab_artykul2={}; for k=p+1,i,1 do ----- local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[k][1]); local artykul=czy_table_baza_artykulu and tab[k][1][1] or tab[k][1]; artykul=UzyskajArtykul(artykul); ----- if(k==i)then if((tab_artykul[artykul])or(tab_artykul2[artykul]))then return false; else return true; end; else tab_artykul2[artykul]=true; end; end; return false; end; local function IleNajblizejDalejBezPoziomowo(p) if(naglowek)then return (p+1);end; local tab=tab_lista[2]; if(not tab)then return (p+1);end; local tab_artykul2={}; local i=p+1; while(true)do if(not tab[i])then return i;end; ----- local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[i][1]); local artykul=czy_table_baza_artykulu and tab[i][1][1] or tab[i][1]; artykul=UzyskajArtykul(artykul); ----- if((not tab_artykul[artykul])and(not tab_artykul2[artykul]))then return i; end; tab_artykul2[artykul]=true; i=i+1; end; return i; end; ---- local function AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulowa,czy_rozdzial,__FUNKCJA) local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka or 0; local poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka or 0; local staly_dodatek_artykulu=0; --local poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka; --local poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki; local staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu or 0; local poczatek_poprz=nil; local ostatni_rozdzial_dodatni_temp=ostatni_rozdzial_dodatni; local ostatni_rozdzial_centrowany_temp=ostatni_rozdzial_centrowany; local poziom_zerowego_artykulu=0; local staly_poziom_rozdzialu_z_artykulami=0; local ostatni_artykul_w_rozdziale=nil; local czy_dwukropek=nil; local czy_rozdzial_centrowany_temp=nil; ---- local odejmnij_od_dwukropka=0; local czy_w_trakcie_dwukropkowania=nil; local poziom_znakowy_rozdzialu=tab_lista[1][2][1] or 0; local poziom_rozdzialu=math.abs(poziom_znakowy_rozdzialu); local numer_poprz=(poziom_znakowy_rozdzialu<0)and poziom_rozdzialu or nil; for p,artykul_w_bazie in ipairs(tab_lista_artykulowa)do if((czy_rozdzial and (p>m)) or (not czy_rozdzial))then if((not czy_rozdzial) and (CzyWliczacBezPoziomowo(1,p)) or czy_rozdzial)then local rozdzial=nil; local poziom_artykulu; if(czy_rozdzial)then artykul_w_bazie=artykul_w_bazie[1]; rozdzial=artykul_w_bazie[1]; czy_rozdzial_centrowany_temp=artykul_w_bazie[2][4]; poziom_artykulu=artykul_w_bazie[2][1]; if(poziom_artykulu==1)then local spis=artykul_w_bazie["spis"]; if(spis)then local nazwa_spisu_temp=spis[1]; local numer_spisu_temp=spis[2]; if((nazwa_spisu_temp)and(numer_spisu_temp))then return; end; end; end; else poziom_artykulu=artykul_w_bazie[2][1]; end; local czy_dwukropek_aktualnie=nil; if((czy_rozdzial)and(rozdzial)and(poziom_artykulu)and(poziom_artykulu==0))then czy_dwukropek_aktualnie=mw.ustring.match(rozdzial,":%s*$") czy_dwukropek=czy_dwukropek_aktualnie or czy_dwukropek; end; local poziom_znakowy_artykulu=poziom_artykulu; poziom_artykulu=math.abs(poziom_artykulu); local poziom_poczatku_artykulu=artykul_w_bazie[2][2]; ---- if((not czy_rozdzial)or((czy_rozdzial)and(poziom_znakowy_artykulu<0)))then poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka); end; ---- local w_rozdziale=(not czy_rozdzial) and artykul_w_bazie[2][4] or nil; if((not czy_rozdzial)and(not w_rozdziale))then local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0)); local __poziom_poczatku_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz; local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu; poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami); end; local poziom_srednikowego_naglowka_srednik=0; local czy_artykul_srednik; local poziom_srednikowego_naglowka_srednik_temp; if(czy_rozdzial)then if(poziom_znakowy_artykulu)then if(poziom_znakowy_artykulu==0)then poziom_zerowego_naglowka_temp=1; elseif(poziom_znakowy_artykulu>0)then poziom_zerowego_naglowka_temp=0; poziom_srednikowego_naglowka_temp=0; ostatni_rozdzial_dodatni_temp=(not czy_rozdzial_centrowany_temp) and ostatni_rozdzial_dodatni_temp or nil; czy_dwukropek=nil; else poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$"); if(poziom_srednikowego_naglowka_srednik_temp)then poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp; poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik; end; end; end; else poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$"); if(poziom_srednikowego_naglowka_srednik_temp)then poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp; poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik; czy_artykul_srednik=true; end; end; if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then ostatni_rozdzial_dodatni_temp=0; ostatni_rozdzial_centrowany_temp=w_rozdziale and 0 or ostatni_rozdzial_centrowany_temp; end; local id=(not czy_rozdzial)and artykul_w_bazie[4] or nil; local poziom_zerowego_artykulu_aktualny=poziom_artykulu; local poziom_artykulu_zerowy; if(not czy_rozdzial)then local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu; poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu); poziom_artykulu_zerowy=poziom_artykulu; ---- poziom_zerowego_artykulu=ZerowyArtykul(tab_lista_artykulowa,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka_temp,poziom_zerowego_artykulu_poprz); ---- poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu; end; if((not czy_rozdzial)and(poziom_znakowy_rozdzialu<0)and(rozdzial==""))then poziom_artykulu=poziom_artykulu+poziom_naglowka_bez_poprawki; else --- if(not czy_rozdzial)then poziom_zerowego_naglowka_temp=((not w_rozdziale)and(ostatni_artykul_w_rozdziale)and(poziom_zerowego_naglowka_temp>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka_temp-1) or poziom_zerowego_naglowka_temp; end; poziom_artykulu=(((czy_rozdzial)and(--[[((ostatni_rozdzial_centrowany_temp or 0)>0)or]](poziom_znakowy_artykulu<=0))or(not czy_rozdzial))and ((ostatni_rozdzial_centrowany_temp or 0)+(ostatni_rozdzial_dodatni_temp or 0)+(poziom_zerowego_naglowka_temp+(((poziom_znakowy_artykulu)and(poziom_znakowy_artykulu==0)and(czy_dwukropek)and(not czy_dwukropek_aktualnie))and 1 or 0)+poziom_srednikowego_naglowka_temp)) or 0)+(((czy_rozdzial)and(poziom_znakowy_artykulu>0)and(not czy_rozdzial_centrowany_temp))and ostatni_rozdzial_centrowany_temp or 0)+((not poziom_srednikowego_naglowka_srednik_temp)and poziom_artykulu or 0)--[[+staly_dodatek_rozdzialu_temp]]+(id and 1 or 0); ----- if(czy_rozdzial)then if(poziom_znakowy_artykulu==0)then if(not czy_dwukropek_aktualnie)then poziom_zerowego_naglowka_temp=1+(czy_dwukropek and 1 or 0); else poziom_zerowego_naglowka_temp=2; end; end; end; end; if(not czy_rozdzial)then if(w_rozdziale)then ostatni_artykul_w_rozdziale=true else ostatni_artykul_w_rozdziale=false;end; end; if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then if(w_rozdziale)then ostatni_rozdzial_dodatni_temp=nil; ostatni_rozdzial_centrowany_temp=poziom_znakowy_artykulu; else ostatni_rozdzial_dodatni_temp=poziom_znakowy_artykulu; end; end; poczatek_poprz=poziom_poczatku_artykulu; poziom_artykulu=poziom_artykulu+((czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0); local wynik=__FUNKCJA(poziom_artykulu,poziom_naglowka_bez_poprawki,poziom_znakowy_artykulu,w_rozdziale,ostatni_rozdzial_centrowany_temp,{poziom_srednikowego_naglowka_temp,poziom_srednikowego_naglowka_srednik,},poziom_zerowego_naglowka_temp,poziom_artykulu_zerowy); ostatni_rozdzial_dodatni_temp=(czy_rozdzial_centrowany_temp) and poziom_artykulu or ostatni_rozdzial_dodatni_temp; if(not parametry_modul.TypeNil(wynik))then return wynik;end; local numer_baza=artykul_w_bazie[2][1]; local function __tonumber(liczba) if(czy_rozdzial)then if(liczba<0)then liczba=(liczba and (-liczba) or nil); return liczba; end; else return liczba; end; return nil; end; numer_poprz=(not w_rozdziale)and __tonumber(numer_baza) or ((w_rozdziale)and numer_poprz or nil); end; end; end; end; local function IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulowa,bez_sprawdzania) local ile_w_rozdziale=0; for s=1,#tab_lista_artykulowa[2],1 do if(bez_sprawdzania or CzyWliczacBezPoziomowo(1,s))then local w_rozdziale=tab_lista_artykulowa[2][s][2][4]; if(w_rozdziale)then ile_w_rozdziale=ile_w_rozdziale+1; else break; end; end; end; return ile_w_rozdziale end; local function KoniecSpisuTresci(poziom_naglowka_bez_poprawki,znak_poziom,czy_srednik) if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then local function UsunElementySpisTresci(tab_numer_temp) if(not tab_numer_temp)then return;end; local tab_numer_prawd;local HNumerPoziomow_prawd;local HNumerPoziomowNaglowkow_prawd; for i=#tab_numer_temp,1,-1 do local tab_naglowka=tab_numer_temp[i]; if((tab_naglowka[4]>=poziom_naglowka_bez_poprawki)or((tab_naglowka[5]<0)and((znak_poziom>0)or(czy_srednik))))then tab_numer_prawd=tab_naglowka[1]; HNumerPoziomow_prawd=tab_naglowka[2]; HNumerPoziomowNaglowkow_prawd=tab_naglowka[3] table.remove(tab_numer_temp,i); else break; end; end; if(tab_numer_prawd)then tab_numer=tab_numer_prawd; HNumerPoziomow=HNumerPoziomow_prawd; if(HNumerPoziomowNaglowkow_prawd)then HNumerPoziomowNaglowkow=HNumerPoziomowNaglowkow_prawd;end; return true; end; return nil; end; if(znak_poziom>0)then if(not UsunElementySpisTresci(tab_numer_baza_spis_tresci))then return;end; if(#tab_numer_baza_spis_tresci==0)then glowny_spis_tresci_lub_rozdzial_ksiazki=false; end; tab_poziomowo={}; end; end; end; ---- ----- tab_poziomowo={}; local rozdzial_bez_dwukropka=mw.ustring.match(rozdzial,"^%s*(.-)%s*:[%s:]*$") or rozdzial; czy_jest_teraz_spis_tresci=((m==1)and (czy_nienilowy_rozdzial and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka] or ((not czy_nienilowy_rozdzial)and true or false)) or ((m>1)and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka] or false)); poziom_spisu_tresci_dodatek=(czy_jest_teraz_spis_tresci and ((poziom_rozdzialu==0)and 1 or 0) or (poziom_spisu_tresci_dodatek or 0)); local czy_nie_ten_rozdzial; if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then czy_nie_ten_rozdzial=false; glowny_spis_tresci_lub_rozdzial_ksiazki=true; else glowny_spis_tresci_lub_rozdzial_ksiazki=false; if((not czy_jest_teraz_spis_tresci)and(nie_wszystkie))then czy_nie_ten_rozdzial=tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu[rozdzial_bez_dwukropka]; end; end; if((m==1)and(not czy_nienilowy_rozdzial))then czy_pierwszy_nilowy=true; czy_pierwszy_nilowy_rozdzial=true; end; if(not czy_nie_ten_rozdzial)then if(poziomowo)then prawdziwy_poziom_rozdzialu=poziom_rozdzialu; poziom_poczatku_rozdzialu=tab_lista[1][2][2]; local numeracja_rozdzialu=tab_lista[1][2][3]; poziom_numeracji_rozdzialu=PoziomNumeracji(numeracja_rozdzialu); czy_rozdzial_centrowany=tab_lista[1][2][4]; ---- local czy_z_dwukropkiem=nil; ---- if(poziom_rozdzialu<0)then poziom_rozdzialu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(-poziom_rozdzialu,poziom_poczatku_rozdzialu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka); numer_poprz=-tab_lista[1][2][1] or 0; poziom_rozdzialu=-poziom_rozdzialu; else numer_poprz=nil; czy_w_trakcie_dwukropkowania=nil; odejmnij_od_dwukropka=0; end; local czy_sredniki; ----- poprzedni_poziom_znakowy_rozdzialu=poziom_znakowy_rozdzialu; poziom_znakowy_rozdzialu=poziom_rozdzialu; poziom_rozdzialu=math.abs(poziom_rozdzialu); local poprzedni_tab_poziomowo_temp=poprzedni_tab_poziomowo; if(poziom_znakowy_rozdzialu>0)then poziom_naglowka=poziom_rozdzialu+(czy_rozdzial_centrowany and 0 or (ostatni_rozdzial_centrowany or 0)); poziom_naglowka_bez_poprawki=poziom_naglowka; poziom_spisu_tresci_dodatek=0; poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu); poziom_pierwszego_ujemnego_spisu_tresci=nil; ---- ostatni_poczatek_artykulu=nil; pierwszy_rowny_rozdzial=nil; ---- if((m>2)or(not czy_pierwszy_nilowy))then poprzedni_tab_poziomowo=nil; end; poziom_zerowego_naglowka=0; poziom_srednikowego_naglowka=0; if(glowny_ujemny_rozdzial)then HNumerPoziomow=HNumerPoziomow_4; HNumerPoziomow_4=nil; tab_numer=tab_numer_4; poziom_pierwszego_ujemnego_naglowka=nil; glowny_ujemny_rozdzial=nil; ---- ---- if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then pierwszy_ujemny_naglowek=nil; end; end; KoniecSpisuTresci(poziom_naglowka_bez_poprawki,1); if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0)and(not spis_tresci))then numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1); spis_tresci=true; pierwszy_rozdzial_dodatni=1; else if(not pierwszy_rozdzial_dodatni)then pierwszy_rozdzial_dodatni=1; numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1); else numer_rozdzialu=HNumerPoziomow(poziom_naglowka); end; end; if(czy_rozdzial_centrowany)then ostatni_rozdzial_dodatni=nil; ostatni_rozdzial_centrowany=poziom_rozdzialu; else ostatni_rozdzial_dodatni=poziom_rozdzialu; end; elseif(poziom_znakowy_rozdzialu<0)then czy_sredniki=mw.ustring.match(poziom_poczatku_rozdzialu,"^(;+)"); if(czy_sredniki)then poziom_zerowego_naglowka=0; ---- ostatni_poczatek_artykulu=nil; pierwszy_rowny_rozdzial=nil; ---- if(glowny_ujemny_rozdzial)then HNumerPoziomow=HNumerPoziomow_4; HNumerPoziomow_4=nil; tab_numer=tab_numer_4; poziom_pierwszego_ujemnego_naglowka=nil; glowny_ujemny_rozdzial=nil; ---- ---- if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then pierwszy_ujemny_naglowek=nil; end; end; ---- poziom_srednikowego_naglowka=poziom_rozdzialu; poziom_naglowka=(ostatni_rozdzial_centrowany or 0) + (ostatni_rozdzial_dodatni or 0) + poziom_zerowego_naglowka + poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0); poziom_naglowka_bez_poprawki=poziom_naglowka; poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu); numer_rozdzialu=HNumerPoziomow(poziom_naglowka); poziom_znakowy_rozdzialu=-poziom_srednikowego_naglowka; poziom_rozdzialu=poziom_srednikowego_naglowka; KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true); else if(not pierwszy_rowny_rozdzial)then if((ostatni_poczatek_artykulu) and(#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu) and(mw.ustring.match(ostatni_poczatek_artykulu,"^*")) and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:")) )then poziom_rozdzialu=poziom_rozdzialu+1; poziom_znakowy_rozdzialu=-poziom_rozdzialu; pierwszy_rowny_rozdzial=1; poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0); poziom_naglowka_bez_poprawki=poziom_naglowka; poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu); else poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0); poziom_naglowka_bez_poprawki=poziom_naglowka; poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu); end; else if((not ostatni_poczatek_artykulu)or((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))))then pierwszy_rowny_rozdzial=0; elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:")))then pierwszy_rowny_rozdzial=1; elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^#")))then pierwszy_rowny_rozdzial=nil; end; poziom_rozdzialu=poziom_rozdzialu+(pierwszy_rowny_rozdzial or 0); poziom_znakowy_rozdzialu=-poziom_rozdzialu; poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0); poziom_naglowka_bez_poprawki=poziom_naglowka; poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu); end; ---- KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1); ---- numer_rozdzialu=HNumerPoziomow(poziom_naglowka); local numer_rozdzialu_dodatniego=HNumerPoziomowNaglowkow(0) or 0; if(numer_rozdzialu_dodatniego>=numer_rozdzialu)then numer_rozdzialu=HNumerPoziomow(poziom_naglowka,numer_rozdzialu_dodatniego+1); end; end; else if((m>1)or((m==1)and(not czy_pierwszy_nilowy)))then local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka; czy_z_dwukropkiem=mw.ustring.match(rozdzial,":%s*$"); local dodatek=((czy_z_dwukropkiem)and 1 or 0); poziom_zerowego_naglowka=1+((not czy_z_dwukropkiem)and ((poziom_zerowego_naglowka_temp==2) and 1 or 0) or 1); poziom_naglowka=1+(((not czy_z_dwukropkiem)and(poziom_zerowego_naglowka_temp==2))and 1 or 0)+ (ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0) + 0+poziom_srednikowego_naglowka; poziom_naglowka_bez_poprawki=poziom_naglowka; poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu); KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1); numer_rozdzialu=HNumerPoziomow(poziom_naglowka); poziom_znakowy_rozdzialu=-1; poziom_rozdzialu=1; else poziom_zerowego_naglowka=0; numer_rozdzialu=0; poziom_naglowka=(ostatni_rozdzial_centrowany or 0); poziom_naglowka_bez_poprawki=poziom_naglowka; staly_dodatek_rozdzialu=0; end; end; if(poziom_znakowy_rozdzialu>0)then local numer=HNumerPoziomowNaglowkow(poziom_naglowka); elseif(poziom_znakowy_rozdzialu<0)then end; if(poziom_rozdzialu>0)then if(((czy_ostatni_rozdzial_jest_centrowany)and(ostatni_rozdzial_centrowany or 0)>0)and(#tab_numer>0)and(tab_numer[#tab_numer]==0)and(#tab_numer<=numer_rozdzialu))then tab_numer[#tab_numer]=nil; numer_rozdzialu=HNumerPoziomow(poziom_naglowka,((numer_rozdzialu>1)and(numer_rozdzialu-1) or 1)); czy_ostatni_rozdzial_jest_centrowany=nil; elseif(poprzedni_tab_poziomowo)then local lens=math.min(#poprzedni_tab_poziomowo,numer_rozdzialu-#tab_numer); local len_tab_numer=#tab_numer; local min_lens=math.min(#poprzedni_tab_poziomowo,lens); for i=1,min_lens,1 do tab_numer[len_tab_numer+i]=poprzedni_tab_poziomowo[i]; end; for i=min_lens+1,#tab_numer do tab_numer[len_tab_numer+i]=nil; end; end; if(#tab_numer<numer_rozdzialu)then for i=#tab_numer+1,numer_rozdzialu,1 do table.insert(tab_numer,1); end; elseif(#tab_numer>numer_rozdzialu)then for i=#tab_numer, numer_rozdzialu+1,-1 do table.remove(tab_numer,i); end; tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1; else tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1; end; end; local function CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial() if(poziom_rozdzialu==0)then return true;end; if(poziom_znakowy_rozdzialu>0)then local ile_w_rozdziale_w_naglowku_artykulow=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,true); return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy) if(ile_w_rozdziale_w_naglowku_artykulow>0)then return true;end; if(poziom_znakowy_naglowka>0)then if(poziom_aktualnego_naglowka<=poziom_naglowka)then return true; end; end; end); elseif(((m==1) or(((m==2)and(czy_pierwszy_nilowy_rozdzial))or((tab_lista_artykulow_w_ksiazce[m-1]) and((tab_lista_artykulow_w_ksiazce[m-1][1][2][1] or 0)>0)and(tab_lista_artykulow_w_ksiazce[m-1][2])and(#tab_lista_artykulow_w_ksiazce[m-1][2]==IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulow_w_ksiazce[m-1],true))))) and(poziom_znakowy_rozdzialu<0))then local czy_artykuly=nil;local tak_wynik=nil; if(tab_lista[2])then local czy_w_rozdziale_artykuly=nil; local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,_,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy) if(not w_rozdziale)then czy_artykuly=true; --[[if(((((not czy_z_dwukropkiem)and(czy_w_rozdziale_artykuly))or(poziom_artykulu-(poziom_zerowego_naglowka or 0)<=poziom_naglowka)or(poziom_artykulu-(poziom_srednikowego_naglowka[1] or 0)<=poziom_naglowka))and(poziom_artykulu_zerowy)and(poziom_artykulu_zerowy==0)and(poziom_zerowego_naglowka)and(poziom_zerowego_naglowka>0))and((m>2)or((m==2)and(not czy_pierwszy_nilowy_rozdzial))))then return true; end;]] if(poziom_artykulu<=poziom_naglowka)then return true; end; else czy_w_rozdziale_artykuly=true; end; end); tak_wynik=wynik; end; if((czy_artykuly)or(m==1))then local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy) if(poziom_znakowy_naglowka<=0)then if(poziom_aktualnego_naglowka<=poziom_naglowka)then --if((poziom_srednikowego_naglowka[2])and(poziom_srednikowego_naglowka[2]>0))then --return false; --else return true; --end; end; else if((m==1)and(poziom_znakowy_rozdzialu<0)and(poziom_znakowy_naglowka>0))then return true;end; return false; end end); if(wynik~=nil)then return wynik;end; if(tak_wynik~=nil)then return tak_wynik;end; return true; else return true; end; else return true; end; end; local function DodajNaSamPoczatek() local function ArtykulyNieWRozdziale() local ile=0; if(tab_lista[2])then for p,artykul_w_bazie in ipairs(tab_lista[2])do local w_rozdziale=artykul_w_bazie[2][4]; if(not w_rozdziale)then ile=ile+1; end; end; end; return ile; end; if((tab_lista_artykulow_w_ksiazce[m+1])and(ArtykulyNieWRozdziale()>0) and(( (poziom_znakowy_rozdzialu>0) and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy) if(poziom_znakowy_rozdzialu>0)then if(poziom_artykulu>poziom_naglowka)then return true; end; end; return false; end) )or( (poziom_znakowy_rozdzialu<0) and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka_temp,poziom_zerowego_naglowka,poziom_artykulu_zerowy) if((poziom_srednikowego_naglowka_temp[2])and(poziom_srednikowego_naglowka)and(poziom_srednikowego_naglowka_temp[2]>poziom_srednikowego_naglowka))then if(poziom_znakowy_rozdzialu<0)then if(poziom_artykulu>poziom_naglowka)then return true; end; end; end; return false; end) )) )then if(zbieraj_dane)then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; zbieraj_dane=false; end; table.insert(tab_numer,0); return true; else if(zbieraj_dane)then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; zbieraj_dane=false; end; return false; end; end; if((m==1)and(czy_pierwszy_nilowy)and(poziom_znakowy_rozdzialu==0))then if(zbieraj_dane)then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; zbieraj_dane=false; end; tab_numer={}; elseif((czy_jest_teraz_spis_tresci)and((poziom_znakowy_rozdzialu>0)or(poziom_znakowy_rozdzialu<0)))then local function Poziom_dodatni_lub_ujemny() return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy) if(poziom_artykulu>poziom_naglowka)then return true; elseif(czy_sredniki)then return true; end; return false; end); end; local function czy_inaczej_numeruj_rozdzial_dodatni() return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy) if(not w_rozdziale)then if(poziom_artykulu>poziom_naglowka)then return true; end; return false; end; end); end; local function czy_inaczej_numeruj_rozdzial_ujemny() return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy) if(poziom_artykulu>poziom_naglowka)then return true; end; end); end; if((poziom_znakowy_rozdzialu>0)and((czy_inaczej_numeruj_rozdzial_dodatni())or(Poziom_dodatni_lub_ujemny())))then glowny_spis_tresci_lub_rozdzial_ksiazki=true; if(zbieraj_dane)then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; zbieraj_dane=false; end; ---- if(not tab_poziomowo_1)then tab_poziomowo_1={};end; table.insert(tab_poziomowo_1,{tab_poziomowo,poziom_naglowka_bez_poprawki,}); ---- tab_poziomowo={}; tab_numer_zapasowe=tab_numer; ------ if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end; table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,HNumerPoziomowNaglowkow,poziom_naglowka_bez_poprawki,1,}); ----- HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); spis_tresci=false; ----- tab_numer={}; elseif((poziom_znakowy_rozdzialu<0)and((czy_inaczej_numeruj_rozdzial_ujemny())or(Poziom_dodatni_lub_ujemny())))then glowny_spis_tresci_lub_rozdzial_ksiazki=true; if(zbieraj_dane)then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; zbieraj_dane=false; end; ---- if(not tab_poziomowo_1)then tab_poziomowo_2={};end; table.insert(tab_poziomowo_2,{tab_poziomowo,poziom_naglowka_bez_poprawki,}); ---- tab_poziomowo={}; tab_numer_zapasowe=tab_numer; ----- if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end; table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,nil,poziom_naglowka_bez_poprawki,-1,}); spis_tresci=false; ----- HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); ----- tab_numer={}; end; local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek(); if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; elseif(((not czy_jest_teraz_spis_tresci)and(not czy_rozdzial_spisu)and(((not pierwszy_dodatni_naglowek)and(poziom_znakowy_rozdzialu>0)) or(((not pierwszy_ujemny_naglowek)or((prawdziwy_poziom_rozdzialu_poprz)and(prawdziwy_poziom_rozdzialu_poprz>0)))and(poziom_znakowy_rozdzialu<0)))) and(not CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()))and((not czy_pierwszy_nilowy_rozdzial)or((#tab_numer~=1)or(tab_numer[1]==1)))then glowny_spis_tresci_lub_rozdzial_ksiazki=true; if(poziom_rozdzialu>0)then if(poziom_znakowy_rozdzialu>0)then if(zbieraj_dane)then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; zbieraj_dane=false; end; ---- HNumerPoziomowNaglowkow_2=HNumerPoziomowNaglowkow; HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); tab_numer_zapasowe=tab_numer; tab_numer_3=tab_numer; tab_numer={}; HNumerPoziomow_3=HNumerPoziomow; HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); pierwszy_dodatni_naglowek=true; poziom_pierwszego_dodatniego_naglowka=poziom_rozdzialu; glowny_dodatni_rozdzial=true; else if(zbieraj_dane)then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; zbieraj_dane=false; end; ---- tab_numer_zapasowe=tab_numer; tab_numer_4=tab_numer; tab_numer=parametry_modul["KopiujTabelęElementów"](tab_numer); tab_numer[#tab_numer]=nil; HNumerPoziomow_4=HNumerPoziomow; HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); if(poprz_poziom_rozdzialu_lub_artykulu)then numer_rozdzialu=HNumerPoziomow(poprz_poziom_rozdzialu_lub_artykulu,#tab_numer); end; pierwszy_ujemny_naglowek=true; poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=(m>1) and prawdziwy_poziom_rozdzialu_poprz or false; poziom_pierwszego_ujemnego_naglowka=poziom_rozdzialu; glowny_ujemny_rozdzial=true; end; else if(zbieraj_dane)then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; zbieraj_dane=false; end; end; local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek(); if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; else local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek(); if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; ---- if(wartosc)then else if(zbieraj_dane)then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; zbieraj_dane=false; end; end; end; -- end; zbieraj_dane=true; poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_rozdzialu; poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka; poprz_numer_rozdzialu_lub_artykulu=numer_rozdzialu; poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki; prawdziwy_poziom_rozdzialu_poprz=prawdziwy_poziom_rozdzialu; ----- if(((not czy_rozdzial_spisu))and((m>1)or((m==1)and(not czy_pierwszy_nilowy_rozdzial))))then if(prawdziwy_poziom_rozdzialu>0)then pierwszy_dodatni_naglowek=true; pierwszy_ujemny_naglowek=nil; else pierwszy_ujemny_naglowek=true; pierwszy_dodatni_naglowek=true; end; end; ---- czy_ostatni_rozdzial_jest_centrowany=((poziom_znakowy_rozdzialu>0)and(czy_rozdzial_centrowany and true or nil) or ((poziom_znakowy_rozdzialu<=0)and czy_ostatni_rozdzial_jest_centrowany or nil)); else local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; end; if((tab_lista[2])and(parametry_modul["CzySąElementyNumerowaneTablicy"](tab_lista[2])))then local HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local czy_dwukropek_artykulu=nil; local stare_HNumerArtykulu=nil; local stare_HNumerPoziomu=nil; local czy_tytul_rozdzial=nil; local czy_ma_elementy=nil; ostatni_poczatek_artykulu=nil; local czy_zera=nil; local ile_w_rozdziale=nil; local poprz_poziom_artykulu_bez_b=nil; local k=1; ----- local czy_w_rozdziale_rejestrowane_osobno_artykuly=nil; local artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil; local czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil; ----- local numer_poprz_w_rozdziale=nil; local poczatek_poprz=nil; local id_poprz=nil; local tab_poprzedni_artykul_w_bazie=nil; local odejmnij_od_dwukropka_w_rozdziale=0; ----- local czy_w_trakcie_dwukropkowania_w_rozdziale=nil; ----- local poziom_zerowego_artykulu=0; local staly_poziom_rozdzialu_z_artykulami=0; local nilowanie_poprzedniego_rejestru_tab_poziomowo=nil; local czy_w_podreczniku_poprz=nil; ----- local stare_HNumerPoziomu_poza_rozdzialem=nil; local ile_w_rozdziale_licznik=1; local staly_dodatek_rozdzialu_temp=0; local staly_dodatek_rozdzialu_roz=staly_dodatek_rozdzialu; local staly_dodatek_artykulu=0; local ostatni_artykul_w_rozdziale=nil; local tab_numer_w_rozdziale=nil; local podrozdzial_spisu=nil; local dodatek_poprz=nil; ----- for p,artykul_w_bazie in ipairs(tab_lista[2])do local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]); local artykul=czy_table_baza_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1]; local nazwa=czy_table_baza_artykulu and artykul_w_bazie[1][2] or nil; local Przekierowanie=function(przekierowanie) return (((parametry_modul.TypeString(przekierowanie))and(przekierowanie))or(parametry_modul.TypeTable(przekierowanie)and(((przekierowanie[1])and((przekierowanie[2])or(przekierowanie[3])))or(przekierowanie[1]))and(przekierowanie[1]..(przekierowanie[2] and ("?"..(przekierowanie[2] or "")) or "")..(przekierowanie[3] and ("#"..(przekierowanie[3] or "")) or "")))); end; local czy_w_podreczniku=artykul_w_bazie[5]; local czy_inna_ksiazka; if(czy_table_baza_artykulu)then local czy_table_dane=parametry_modul.TypeTable(artykul_w_bazie[1][4]); if(czy_table_dane)then czy_inna_ksiazka=artykul_w_bazie[1][4][5]; end; end; local czy_url=czy_table_baza_artykulu and artykul_w_bazie[1][9] or nil; local przekierowanie=(czy_w_podreczniku) and (czy_table_baza_artykulu and ((not artykul_w_bazie[1][4])and(not artykul_w_bazie[1][7]) and Przekierowanie(artykul_w_bazie[1][3]) or {Przekierowanie(artykul_w_bazie[1][3]),artykul_w_bazie[1][4],nil,nil,artykul_w_bazie[1][7],}) or nil) or (((not czy_w_podreczniku)and(czy_table_baza_artykulu)and(artykul_w_bazie[1][5])or(artykul_w_bazie[1][6])or(artykul_w_bazie[1][7])) and {nil,nil,artykul_w_bazie[1][5],artykul_w_bazie[1][6],artykul_w_bazie[1][7],} or nil); --- local czy_dodane_lub_kolega=czy_table_baza_artykulu and artykul_w_bazie[1][8] or nil; local czy_dodane=parametry_modul.TypeBoolean(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil; local ile_dodano=parametry_modul.TypeNumber(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil; ---- artykul=UzyskajArtykul(artykul); ---- if(naglowek or not tab_artykul[artykul])then pierwszy_rowny_rozdzial=nil; czy_ma_elementy=true; if(not naglowek)then tab_artykul[artykul]=true; end; local tab_artykul_w_bazie; local w_rozdziale; if(poziomowo)then local poziom_artykulu=artykul_w_bazie[2][1]+(ile_dodano or 0); local poziom_poczatku_artykulu=artykul_w_bazie[2][2]; ---- local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0)); w_rozdziale=artykul_w_bazie[2][4]; poziom_artykulu=poziom_artykulu+(w_rozdziale and 1 or 0)+((((ile_dodano)and(ile_dodano>0))and(w_rozdziale))and 1 or 0); if(w_rozdziale)then poziom_artykulu,odejmnij_od_dwukropka_w_rozdziale,czy_w_trakcie_dwukropkowania_w_rozdziale=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz_w_rozdziale or 0,czy_w_trakcie_dwukropkowania_w_rozdziale,odejmnij_od_dwukropka_w_rozdziale); numer_poprz_w_rozdziale=tonumber(tab_lista[2][p][2][1]); else poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka); end; ---- local numeracja_artykulu=artykul_w_bazie[2][3]; local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu); local czy_rozdzial_z_poczatkiem_jedynki=nil; if(w_rozdziale)then if(not stare_HNumerPoziomu_poza_rozdzialem)then stare_HNumerPoziomu_poza_rozdzialem=HNumerPoziomow; HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); ----- tab_numer_w_rozdziale=tab_numer; tab_numer=tab_numer_zapasowe or tab_numer; end; local function CzyRozdzialMaArtykulyNieWewnetrzNaglowka() local czy_artykuly=nil; return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy) if(not w_rozdziale)then czy_artykuly=true; if(poziom_artykulu>poziom_naglowka)then return true; end; return false; end; end),czy_artykuly; end; local function CzyRozdzialMaRozdzialyNieWewnetrzNaglowka() return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu_artykulu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy) if((poziom_znakowy_rozdzialu<0)and(poziom_znakowy_rozdzialu_artykulu>0))then return false; else if(poziom_artykulu>poziom_naglowka)then return true; end; return false; end; end); end; if(not ile_w_rozdziale)then ile_w_rozdziale=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,false); end; if(ile_w_rozdziale_licznik==ile_w_rozdziale)then czy_w_trakcie_dwukropkowania_w_rozdziale=nil; odejmnij_od_dwukropka_w_rozdziale=0; numer_poprz_w_rozdziale=nil; ostatni_artykul_w_rozdziale=true; end; ile_w_rozdziale_licznik=ile_w_rozdziale_licznik+1; if((poziom_znakowy_rozdzialu>0)and(ile_w_rozdziale==1))then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,{},nil,tab_lista[2][p][5],przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; czy_w_rozdziale_rejestrowane_osobno_artykuly=true; elseif(not artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)then artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=true; if(parametry_modul.TypeNil(czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka))then local czy_ma_artykuly; czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka,czy_ma_artykuly=CzyRozdzialMaArtykulyNieWewnetrzNaglowka(); if((not czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not czy_ma_artykuly))then czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=CzyRozdzialMaRozdzialyNieWewnetrzNaglowka(); end; end; if((czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not glowny_ujemny_rozdzial))then tab_numer[#tab_numer+1]=0; end; end; else if((artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)or(czy_w_rozdziale_rejestrowane_osobno_artykuly))then ----- tab_poziomowo={}; HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer(); HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer(); ----- artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil; czy_w_rozdziale_rejestrowane_osobno_artykuly=nil; ---- k=1; tab_poprzedni_artykul_w_bazie=nil; end; --- if(not czy_zera)then if((((not czy_nienilowy_rozdzial)and(m==1))or((czy_nienilowy_rozdzial)and(m>=1)))and(k==1))then local numer=tab_lista[2][p][2][1]; local poczatek=tab_lista[2][p][2][2]; if(((not czy_nienilowy_rozdzial)and(mw.ustring.match(poczatek,"^:")))or(numer+poziom_numeracji_artykulu==0))then for s=p+1,#tab_lista[2],1 do if(CzyWliczacBezPoziomowo(p,s))then local numer=tab_lista[2][s][2][1]; local poczatek=tab_lista[2][s][2][2]; local numeracja_artykulu=tab_lista[2][s][2][3]; local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu); if((mw.ustring.match(poczatek,"^#"))or(numer+poziom_numeracji_artykulu>0))then if(((#tab_numer>0)and(tab_numer[#tab_numer]~=0))or(#tab_numer==0))then table.insert(tab_numer,0); end; tab_poziomowo={}; czy_zera=true; break; elseif((not mw.ustring.match(poczatek,"^:"))and(not(#poczatek==0)))then break; end; end; end; end; end; else local numer=tonumber(tab_lista[2][p][2][1]); local poczatek=tab_lista[2][p][2][2]; local id=tab_lista[2][p][4]; local function DodajUsunNumerek(jedno,drugie,trzecie) if((not jedno)and(not drugie)and(not trzecie))then return;end; if((#tab_numer>(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka))then czy_zera=false; tab_poziomowo={}; table.remove(tab_numer,#tab_numer); if(#tab_numer>0)then tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0)+1; end; czy_rozdzial_z_poczatkiem_jedynki=true; end; end; DodajUsunNumerek(((mw.ustring.match(poczatek_poprz,"^:"))and(mw.ustring.match(poczatek,"^#"))),((#poczatek_poprz==0)and(not id_poprz)and(#poczatek>0)and(not id)),((#poczatek_poprz+poprz_numeracji_rozdzialu_lub_artykulu==0)and(numer+poziom_numeracji_artykulu>0))); end; if((not czy_zera) and((k==1)and(not w_rozdziale)and(tab_lista_artykulow_w_ksiazce[m+1]) and(((m==1)and(not czy_nienilowy_rozdzial)and(((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)or(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0))) or((m>1)and(czy_nienilowy_rozdzial)and((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0))) ))then local czy_sa_jakies_artykuly_niezerowe=false;local ile=0; local poziom_zerowy=artykul_w_bazie[2][1]+poziom_numeracji_artykulu; if(poziom_zerowy)then for h,artykul_w_bazie in ipairs(tab_lista[2])do if(h>p)then local poziom_artykulu=artykul_w_bazie[2][1]; local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu); if(poziom_artykulu+poziom_numeracji_artykulu>0)then czy_sa_jakies_artykuly_niezerowe=true; break; end; end; end; for h,artykul_w_bazie in ipairs(tab_lista[2])do if(h>=p)then ile=ile+1; end; end; end; if(((poziom_zerowy==0)and(czy_sa_jakies_artykuly_niezerowe)or(not czy_nienilowy_rozdzial))or(poziom_zerowy>0))then if(ile<=5)then table.insert(tab_numer,0); else nilowanie_poprzedniego_rejestru_tab_poziomowo=true; end end; end; end; ostatni_poczatek_artykulu=poziom_poczatku_artykulu; ----- local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu; poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu); local poziom_zerowego_artykulu_aktualny=poziom_artykulu; poziom_zerowego_artykulu=ZerowyArtykul(tab_lista[2],p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz); ---- local czy_sredniki=mw.ustring.match(poziom_poczatku_artykulu,"^(;+)"); if(czy_sredniki)then poziom_zerowego_naglowka=0; if(glowny_ujemny_rozdzial)then HNumerPoziomow=HNumerPoziomow_4; HNumerPoziomow_4=nil; tab_numer=tab_numer_4; poziom_pierwszego_ujemnego_naglowka=nil; glowny_ujemny_rozdzial=nil; ---- end; KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true); end; ---- local poziom_czysty_artykulu=poziom_artykulu; ---- local __poziom_poczatku_rozdzialu= (not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz; local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu; poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami); ---- poziom_zerowego_naglowka=czy_sredniki and 0 or poziom_zerowego_naglowka; poziom_zerowego_artykulu=czy_sredniki and 0 or poziom_zerowego_artykulu; ---- poziom_srednikowego_naglowka=czy_sredniki and 0 or poziom_srednikowego_naglowka; ---- poziom_zerowego_naglowka=((ostatni_artykul_w_rozdziale)and(not w_rozdziale)and(poziom_zerowego_naglowka>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka-1) or poziom_zerowego_naglowka; if((ostatni_artykul_w_rozdziale)and(not w_rozdziale))then ostatni_artykul_w_rozdziale=nil; end; ---- if((poziom_znakowy_rozdzialu<0)and(rozdzial==""))then poziom_artykulu=poziom_naglowka+poziom_artykulu+poziom_zerowego_artykulu+(poziom_spisu_tresci_dodatek or 0); else poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+((not czy_sredniki)and poziom_srednikowego_naglowka or 0)+(poziom_spisu_tresci_dodatek or 0); end; ---- local poziom_podany_artykulu_bez_numeracji=poziom_artykulu; poziom_artykulu=poziom_artykulu+(poziom_numeracji_artykulu or 0); ---- local __poprz_poziom_rozdzialu_lub_artykulu=((poziom_znakowy_rozdzialu>0) and poprz_poziom_rozdzialu_lub_artykulu or poziom_naglowka); local __poprz_czysty_poziom_rozdzialu_lub_artykulu=(poziom_znakowy_rozdzialu>0) and poprz_czysty_poziom_rozdzialu_lub_artykulu or poziom_numeracji_rozdzialu; if(not w_rozdziale)then if(k==1)then staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu_roz; end; end; poziom_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]=PoziomNumerNaglowka(poziom_podany_artykulu_bez_numeracji,poziom_numeracji_artykulu,__poprz_poziom_rozdzialu_lub_artykulu,__poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]); if(not w_rozdziale)then staly_dodatek_rozdzialu=staly_dodatek_rozdzialu_temp;end; ---- local prefix_poziom_artykulu=poziom_artykulu; local function WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu) local b=0; local tab_artykul_w_bazie=mw.text.split(artykul,"/"); if((tab_poprzedni_artykul_w_bazie)and((czy_w_podreczniku_poprz)and(czy_w_podreczniku)))then if((#tab_artykul_w_bazie>1)or(#tab_poprzedni_artykul_w_bazie>1))then for c=1,#tab_artykul_w_bazie,1 do local podstrona_artykul=tab_artykul_w_bazie[c]; local podstrona_poprzedni_artykul=tab_poprzedni_artykul_w_bazie[c]; if(podstrona_artykul==podstrona_poprzedni_artykul)then b=b+1; else break; end; end; end; else if(k==1)then if(#tab_artykul_w_bazie>1)then local podrozdzial_artykulu=tab_artykul_w_bazie[1]; podrozdzial_artykulu=parametry_modul["Odstępy"]{[1]=podrozdzial_artykulu,[2]="tak",}; podrozdzial_artykulu=mw.getContentLanguage():ucfirst(podrozdzial_artykulu); if(not podrozdzial_spisu)then podrozdzial_spisu=parametry_modul["Odstępy"]{[1]=rozdzial,[2]="tak",}; podrozdzial_spisu=mw.getContentLanguage():ucfirst(podrozdzial_spisu); end; local czy_z_rozdzialem=(podrozdzial_artykulu==podrozdzial_spisu); if(czy_z_rozdzialem)then b=1;end; end; end end; if((#tab_artykul_w_bazie==b)and(#tab_poprzedni_artykul_w_bazie==b))then b=b-1;end; if(not poprz_poziom_artykulu_bez_b)then staly_dodatek_artykulu={b,true}; return 0,staly_dodatek_artykulu,tab_artykul_w_bazie; end; if(poziom_artykulu==poprz_poziom_artykulu_bez_b)then if((k>=2)and(czy_w_podreczniku)and(staly_dodatek_artykulu[2])and(staly_dodatek_artykulu[1]==0)and(#tab_poprzedni_artykul_w_bazie>1)and(b>0)and(#tab_poprzedni_artykul_w_bazie>=b+1))then staly_dodatek_artykulu[1]=b; staly_dodatek_artykulu[2]=false; end; if(((k==2)or(staly_dodatek_artykulu[3]))and(not czy_w_podreczniku))then staly_dodatek_artykulu[3]=k; elseif((k>2)and(czy_w_podreczniku)and((staly_dodatek_artykulu[3] or 0)+2==k)and(b>0))then staly_dodatek_artykulu[3]=nil; staly_dodatek_artykulu[1]=b; end; local poziom_numeracji=b-(staly_dodatek_artykulu[1] or 0); return ((czy_w_podreczniku)and ((poziom_numeracji>=0)and poziom_numeracji or 0)or(dodatek_poprz)),staly_dodatek_artykulu,tab_artykul_w_bazie; elseif(poziom_artykulu~=poprz_poziom_artykulu_bez_b)then staly_dodatek_artykulu={b,true}; if((k==2)and(not czy_w_podreczniku))then staly_dodatek_artykulu[3]=k; end; return 0,staly_dodatek_artykulu,tab_artykul_w_bazie; end; return 0,staly_dodatek_artykulu,tab_artykul_w_bazie; end; ----- local dodatek; dodatek,staly_dodatek_artykulu,tab_artykul_w_bazie=WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu); poprz_poziom_artykulu_bez_b=poziom_artykulu; local numer_poziomu=HNumerPoziomow(poziom_artykulu); ----- if(not w_rozdziale)then if(poziom_znakowy_rozdzialu<0)then if(poziom_artykulu<=(poziom_pierwszego_ujemnego_naglowka or 0))then tab_poziomowo=tab_numer_4; tab_numer={}; HNumerPoziomu=HNumerPoziomow_4; HNumerArtykulu(poziom_artykulu,HNumerPoziomu(0)); else local numer=numer_rozdzialu-numer_poziomu; if(numer>=0)then local tab_numer_s=tab_numer; local tab_poziomowo_s=tab_poziomowo; tab_numer={};tab_poziomowo={}; if(#tab_numer_s>=numer_poziomu-1)then for i=1,numer_poziomu-1,1 do tab_numer[i]=tab_numer_s[i]; end; for i=numer_poziomu,#tab_numer_s,1 do tab_poziomowo[i-numer_poziomu+1]=tab_numer_s[i]; end; for i=1,#tab_poziomowo_s,1 do tab_poziomowo[i+#tab_numer_s-numer_poziomu+1]=tab_poziomowo_s[i]; end; else for i=1,#tab_numer_s,1 do tab_numer[i]=tab_numer_s[i]; end; for i=1,numer_poziomu-1,1 do tab_numer[i+#tab_numer_s]=tab_poziomowo_s[i]; end; for i=numer_poziomu,#tab_poziomowo_s,1 do tab_poziomowo[i-numer_poziomu+1]=tab_poziomowo_s[i]; end; end; end; end; end; end; if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then if((not w_rozdziale)and(poziomowo)and(poziom_znakowy_rozdzialu<0))then if((numer_rozdzialu>=numer_poziomu)and(numer_poziomu>=1))then HNumerPoziomu(poziom_artykulu,1); HNumerArtykulu(poziom_artykulu,1); end; end; local stala=poziom_artykulu; if(czy_rozdzial_z_poczatkiem_jedynki)then HNumerPoziomu(stala,1); HNumerArtykulu(stala,1); end; local numer_poziomu=HNumerPoziomu(stala); poziom_artykulu=stala+dodatek; local numer=HNumerArtykulu(poziom_artykulu); local roznica=numer_poziomu-numer; if(roznica>0)then numer=HNumerArtykulu(poziom_artykulu,numer_poziomu); end; if(#tab_poziomowo<numer)then for i=#tab_poziomowo+1,numer,1 do table.insert(tab_poziomowo,1); end; else if(#tab_poziomowo>numer)then for i=#tab_poziomowo,numer+1,-1 do table.remove(tab_poziomowo,i); end; end; tab_poziomowo[#tab_poziomowo]=(tab_poziomowo[#tab_poziomowo] or 0)+1; end; end; ---- tab_poprzedni_artykul_w_bazie=tab_artykul_w_bazie; poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_artykulu; poprz_poziom_rozdzialu_lub_artykulu=poziom_artykulu; poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_podany_artykulu_bez_numeracji; poziom_srednikowego_naglowka=czy_sredniki and poziom_czysty_artykulu or poziom_srednikowego_naglowka; numer_poprz=(not w_rozdziale)and tonumber(tab_lista[2][p][2][1]) or ((w_rozdziale)and numer_poprz or nil); poprz_numer_rozdzialu_lub_artykulu=numer_poziomu; poczatek_poprz=tab_lista[2][p][2][2]; id_poprz=tab_lista[2][p][4]; czy_w_podreczniku_poprz=czy_w_podreczniku; dodatek_poprz=dodatek; end; local wartosc; if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,nil,tab_lista[2][p][5],przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; end; if(not poziomowo)then i=i+1; else if((ostatni_artykul_w_rozdziale)and(w_rozdziale))then HNumerPoziomow=stare_HNumerPoziomu_poza_rozdzialem; stare_HNumerPoziomu_poza_rozdzialem=nil; tab_numer=tab_numer_w_rozdziale; poprzedni_tab_poziomowo=nil; ----- poziom_zerowego_artykulu=0; ----- czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil; if((#tab_numer>0)and(tab_numer[#tab_numer]==0))then tab_numer[#tab_numer]=nil; end; else if(not nilowanie_poprzedniego_rejestru_tab_poziomowo)then poprzedni_tab_poziomowo=tab_poziomowo; else poprzedni_tab_poziomowo={1,}; end; end; end; k=k+1; end; end; if(not czy_ma_elementy)then poprzedni_tab_poziomowo=nil; end; else poprzedni_tab_poziomowo=nil; end; end; end; return; end; local function ZamienNumerArtykuluNaTabele(numer_artykulu) local tab_numer_artykulu=mw.text.split(numer_artykulu,".",true); return tab_numer_artykulu; end; local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) if(#tab_numer_artykulu<=1)then return tab_numer_artykulu;end; local stronicowyparser_modul=require("Module:StronicowyParser"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local parametry_modul=require("Module:Parametry"); local nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly=stronicowyparser_modul["DaneUkładuAutonawigacji"](frame,tabela_listy_danych_analizy_ksiazki); if((not tab_inne_spisy)or(not parametry_modul["CzySąElementyNumerowaneTablicy"](tab_inne_spisy)))then return tab_numer_artykulu;end; local tab_w_spis={}; for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local poziom_rozdzialu=tab_lista[1][2][1]; if(tab_lista[2])then for p,artykul_w_bazie in ipairs(tab_lista[2])do if((m>1)and(poziom_rozdzialu==1))then break;end; local czy_table_baza_artykulu=parametry_modul.TypeTable(artykul_w_bazie[1]); local artykul=czy_table_baza_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1]; local przekierowanie=czy_table_baza_artykulu and artykul_w_bazie[1][3] or nil; local czy_artykul=nil; for _,tab_lub_str in ipairs(tab_inne_spisy)do local czy_tab_lub_str=parametry_modul.TypeTable(tab_lub_str); if(czy_tab_lub_str)then if(tab_lub_str[1]==artykul)then czy_artykul=true; end; else if(tab_lub_str==artykul)then czy_artykul=true; end; end; end; if(czy_artykul)then tab_w_spis[artykul]=true; end; end; end; end; local czy_w_spis=true; for _,name in ipairs(tab_inne_spisy)do local czy_table_name=parametry_modul.TypeTable(name); czy_w_spis=czy_w_spis and tab_w_spis[czy_table_name and name[1] or name]; if(not czy_w_spis)then break;end; end; if(not czy_w_spis)then return tab_numer_artykulu; end; if((tab_numer_artykulu)and(#tab_numer_artykulu>1)and(tab_numer_artykulu[1])and(tab_numer_artykulu[1]=='1'))then table.remove(tab_numer_artykulu,1); end; if((tab_numer_artykulu)and(#tab_numer_artykulu>1)and(tab_numer_artykulu[1])and(tab_numer_artykulu[1]=='1'))then local nazwa_spisu,numer_spisu; local czy_jedno=true;local pierwszy_rozdzial; for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local poziom_rozdzialu=tab_lista[1][2][1]; if(m>1)then if(poziom_rozdzialu==1)then break; elseif(m==2)then pierwszy_rozdzial=poziom_rozdzialu; elseif(m>2)then czy_jedno=czy_jedno and pierwszy_rozdzial and (pierwszy_rozdzial<poziom_rozdzialu); end; end; end; if(czy_jedno)then table.remove(tab_numer_artykulu,1); end; end; return tab_numer_artykulu; end; local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu) local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu); if(#tab_numer_artykulu<1)then return tab_numer_artykulu;end; local tab_numer_spisu=ZamienNumerArtykuluNaTabele(numer_spisu); local lens=#tab_numer_spisu; for i=lens,1,-1 do if(i==lens)then tab_numer_artykulu[1]=tab_numer_spisu[i]; else table.insert(tab_numer_artykulu,1,tab_numer_spisu[i]); end; end; return tab_numer_artykulu; end; p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki) local s=1; local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local dane_szablonu; local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki) ---- dane_szablonu=dane_szablonu or pierwszy_parametr_szablonu(); local nazwa_artykulu,czy_nazwa,dane=dane_szablonu[1],dane_szablonu[2],dane_szablonu[3]; ---- if((((dane==2)or(dane==3))and(artykul=="")and(rozdzial==nazwa_artykulu))or(((dane==1)or(dane==3))and(artykul~="")and((nazwa_artykulu==artykul)or(((przekierowanie)and(parametry_modul.TypeString(przekierowanie))and(przekierowanie==nazwa_artykulu))or(parametry_modul.TypeTable(przekierowanie)and(przekierowanie[1]==nazwa_artykulu))))))then if(s==ktory)then if(poziomowo)then local numer_artykulu=(table.concat(tab_numer,".")..((#tab_numer>0) and ((#tab_poziomowo>0) and "." or "") or "")..table.concat(tab_poziomowo,".")); if((not nazwa_spisu)or(not numer_spisu) or ((not glowny_spis_tresci_lub_rozdzial_ksiazki)and((tonumber(numer_artykulu) or 1)>1)) or((glowny_spis_tresci_lub_rozdzial_ksiazki)and((numer_spisu or 1)>1)) )then return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; elseif((numer_spisu)and(numer_spisu==1))then if(glowny_spis_tresci_lub_rozdzial_ksiazki)then return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; else local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu); tab_numer_artykulu=UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu); return table.concat(tab_numer_artykulu,"."),glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={}; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=PobierzNumerLubNazweArtykulu({args=args_kopia,},tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(not numer_spisu_tresci)then return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki;end; local tab_numer_artykulu=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci); tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) or tab_numer_artykulu; return table.concat(tab_numer_artykulu,"."),glowny_spis_tresci_lub_rozdzial_ksiazki; else return i,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; s=s+1; end; end; local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; end; p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki) local s=1; local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki) ---- local dane_szablonu=pierwszy_parametr_szablonu(); local numer,czy_nazwa,dane=dane_szablonu[1],dane_szablonu[2],dane_szablonu[3]; ---- if((not poziomowo)and(i==numer))then if(s==ktory)then if(artykul~="")then local wartosc=(not czy_nazwa) and artykul or (nazwa or artykul); return wartosc; else return rozdzial; end; else s=s+1; end; elseif(poziomowo)then local function NumerArtykulu(tab_numer,tab_poziomowo) return (table.concat(tab_numer,".")..((#tab_numer>0) and ((#tab_poziomowo>0) and "." or "") or "")..table.concat(tab_poziomowo,".")); end; local function WynikArtykulowyZNumeru(numer_artykulu) if((((dane==2)or(dane==3))and(artykul=="")and(numer_artykulu==numer))or(((dane==1)or(dane==3))and(artykul~="")and(numer_artykulu==numer)))then if(s==ktory)then if(artykul~="")then local wartosc=(not czy_nazwa) and artykul or (nazwa or artykul); return wartosc; else return rozdzial; end; else s=s+1; end; end; end; local numer_artykulu=NumerArtykulu(tab_numer,tab_poziomowo); if((not nazwa_spisu)or(not numer_spisu) or ((not glowny_spis_tresci_lub_rozdzial_ksiazki)and((tonumber(numer_artykulu) or 1)>1)) or((glowny_spis_tresci_lub_rozdzial_ksiazki)and((numer_spisu or 1)>1)) )then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end; elseif((numer_spisu)and(numer_spisu==1))then if(glowny_spis_tresci_lub_rozdzial_ksiazki)then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end; else local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu); tab_numer_artykulu=UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu); local numer_artykulu=table.concat(tab_numer_artykulu,"."); local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end; end; else local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki); if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(not numer_spisu_tresci)then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end; end; local tab_numer_artykulu=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci); tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) or tab_numer_artykulu; local numer_artykulu=table.concat(tab_numer_artykulu,"."); local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end; end; end; end; local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; end; p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki,kodowanie_nie_json) local tab_dane_ksiazki=nil; local s=1; local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu; local pierwszy_spis_tresci=nil; local artykul_spisowy=nil; local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url) if((artykul_spisu)and(nazwa_spisu))then if((artykul_spisu~=nazwa_spisu))then if(not artykul_spisowy)then return false;else return true;end; elseif((not artykul_spisowy)and(artykul_spisu==nazwa_spisu))then artykul_spisowy=true; end; end; if(not tab_dane_ksiazki)then tab_dane_ksiazki={};end; if(not tab_dane_ksiazki[rozdzial])then tab_dane_ksiazki[rozdzial]={};end; local tab_rozdzial=tab_dane_ksiazki[rozdzial]; local numer_rozdzialu=tab_numer and table.concat(tab_numer,".") or ""; if((nazwa_spisu)and(numer_spisu)and(not glowny_spis_tresci_lub_rozdzial_ksiazki)and(numer_rozdzialu~=""))then local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((numer_spisu)and(numer_spisu==1))then if(not glowny_spis_tresci_lub_rozdzial_ksiazki)then local tab_numer_rozdzialu=ZamienNumerArtykuluNaTabele(numer_rozdzialu); tab_numer_rozdzialu=UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu); numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); end; else if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki); if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(numer_spisu_tresci)then local tab_numer_rozdzialu=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_rozdzialu,numer_spisu_tresci); tab_numer_rozdzialu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu) or tab_numer_rozdzialu; numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); end; end; elseif((not pierwszy_spis_tresci)and(nazwa_spisu)and(numer_spisu)and(glowny_spis_tresci_lub_rozdzial_ksiazki)and(numer_rozdzialu~=""))then local czy_spis_tresci=tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial]; if(czy_spis_tresci)then pierwszy_spis_tresci=true; local tab_numer_rozdzialu=ZamienNumerArtykuluNaTabele(numer_rozdzialu); tab_numer_rozdzialu=UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu); numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); end; end; if(not tab_rozdzial[numer_rozdzialu])then tab_rozdzial[numer_rozdzialu]={}; end; local tab_numer_rozdzialu=tab_rozdzial[numer_rozdzialu]; if(not tab_numer_rozdzialu[artykul])then tab_numer_rozdzialu[artykul]={}; end; local tab_artykul=tab_numer_rozdzialu[artykul]; local numer_artykulu=tab_poziomowo and table.concat(tab_poziomowo,".") or ""; if(not tab_artykul[numer_artykulu])then tab_artykul[numer_artykulu]={}; end; local tab_numer_artykulu=tab_artykul[numer_artykulu]; local czy_tabelka=parametry_modul.TypeTable(przekierowanie); ---- table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); ---- s=s+1; return false; end; PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; end; return p; rtba1tng1jjvmlt42z8kpsg6h46proy 547761 547747 2026-07-17T18:21:37Z Persino 2851 547761 Scribunto text/plain local p={}; local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame,tabela_listy_danych_analizy_ksiazki); if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(frame); local parametry_modul=require("Module:Parametry"); local szablonowe_modul=require("Module:Szablonowe"); local naglowek=parametry_modul.CzyTak(args["nagłówek"]); local nie_wszystkie=parametry_modul.CzyTak(args["nie wszystkie"]); ---- local dane=tonumber(args["dane"]); if((not dane)or((dane~=1)and(dane~=2)and(dane~=3)))then dane=1;end; ---- local artykul_spisu=args["spis"]; artykul_spisu=artykul_spisu and parametry_modul["Odstępy"]{[1]=artykul_spisu,[2]="tak",} or nil; local tab_artykul=(not naglowek)and {} or nil; local poziomowo=parametry_modul.CzyTak(args["poziomowo"]); local tab_poziomowo={}; local tab_poziomowo_1={}; local tab_poziomowo_2={}; local html_modul=require("Module:Html"); ---- local function ParametrySzablonuPobierania() if(not zbieraj_dane_wszystkie)then local pierwszy_parametr_szablonu=nil;local czy_nazwa=nil; if(not typ)then pierwszy_parametr_szablonu=args[1] and ((not naglowek) and mw.ustring.gsub(html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true),"^([^#]*)#(.*)$","%1") or html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true)) or "Przykładowy artykuł"; else pierwszy_parametr_szablonu=args[1] and ((not poziomowo) and (tonumber(args[1]) or 1) or args[1]) or ((not poziomowo) and 1 or "1"); czy_nazwa=parametry_modul.CzyTak(args["nazwa"]); end; return function() return {pierwszy_parametr_szablonu,czy_nazwa,dane,}; end; end; end; local pierwszy_parametr_szablonu=ParametrySzablonuPobierania(); ---- local ktory=(tonumber(args["który"]) or 1); local i=(not poziomowo) and 1 or nil; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu; local tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu); local odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu; local tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu); setmetatable(tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter); setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter); local HNumerPoziomow_4=nil; local HNumerPoziomow_3=nil local HNumerPoziomow_2=nil; local HNumerPoziomow_1=nil; local HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local HNumerPoziomowNaglowkow_1=nil; local HNumerPoziomowNaglowkow_2=nil; local tab_numer=poziomowo and {} or nil; local tab_numer_baza_spis_tresci=nil; local tab_numer_3=nil local tab_numer_4=nil;--poziomowo and {} or nil; local spis=false; local pierwszy_dodatni_naglowek=nil; local pierwszy_ujemny_naglowek=nil; local poprzedni_poziom_znakowy_rozdzialu=nil; local poprzedni_tab_poziomowo=nil; local poziom_pierwszego_dodatniego_naglowka=0; local poziom_pierwszego_ujemnego_naglowka=0; local poziom_zerowego_naglowka=0; local poziom_srednikowego_naglowka=0; local ostatni_rozdzial_dodatni=nil; local ostatni_rozdzial_centrowany=nil; local pierwszy_rozdzial_dodatni=nil; local glowny_dodatni_rozdzial=nil; local glowny_ujemny_rozdzial=nil; local spis_tresci=nil; local poziom_pierwszego_ujemnego_spisu_tresci=nil; local ostatni_poczatek_artykulu=nil; local pierwszy_rowny_rozdzial=nil; local rozdzial; local czy_pierwszy_nilowy=nil; local czy_nienilowy_rozdzial=nil; local czy_pierwszy_nilowy_rozdzial=nil; local czy_ostatni_rozdzial_jest_centrowany=nil; local glowny_spis_tresci_lub_rozdzial_ksiazki=nil; local poprz_poziom_rozdzialu_lub_artykulu=nil; local poprz_numeracji_rozdzialu_lub_artykulu=nil; local poprz_numer_rozdzialu_lub_artykulu=nil; local poprz_czysty_poziom_rozdzialu_lub_artykulu=nil; local poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=nil; local staly_dodatek_rozdzialu=0; ---- local poziom_spisu_tresci_dodatek=nil; ---- local odejmnij_od_dwukropka=0; ----- local czy_w_trakcie_dwukropkowania=nil; ----- local numer_poprz=nil; ---- local tab_lista_artykulow_w_ksiazce2=tab_lista_artykulow_w_ksiazce; tab_lista_artykulow_w_ksiazce={}; local function TabLista(tab_lista) local max_ile=0; for name,value in pairs(tab_lista)do max_ile=math.max(max_ile,name); end; local function Iterator(tab_lista) local p2=0; local s=0; local pp=0; local function InneTablica(numer) local p1=0; return function() if((tab_lista[numer])and(tab_lista[numer][p1+1])and(tab_lista[numer][p1+1][6]==pp))then p1=p1+1; pp=pp+1; return s,tab_lista[numer][p1]; end; end; end; local function WszystkieInneTablica() local tab={}; for i=1,max_ile-2,1 do tab[i]=InneTablica(i+2); end; return function() for i=1,max_ile-2,1 do local wartosc,tab_artykul=tab[i](); if((wartosc)and(tab_artykul))then return wartosc,tab_artykul; end; end; end; end; --local p1=0; --local p2=0; --local s=0; local iter_inne_tablice=WszystkieInneTablica(); return function() s=s+1; local wartosc,tab_artykul=iter_inne_tablice(); if((wartosc)and(tab_artykul))then return wartosc,tab_artykul; elseif((tab_lista[2])and(tab_lista[2][p2+1]))then p2=p2+1; pp=pp+1; return s,tab_lista[2][p2]; else return nil; end; end; end; local tab={}; local iter=Iterator(tab_lista); for s,artykul_w_bazie in iter do tab[s]=artykul_w_bazie; end; return tab; end; for s,tab_lista in ipairs( tab_lista_artykulow_w_ksiazce2)do if(not tab_lista_artykulow_w_ksiazce[s])then tab_lista_artykulow_w_ksiazce[s]={};end; tab_lista_artykulow_w_ksiazce[s][1]=tab_lista[1]; tab_lista_artykulow_w_ksiazce[s][2]=TabLista(tab_lista); end; ---- local function ToNumberPoziomArtykulu(poziom_artykulu) local numer_artykulu=tonumber(poziom_artykulu); local numer_dodatkowy=((numer_artykulu)and(numer_artykulu>0)) and 0 or 1; return (numer_artykulu or 0),numer_dodatkowy; end; local function ZerowyArtykul(tab_lista_2,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz) if((not w_rozdziale) and(poziom_zerowego_artykulu>0) and(poziom_zerowego_naglowka>0))then if(p>1)then local czy_jest_nast=tab_lista_2[p-1]; if(czy_jest_nast)then local numer=tonumber(tab_lista_2[p-1][2][1]); if(numer>0)then poziom_zerowego_artykulu=0; end; else poziom_zerowego_artykulu=0; end; end; elseif(poziom_zerowego_artykulu==0)then poziom_zerowego_artykulu=poziom_zerowego_artykulu_poprz; end; return poziom_zerowego_artykulu; end; local function OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka) if((not czy_w_trakcie_dwukropkowania)and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))then odejmnij_od_dwukropka=math.max((#poziom_poczatku_artykulu-(numer_poprz or 0)-1),0); czy_w_trakcie_dwukropkowania=true; elseif((czy_w_trakcie_dwukropkowania)and(not mw.ustring.match(poziom_poczatku_artykulu,"^:")))then odejmnij_od_dwukropka=0; czy_w_trakcie_dwukropkowania=nil; end; if(odejmnij_od_dwukropka>0)then poziom_artykulu=poziom_artykulu-odejmnij_od_dwukropka; if(poziom_artykulu<1)then poziom_artykulu=1; end; end; return poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania; end; local function PoziomNumeracji(numeracja_artykulu) if(numeracja_artykulu)then numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"^%s*%.*(.-)%.*%s*$","%1"); numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%s+",""); numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%.+","."); local tab_numeracja_artykulu=numeracja_artykulu and mw.text.split(numeracja_artykulu,"%s*%.%s*",false); local poziom_numeracji_artykulu=((numeracja_artykulu~="") and (#tab_numeracja_artykulu) or 0); return poziom_numeracji_artykulu; end; return 0; end; ----- local function UzyskajArtykul(artykul,pomin_link) local artykul=(not naglowek)and stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul,pomin_link) or stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul,true,pomin_link); return artykul; end; ---- local nazwa_spisu=nil;local numer_spisu=nil; local prawdziwy_poziom_rozdzialu_poprz=nil; for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local poziom_rozdzialu; local poziom_poczatku_rozdzialu=nil; local poziom_znakowy_rozdzialu=nil; local prawdziwy_poziom_rozdzialu=nil; local poziom_naglowka=nil; local poziom_naglowka_bez_poprawki=nil; local numer_rozdzialu=nil; local tab_numer_zapasowe=nil; local poziom_numeracji_rozdzialu=nil; local czy_jest_teraz_spis_tresci=nil; local czy_rozdzial_centrowany=nil; ----- local zbieraj_dane=true; ----- czy_nienilowy_rozdzial=tab_lista[1][2][1]; poziom_rozdzialu=czy_nienilowy_rozdzial or 0; ---- rozdzial=tab_lista[1][1]; ---- local czy_rozdzial_spisu=false; if((m==1)and(not numer_spisu)and(not nazwa_spisu))then if(czy_nienilowy_rozdzial==nil)then local spis=tab_lista[1]["spis"]; if(spis)then nazwa_spisu=spis[1]; numer_spisu=spis[2]; czy_rozdzial_spisu=true; pierwszy_dodatni_naglowek=false; pierwszy_ujemny_naglowek=false; glowny_spis_tresci_lub_rozdzial_ksiazki=false; end; end; elseif((m>2)and(numer_spisu)and(nazwa_spisu))then if(poziom_rozdzialu==1)then local spis=tab_lista[1]["spis"]; if(spis)then nazwa_spisu=spis[1]; numer_spisu=spis[2]; czy_rozdzial_spisu=true; pierwszy_dodatni_naglowek=false; pierwszy_ujemny_naglowek=false; glowny_spis_tresci_lub_rozdzial_ksiazki=false; end; end; end; ----- local function PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu) if(not poprz_czysty_poziom_rozdzialu_lub_artykulu)then staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,}; return poziom_naglowka,staly_dodatek_rozdzialu; end; if(poziom_naglowka==poprz_czysty_poziom_rozdzialu_lub_artykulu)then local poziom_numeracji=poziom_numeracji_rozdzialu-(staly_dodatek_rozdzialu[1] or 0); return poziom_naglowka+((poziom_numeracji>=0)and poziom_numeracji or 0),staly_dodatek_rozdzialu; elseif(poziom_naglowka~=poprz_czysty_poziom_rozdzialu_lub_artykulu)then staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,}; return poziom_naglowka,staly_dodatek_rozdzialu; end; end; local function PoziomNumerNaglowkaStalyDodatekRozdzialu(staly_dodatek_rozdzialu,poziom_naglowka,poprz_czysty_poziom_rozdzialu_lub_artykulu) if(parametry_modul.TypeTable(staly_dodatek_rozdzialu))then return 0; elseif(poziom_naglowka>poprz_czysty_poziom_rozdzialu_lub_artykulu)then local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[2] or 0); return dodatek; elseif(poziom_naglowka<poprz_czysty_poziom_rozdzialu_lub_artykulu)then local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[1] or 0); return dodatek; end; end; local function PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,poziom_rozdzialu,poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami) local function JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu) return ((poziom_poczatku_artykulu)and(poziom_poczatku_rozdzialu) and(((mw.ustring.match(poziom_poczatku_rozdzialu,"^*")) and((mw.ustring.match(poziom_poczatku_artykulu,"^:")) or(mw.ustring.match(poziom_poczatku_artykulu,"^#")) ) )or((mw.ustring.match(poziom_poczatku_rozdzialu,"^#"))and(mw.ustring.match(poziom_poczatku_artykulu,"^:"))))); end; if(JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu))then local roznica=poziom_rozdzialu-poziom_artykulu; if(roznica>=0)then staly_poziom_rozdzialu_z_artykulami=roznica+1; else staly_poziom_rozdzialu_z_artykulami=0; end; return (poziom_artykulu+staly_poziom_rozdzialu_z_artykulami),staly_poziom_rozdzialu_z_artykulami; elseif(JedenDwa(poziom_poczatku_artykulu,poziom_poczatku_rozdzialu))then staly_poziom_rozdzialu_z_artykulami=0; elseif(#poziom_poczatku_artykulu==0)then staly_poziom_rozdzialu_z_artykulami=0; end; return (poziom_artykulu+(staly_poziom_rozdzialu_z_artykulami or 0)),staly_poziom_rozdzialu_z_artykulami; end; local function CzyWliczacBezPoziomowo(p,i) if(naglowek)then return true;end; local tab=tab_lista[2]; if(not tab)then return false;end; if(p==i)then return true;end; local tab_artykul2={}; for k=p+1,i,1 do ----- local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[k][1]); local artykul=czy_table_baza_artykulu and tab[k][1][1] or tab[k][1]; artykul=UzyskajArtykul(artykul); ----- if(k==i)then if((tab_artykul[artykul])or(tab_artykul2[artykul]))then return false; else return true; end; else tab_artykul2[artykul]=true; end; end; return false; end; local function IleNajblizejDalejBezPoziomowo(p) if(naglowek)then return (p+1);end; local tab=tab_lista[2]; if(not tab)then return (p+1);end; local tab_artykul2={}; local i=p+1; while(true)do if(not tab[i])then return i;end; ----- local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[i][1]); local artykul=czy_table_baza_artykulu and tab[i][1][1] or tab[i][1]; artykul=UzyskajArtykul(artykul); ----- if((not tab_artykul[artykul])and(not tab_artykul2[artykul]))then return i; end; tab_artykul2[artykul]=true; i=i+1; end; return i; end; ---- local function AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulowa,czy_rozdzial,__FUNKCJA) local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka or 0; local poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka or 0; local staly_dodatek_artykulu=0; --local poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka; --local poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki; local staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu or 0; local poczatek_poprz=nil; local ostatni_rozdzial_dodatni_temp=ostatni_rozdzial_dodatni; local ostatni_rozdzial_centrowany_temp=ostatni_rozdzial_centrowany; local poziom_zerowego_artykulu=0; local staly_poziom_rozdzialu_z_artykulami=0; local ostatni_artykul_w_rozdziale=nil; local czy_dwukropek=nil; local czy_rozdzial_centrowany_temp=nil; ---- local odejmnij_od_dwukropka=0; local czy_w_trakcie_dwukropkowania=nil; local poziom_znakowy_rozdzialu=tab_lista[1][2][1] or 0; local poziom_rozdzialu=math.abs(poziom_znakowy_rozdzialu); local numer_poprz=(poziom_znakowy_rozdzialu<0)and poziom_rozdzialu or nil; for p,artykul_w_bazie in ipairs(tab_lista_artykulowa)do if((czy_rozdzial and (p>m)) or (not czy_rozdzial))then if((not czy_rozdzial) and (CzyWliczacBezPoziomowo(1,p)) or czy_rozdzial)then local rozdzial=nil; local poziom_artykulu; if(czy_rozdzial)then artykul_w_bazie=artykul_w_bazie[1]; rozdzial=artykul_w_bazie[1]; czy_rozdzial_centrowany_temp=artykul_w_bazie[2][4]; poziom_artykulu=artykul_w_bazie[2][1]; if(poziom_artykulu==1)then local spis=artykul_w_bazie["spis"]; if(spis)then local nazwa_spisu_temp=spis[1]; local numer_spisu_temp=spis[2]; if((nazwa_spisu_temp)and(numer_spisu_temp))then return; end; end; end; else poziom_artykulu=artykul_w_bazie[2][1]; end; local czy_dwukropek_aktualnie=nil; if((czy_rozdzial)and(rozdzial)and(poziom_artykulu)and(poziom_artykulu==0))then czy_dwukropek_aktualnie=mw.ustring.match(rozdzial,":%s*$") czy_dwukropek=czy_dwukropek_aktualnie or czy_dwukropek; end; local poziom_znakowy_artykulu=poziom_artykulu; poziom_artykulu=math.abs(poziom_artykulu); local poziom_poczatku_artykulu=artykul_w_bazie[2][2]; ---- if((not czy_rozdzial)or((czy_rozdzial)and(poziom_znakowy_artykulu<0)))then poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka); end; ---- local w_rozdziale=(not czy_rozdzial) and artykul_w_bazie[2][4] or nil; if((not czy_rozdzial)and(not w_rozdziale))then local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0)); local __poziom_poczatku_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz; local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu; poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami); end; local poziom_srednikowego_naglowka_srednik=0; local czy_artykul_srednik; local poziom_srednikowego_naglowka_srednik_temp; if(czy_rozdzial)then if(poziom_znakowy_artykulu)then if(poziom_znakowy_artykulu==0)then poziom_zerowego_naglowka_temp=1; elseif(poziom_znakowy_artykulu>0)then poziom_zerowego_naglowka_temp=0; poziom_srednikowego_naglowka_temp=0; ostatni_rozdzial_dodatni_temp=(not czy_rozdzial_centrowany_temp) and ostatni_rozdzial_dodatni_temp or nil; czy_dwukropek=nil; else poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$"); if(poziom_srednikowego_naglowka_srednik_temp)then poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp; poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik; end; end; end; else poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$"); if(poziom_srednikowego_naglowka_srednik_temp)then poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp; poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik; czy_artykul_srednik=true; end; end; if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then ostatni_rozdzial_dodatni_temp=0; ostatni_rozdzial_centrowany_temp=w_rozdziale and 0 or ostatni_rozdzial_centrowany_temp; end; local id=(not czy_rozdzial)and artykul_w_bazie[4] or nil; local poziom_zerowego_artykulu_aktualny=poziom_artykulu; local poziom_artykulu_zerowy; if(not czy_rozdzial)then local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu; poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu); poziom_artykulu_zerowy=poziom_artykulu; ---- poziom_zerowego_artykulu=ZerowyArtykul(tab_lista_artykulowa,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka_temp,poziom_zerowego_artykulu_poprz); ---- poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu; end; if((not czy_rozdzial)and(poziom_znakowy_rozdzialu<0)and(rozdzial==""))then poziom_artykulu=poziom_artykulu+poziom_naglowka_bez_poprawki; else --- if(not czy_rozdzial)then poziom_zerowego_naglowka_temp=((not w_rozdziale)and(ostatni_artykul_w_rozdziale)and(poziom_zerowego_naglowka_temp>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka_temp-1) or poziom_zerowego_naglowka_temp; end; poziom_artykulu=(((czy_rozdzial)and(--[[((ostatni_rozdzial_centrowany_temp or 0)>0)or]](poziom_znakowy_artykulu<=0))or(not czy_rozdzial))and ((ostatni_rozdzial_centrowany_temp or 0)+(ostatni_rozdzial_dodatni_temp or 0)+(poziom_zerowego_naglowka_temp+(((poziom_znakowy_artykulu)and(poziom_znakowy_artykulu==0)and(czy_dwukropek)and(not czy_dwukropek_aktualnie))and 1 or 0)+poziom_srednikowego_naglowka_temp)) or 0)+(((czy_rozdzial)and(poziom_znakowy_artykulu>0)and(not czy_rozdzial_centrowany_temp))and ostatni_rozdzial_centrowany_temp or 0)+((not poziom_srednikowego_naglowka_srednik_temp)and poziom_artykulu or 0)--[[+staly_dodatek_rozdzialu_temp]]+(id and 1 or 0); ----- if(czy_rozdzial)then if(poziom_znakowy_artykulu==0)then if(not czy_dwukropek_aktualnie)then poziom_zerowego_naglowka_temp=1+(czy_dwukropek and 1 or 0); else poziom_zerowego_naglowka_temp=2; end; end; end; end; if(not czy_rozdzial)then if(w_rozdziale)then ostatni_artykul_w_rozdziale=true else ostatni_artykul_w_rozdziale=false;end; end; if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then if(w_rozdziale)then ostatni_rozdzial_dodatni_temp=nil; ostatni_rozdzial_centrowany_temp=poziom_znakowy_artykulu; else ostatni_rozdzial_dodatni_temp=poziom_znakowy_artykulu; end; end; poczatek_poprz=poziom_poczatku_artykulu; poziom_artykulu=poziom_artykulu+((czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0); local wynik=__FUNKCJA(poziom_artykulu,poziom_naglowka_bez_poprawki,poziom_znakowy_artykulu,w_rozdziale,ostatni_rozdzial_centrowany_temp,{poziom_srednikowego_naglowka_temp,poziom_srednikowego_naglowka_srednik,},poziom_zerowego_naglowka_temp,poziom_artykulu_zerowy); ostatni_rozdzial_dodatni_temp=(czy_rozdzial_centrowany_temp) and poziom_artykulu or ostatni_rozdzial_dodatni_temp; if(not parametry_modul.TypeNil(wynik))then return wynik;end; local numer_baza=artykul_w_bazie[2][1]; local function __tonumber(liczba) if(czy_rozdzial)then if(liczba<0)then liczba=(liczba and (-liczba) or nil); return liczba; end; else return liczba; end; return nil; end; numer_poprz=(not w_rozdziale)and __tonumber(numer_baza) or ((w_rozdziale)and numer_poprz or nil); end; end; end; end; local function IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulowa,bez_sprawdzania) local ile_w_rozdziale=0; for s=1,#tab_lista_artykulowa[2],1 do if(bez_sprawdzania or CzyWliczacBezPoziomowo(1,s))then local w_rozdziale=tab_lista_artykulowa[2][s][2][4]; if(w_rozdziale)then ile_w_rozdziale=ile_w_rozdziale+1; else break; end; end; end; return ile_w_rozdziale end; local function KoniecSpisuTresci(poziom_naglowka_bez_poprawki,znak_poziom,czy_srednik) if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then local function UsunElementySpisTresci(tab_numer_temp) if(not tab_numer_temp)then return;end; local tab_numer_prawd;local HNumerPoziomow_prawd;local HNumerPoziomowNaglowkow_prawd; for i=#tab_numer_temp,1,-1 do local tab_naglowka=tab_numer_temp[i]; if((tab_naglowka[4]>=poziom_naglowka_bez_poprawki)or((tab_naglowka[5]<0)and((znak_poziom>0)or(czy_srednik))))then tab_numer_prawd=tab_naglowka[1]; HNumerPoziomow_prawd=tab_naglowka[2]; HNumerPoziomowNaglowkow_prawd=tab_naglowka[3] table.remove(tab_numer_temp,i); else break; end; end; if(tab_numer_prawd)then tab_numer=tab_numer_prawd; HNumerPoziomow=HNumerPoziomow_prawd; if(HNumerPoziomowNaglowkow_prawd)then HNumerPoziomowNaglowkow=HNumerPoziomowNaglowkow_prawd;end; return true; end; return nil; end; if(znak_poziom>0)then if(not UsunElementySpisTresci(tab_numer_baza_spis_tresci))then return;end; if(#tab_numer_baza_spis_tresci==0)then glowny_spis_tresci_lub_rozdzial_ksiazki=false; end; tab_poziomowo={}; end; end; end; ---- ----- tab_poziomowo={}; local rozdzial_bez_dwukropka=mw.ustring.match(rozdzial,"^%s*(.-)%s*:[%s:]*$") or rozdzial; czy_jest_teraz_spis_tresci=((m==1)and (czy_nienilowy_rozdzial and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka] or ((not czy_nienilowy_rozdzial)and true or false)) or ((m>1)and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka] or false)); poziom_spisu_tresci_dodatek=(czy_jest_teraz_spis_tresci and ((poziom_rozdzialu==0)and 1 or 0) or (poziom_spisu_tresci_dodatek or 0)); local czy_nie_ten_rozdzial; if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then czy_nie_ten_rozdzial=false; glowny_spis_tresci_lub_rozdzial_ksiazki=true; else glowny_spis_tresci_lub_rozdzial_ksiazki=false; if((not czy_jest_teraz_spis_tresci)and(nie_wszystkie))then czy_nie_ten_rozdzial=tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu[rozdzial_bez_dwukropka]; end; end; if((m==1)and(not czy_nienilowy_rozdzial))then czy_pierwszy_nilowy=true; czy_pierwszy_nilowy_rozdzial=true; end; if(not czy_nie_ten_rozdzial)then if(poziomowo)then prawdziwy_poziom_rozdzialu=poziom_rozdzialu; poziom_poczatku_rozdzialu=tab_lista[1][2][2]; local numeracja_rozdzialu=tab_lista[1][2][3]; poziom_numeracji_rozdzialu=PoziomNumeracji(numeracja_rozdzialu); czy_rozdzial_centrowany=tab_lista[1][2][4]; ---- local czy_z_dwukropkiem=nil; ---- if(poziom_rozdzialu<0)then poziom_rozdzialu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(-poziom_rozdzialu,poziom_poczatku_rozdzialu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka); numer_poprz=-tab_lista[1][2][1] or 0; poziom_rozdzialu=-poziom_rozdzialu; else numer_poprz=nil; czy_w_trakcie_dwukropkowania=nil; odejmnij_od_dwukropka=0; end; local czy_sredniki; ----- poprzedni_poziom_znakowy_rozdzialu=poziom_znakowy_rozdzialu; poziom_znakowy_rozdzialu=poziom_rozdzialu; poziom_rozdzialu=math.abs(poziom_rozdzialu); local poprzedni_tab_poziomowo_temp=poprzedni_tab_poziomowo; if(poziom_znakowy_rozdzialu>0)then poziom_naglowka=poziom_rozdzialu+(czy_rozdzial_centrowany and 0 or (ostatni_rozdzial_centrowany or 0)); poziom_naglowka_bez_poprawki=poziom_naglowka; poziom_spisu_tresci_dodatek=0; poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu); poziom_pierwszego_ujemnego_spisu_tresci=nil; ---- ostatni_poczatek_artykulu=nil; pierwszy_rowny_rozdzial=nil; ---- if((m>2)or(not czy_pierwszy_nilowy))then poprzedni_tab_poziomowo=nil; end; poziom_zerowego_naglowka=0; poziom_srednikowego_naglowka=0; if(glowny_ujemny_rozdzial)then HNumerPoziomow=HNumerPoziomow_4; HNumerPoziomow_4=nil; tab_numer=tab_numer_4; poziom_pierwszego_ujemnego_naglowka=nil; glowny_ujemny_rozdzial=nil; ---- ---- if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then pierwszy_ujemny_naglowek=nil; end; end; KoniecSpisuTresci(poziom_naglowka_bez_poprawki,1); if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0)and(not spis_tresci))then numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1); spis_tresci=true; pierwszy_rozdzial_dodatni=1; else if(not pierwszy_rozdzial_dodatni)then pierwszy_rozdzial_dodatni=1; numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1); else numer_rozdzialu=HNumerPoziomow(poziom_naglowka); end; end; if(czy_rozdzial_centrowany)then ostatni_rozdzial_dodatni=nil; ostatni_rozdzial_centrowany=poziom_rozdzialu; else ostatni_rozdzial_dodatni=poziom_rozdzialu; end; elseif(poziom_znakowy_rozdzialu<0)then czy_sredniki=mw.ustring.match(poziom_poczatku_rozdzialu,"^(;+)"); if(czy_sredniki)then poziom_zerowego_naglowka=0; ---- ostatni_poczatek_artykulu=nil; pierwszy_rowny_rozdzial=nil; ---- if(glowny_ujemny_rozdzial)then HNumerPoziomow=HNumerPoziomow_4; HNumerPoziomow_4=nil; tab_numer=tab_numer_4; poziom_pierwszego_ujemnego_naglowka=nil; glowny_ujemny_rozdzial=nil; ---- ---- if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then pierwszy_ujemny_naglowek=nil; end; end; ---- poziom_srednikowego_naglowka=poziom_rozdzialu; poziom_naglowka=(ostatni_rozdzial_centrowany or 0) + (ostatni_rozdzial_dodatni or 0) + poziom_zerowego_naglowka + poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0); poziom_naglowka_bez_poprawki=poziom_naglowka; poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu); numer_rozdzialu=HNumerPoziomow(poziom_naglowka); poziom_znakowy_rozdzialu=-poziom_srednikowego_naglowka; poziom_rozdzialu=poziom_srednikowego_naglowka; KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true); else if(not pierwszy_rowny_rozdzial)then if((ostatni_poczatek_artykulu) and(#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu) and(mw.ustring.match(ostatni_poczatek_artykulu,"^*")) and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:")) )then poziom_rozdzialu=poziom_rozdzialu+1; poziom_znakowy_rozdzialu=-poziom_rozdzialu; pierwszy_rowny_rozdzial=1; poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0); poziom_naglowka_bez_poprawki=poziom_naglowka; poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu); else poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0); poziom_naglowka_bez_poprawki=poziom_naglowka; poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu); end; else if((not ostatni_poczatek_artykulu)or((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))))then pierwszy_rowny_rozdzial=0; elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:")))then pierwszy_rowny_rozdzial=1; elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^#")))then pierwszy_rowny_rozdzial=nil; end; poziom_rozdzialu=poziom_rozdzialu+(pierwszy_rowny_rozdzial or 0); poziom_znakowy_rozdzialu=-poziom_rozdzialu; poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0); poziom_naglowka_bez_poprawki=poziom_naglowka; poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu); end; ---- KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1); ---- numer_rozdzialu=HNumerPoziomow(poziom_naglowka); local numer_rozdzialu_dodatniego=HNumerPoziomowNaglowkow(0) or 0; if(numer_rozdzialu_dodatniego>=numer_rozdzialu)then numer_rozdzialu=HNumerPoziomow(poziom_naglowka,numer_rozdzialu_dodatniego+1); end; end; else if((m>1)or((m==1)and(not czy_pierwszy_nilowy)))then local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka; czy_z_dwukropkiem=mw.ustring.match(rozdzial,":%s*$"); local dodatek=((czy_z_dwukropkiem)and 1 or 0); poziom_zerowego_naglowka=1+((not czy_z_dwukropkiem)and ((poziom_zerowego_naglowka_temp==2) and 1 or 0) or 1); poziom_naglowka=1+(((not czy_z_dwukropkiem)and(poziom_zerowego_naglowka_temp==2))and 1 or 0)+ (ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0) + 0+poziom_srednikowego_naglowka; poziom_naglowka_bez_poprawki=poziom_naglowka; poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu); KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1); numer_rozdzialu=HNumerPoziomow(poziom_naglowka); poziom_znakowy_rozdzialu=-1; poziom_rozdzialu=1; else poziom_zerowego_naglowka=0; numer_rozdzialu=0; poziom_naglowka=(ostatni_rozdzial_centrowany or 0); poziom_naglowka_bez_poprawki=poziom_naglowka; staly_dodatek_rozdzialu=0; end; end; if(poziom_znakowy_rozdzialu>0)then local numer=HNumerPoziomowNaglowkow(poziom_naglowka); elseif(poziom_znakowy_rozdzialu<0)then end; if(poziom_rozdzialu>0)then if(((czy_ostatni_rozdzial_jest_centrowany)and(ostatni_rozdzial_centrowany or 0)>0)and(#tab_numer>0)and(tab_numer[#tab_numer]==0)and(#tab_numer<=numer_rozdzialu))then tab_numer[#tab_numer]=nil; numer_rozdzialu=HNumerPoziomow(poziom_naglowka,((numer_rozdzialu>1)and(numer_rozdzialu-1) or 1)); czy_ostatni_rozdzial_jest_centrowany=nil; elseif(poprzedni_tab_poziomowo)then local lens=math.min(#poprzedni_tab_poziomowo,numer_rozdzialu-#tab_numer); local len_tab_numer=#tab_numer; local min_lens=math.min(#poprzedni_tab_poziomowo,lens); for i=1,min_lens,1 do tab_numer[len_tab_numer+i]=poprzedni_tab_poziomowo[i]; end; for i=min_lens+1,#tab_numer do tab_numer[len_tab_numer+i]=nil; end; end; if(#tab_numer<numer_rozdzialu)then for i=#tab_numer+1,numer_rozdzialu,1 do table.insert(tab_numer,1); end; elseif(#tab_numer>numer_rozdzialu)then for i=#tab_numer, numer_rozdzialu+1,-1 do table.remove(tab_numer,i); end; tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1; else tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1; end; end; local function CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial() if(poziom_rozdzialu==0)then return true;end; if(poziom_znakowy_rozdzialu>0)then local ile_w_rozdziale_w_naglowku_artykulow=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,true); return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy) if(ile_w_rozdziale_w_naglowku_artykulow>0)then return true;end; if(poziom_znakowy_naglowka>0)then if(poziom_aktualnego_naglowka<=poziom_naglowka)then return true; end; end; end); elseif(((m==1) or(((m==2)and(czy_pierwszy_nilowy_rozdzial))or((tab_lista_artykulow_w_ksiazce[m-1]) and((tab_lista_artykulow_w_ksiazce[m-1][1][2][1] or 0)>0)and(tab_lista_artykulow_w_ksiazce[m-1][2])and(#tab_lista_artykulow_w_ksiazce[m-1][2]==IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulow_w_ksiazce[m-1],true))))) and(poziom_znakowy_rozdzialu<0))then local czy_artykuly=nil;local tak_wynik=nil; if(tab_lista[2])then local czy_w_rozdziale_artykuly=nil; local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,_,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy) if(not w_rozdziale)then czy_artykuly=true; --[[if(((((not czy_z_dwukropkiem)and(czy_w_rozdziale_artykuly))or(poziom_artykulu-(poziom_zerowego_naglowka or 0)<=poziom_naglowka)or(poziom_artykulu-(poziom_srednikowego_naglowka[1] or 0)<=poziom_naglowka))and(poziom_artykulu_zerowy)and(poziom_artykulu_zerowy==0)and(poziom_zerowego_naglowka)and(poziom_zerowego_naglowka>0))and((m>2)or((m==2)and(not czy_pierwszy_nilowy_rozdzial))))then return true; end;]] if(poziom_artykulu<=poziom_naglowka)then return true; end; else czy_w_rozdziale_artykuly=true; end; end); tak_wynik=wynik; end; if((czy_artykuly)or(m==1))then local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy) if(poziom_znakowy_naglowka<=0)then if(poziom_aktualnego_naglowka<=poziom_naglowka)then --if((poziom_srednikowego_naglowka[2])and(poziom_srednikowego_naglowka[2]>0))then --return false; --else return true; --end; end; else if((m==1)and(poziom_znakowy_rozdzialu<0)and(poziom_znakowy_naglowka>0))then return true;end; return false; end end); if(wynik~=nil)then return wynik;end; if(tak_wynik~=nil)then return tak_wynik;end; return true; else return true; end; else return true; end; end; local function DodajNaSamPoczatek() local function ArtykulyNieWRozdziale() local ile=0; if(tab_lista[2])then for p,artykul_w_bazie in ipairs(tab_lista[2])do local w_rozdziale=artykul_w_bazie[2][4]; if(not w_rozdziale)then ile=ile+1; end; end; end; return ile; end; if((tab_lista_artykulow_w_ksiazce[m+1])and(ArtykulyNieWRozdziale()>0) and(( (poziom_znakowy_rozdzialu>0) and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy) if(poziom_znakowy_rozdzialu>0)then if(poziom_artykulu>poziom_naglowka)then return true; end; end; return false; end) )or( (poziom_znakowy_rozdzialu<0) and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka_temp,poziom_zerowego_naglowka,poziom_artykulu_zerowy) if((poziom_srednikowego_naglowka_temp[2])and(poziom_srednikowego_naglowka)and(poziom_srednikowego_naglowka_temp[2]>poziom_srednikowego_naglowka))then if(poziom_znakowy_rozdzialu<0)then if(poziom_artykulu>poziom_naglowka)then return true; end; end; end; return false; end) )) )then if(zbieraj_dane)then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; zbieraj_dane=false; end; table.insert(tab_numer,0); return true; else if(zbieraj_dane)then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; zbieraj_dane=false; end; return false; end; end; if((m==1)and(czy_pierwszy_nilowy)and(poziom_znakowy_rozdzialu==0))then if(zbieraj_dane)then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; zbieraj_dane=false; end; tab_numer={}; elseif((czy_jest_teraz_spis_tresci)and((poziom_znakowy_rozdzialu>0)or(poziom_znakowy_rozdzialu<0)))then local function Poziom_dodatni_lub_ujemny() return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy) if(poziom_artykulu>poziom_naglowka)then return true; elseif(czy_sredniki)then return true; end; return false; end); end; local function czy_inaczej_numeruj_rozdzial_dodatni() return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy) if(not w_rozdziale)then if(poziom_artykulu>poziom_naglowka)then return true; end; return false; end; end); end; local function czy_inaczej_numeruj_rozdzial_ujemny() return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy) if(poziom_artykulu>poziom_naglowka)then return true; end; end); end; if((poziom_znakowy_rozdzialu>0)and((czy_inaczej_numeruj_rozdzial_dodatni())or(Poziom_dodatni_lub_ujemny())))then glowny_spis_tresci_lub_rozdzial_ksiazki=true; if(zbieraj_dane)then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; zbieraj_dane=false; end; ---- if(not tab_poziomowo_1)then tab_poziomowo_1={};end; table.insert(tab_poziomowo_1,{tab_poziomowo,poziom_naglowka_bez_poprawki,}); ---- tab_poziomowo={}; tab_numer_zapasowe=tab_numer; ------ if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end; table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,HNumerPoziomowNaglowkow,poziom_naglowka_bez_poprawki,1,}); ----- HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); spis_tresci=false; ----- tab_numer={}; elseif((poziom_znakowy_rozdzialu<0)and((czy_inaczej_numeruj_rozdzial_ujemny())or(Poziom_dodatni_lub_ujemny())))then glowny_spis_tresci_lub_rozdzial_ksiazki=true; if(zbieraj_dane)then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; zbieraj_dane=false; end; ---- if(not tab_poziomowo_1)then tab_poziomowo_2={};end; table.insert(tab_poziomowo_2,{tab_poziomowo,poziom_naglowka_bez_poprawki,}); ---- tab_poziomowo={}; tab_numer_zapasowe=tab_numer; ----- if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end; table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,nil,poziom_naglowka_bez_poprawki,-1,}); spis_tresci=false; ----- HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); ----- tab_numer={}; end; local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek(); if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; elseif(((not czy_jest_teraz_spis_tresci)and(not czy_rozdzial_spisu)and(((not pierwszy_dodatni_naglowek)and(poziom_znakowy_rozdzialu>0)) or(((not pierwszy_ujemny_naglowek)or((prawdziwy_poziom_rozdzialu_poprz)and(prawdziwy_poziom_rozdzialu_poprz>0)))and(poziom_znakowy_rozdzialu<0)))) and(not CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()))and((not czy_pierwszy_nilowy_rozdzial)or((#tab_numer~=1)or(tab_numer[1]==1)))then glowny_spis_tresci_lub_rozdzial_ksiazki=true; if(poziom_rozdzialu>0)then if(poziom_znakowy_rozdzialu>0)then if(zbieraj_dane)then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; zbieraj_dane=false; end; ---- HNumerPoziomowNaglowkow_2=HNumerPoziomowNaglowkow; HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); tab_numer_zapasowe=tab_numer; tab_numer_3=tab_numer; tab_numer={}; HNumerPoziomow_3=HNumerPoziomow; HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); pierwszy_dodatni_naglowek=true; poziom_pierwszego_dodatniego_naglowka=poziom_rozdzialu; glowny_dodatni_rozdzial=true; else if(zbieraj_dane)then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; zbieraj_dane=false; end; ---- tab_numer_zapasowe=tab_numer; tab_numer_4=tab_numer; tab_numer=parametry_modul["KopiujTabelęElementów"](tab_numer); tab_numer[#tab_numer]=nil; HNumerPoziomow_4=HNumerPoziomow; HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); if(poprz_poziom_rozdzialu_lub_artykulu)then numer_rozdzialu=HNumerPoziomow(poprz_poziom_rozdzialu_lub_artykulu,#tab_numer); end; pierwszy_ujemny_naglowek=true; poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=(m>1) and prawdziwy_poziom_rozdzialu_poprz or false; poziom_pierwszego_ujemnego_naglowka=poziom_rozdzialu; glowny_ujemny_rozdzial=true; end; else if(zbieraj_dane)then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; zbieraj_dane=false; end; end; local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek(); if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; else local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek(); if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; ---- if(wartosc)then else if(zbieraj_dane)then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; zbieraj_dane=false; end; end; end; -- end; zbieraj_dane=true; poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_rozdzialu; poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka; poprz_numer_rozdzialu_lub_artykulu=numer_rozdzialu; poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki; prawdziwy_poziom_rozdzialu_poprz=prawdziwy_poziom_rozdzialu; ----- if(((not czy_rozdzial_spisu))and((m>1)or((m==1)and(not czy_pierwszy_nilowy_rozdzial))))then if(prawdziwy_poziom_rozdzialu>0)then pierwszy_dodatni_naglowek=true; pierwszy_ujemny_naglowek=nil; else pierwszy_ujemny_naglowek=true; pierwszy_dodatni_naglowek=true; end; end; ---- czy_ostatni_rozdzial_jest_centrowany=((poziom_znakowy_rozdzialu>0)and(czy_rozdzial_centrowany and true or nil) or ((poziom_znakowy_rozdzialu<=0)and czy_ostatni_rozdzial_jest_centrowany or nil)); else local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; end; if((tab_lista[2])and(parametry_modul["CzySąElementyNumerowaneTablicy"](tab_lista[2])))then local HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local czy_dwukropek_artykulu=nil; local stare_HNumerArtykulu=nil; local stare_HNumerPoziomu=nil; local czy_tytul_rozdzial=nil; local czy_ma_elementy=nil; ostatni_poczatek_artykulu=nil; local czy_zera=nil; local ile_w_rozdziale=nil; local poprz_poziom_artykulu_bez_b=nil; local k=1; ----- local czy_w_rozdziale_rejestrowane_osobno_artykuly=nil; local artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil; local czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil; ----- local numer_poprz_w_rozdziale=nil; local poczatek_poprz=nil; local id_poprz=nil; local tab_poprzedni_artykul_w_bazie=nil; local odejmnij_od_dwukropka_w_rozdziale=0; ----- local czy_w_trakcie_dwukropkowania_w_rozdziale=nil; ----- local poziom_zerowego_artykulu=0; local staly_poziom_rozdzialu_z_artykulami=0; local nilowanie_poprzedniego_rejestru_tab_poziomowo=nil; local czy_w_podreczniku_poprz=nil; ----- local stare_HNumerPoziomu_poza_rozdzialem=nil; local ile_w_rozdziale_licznik=1; local staly_dodatek_rozdzialu_temp=0; local staly_dodatek_rozdzialu_roz=staly_dodatek_rozdzialu; local staly_dodatek_artykulu=0; local ostatni_artykul_w_rozdziale=nil; local tab_numer_w_rozdziale=nil; local podrozdzial_spisu=nil; local dodatek_poprz=nil; ----- for p,artykul_w_bazie in ipairs(tab_lista[2])do local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]); local artykul=czy_table_baza_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1]; local nazwa=czy_table_baza_artykulu and artykul_w_bazie[1][2] or nil; local Przekierowanie=function(przekierowanie) return (((parametry_modul.TypeString(przekierowanie))and(przekierowanie))or(parametry_modul.TypeTable(przekierowanie)and(((przekierowanie[1])and((przekierowanie[2])or(przekierowanie[3])))or(przekierowanie[1]))and(przekierowanie[1]..(przekierowanie[2] and ("?"..(przekierowanie[2] or "")) or "")..(przekierowanie[3] and ("#"..(przekierowanie[3] or "")) or "")))); end; local czy_w_podreczniku=artykul_w_bazie[5]; local czy_inna_ksiazka; if(czy_table_baza_artykulu)then local czy_table_dane=parametry_modul.TypeTable(artykul_w_bazie[1][4]); if(czy_table_dane)then czy_inna_ksiazka=artykul_w_bazie[1][4][5]; end; end; local czy_url=czy_table_baza_artykulu and artykul_w_bazie[1][9] or nil; local przekierowanie=(czy_w_podreczniku) and (czy_table_baza_artykulu and ((not artykul_w_bazie[1][4])and(not artykul_w_bazie[1][7]) and Przekierowanie(artykul_w_bazie[1][3]) or {Przekierowanie(artykul_w_bazie[1][3]),artykul_w_bazie[1][4],nil,nil,artykul_w_bazie[1][7],}) or nil) or (((not czy_w_podreczniku)and(czy_table_baza_artykulu)and(artykul_w_bazie[1][5])or(artykul_w_bazie[1][6])or(artykul_w_bazie[1][7])) and {nil,nil,artykul_w_bazie[1][5],artykul_w_bazie[1][6],artykul_w_bazie[1][7],} or nil); --- local czy_dodane_lub_kolega=czy_table_baza_artykulu and artykul_w_bazie[1][8] or nil; local czy_dodane=parametry_modul.TypeBoolean(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil; local ile_dodano=parametry_modul.TypeNumber(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil; ---- artykul=UzyskajArtykul(artykul); ---- if(naglowek or not tab_artykul[artykul])then pierwszy_rowny_rozdzial=nil; czy_ma_elementy=true; if(not naglowek)then tab_artykul[artykul]=true; end; local tab_artykul_w_bazie; local w_rozdziale; if(poziomowo)then local poziom_artykulu=artykul_w_bazie[2][1]+(ile_dodano or 0); local poziom_poczatku_artykulu=artykul_w_bazie[2][2]; ---- local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0)); w_rozdziale=artykul_w_bazie[2][4]; poziom_artykulu=poziom_artykulu+(w_rozdziale and 1 or 0)+((((ile_dodano)and(ile_dodano>0))and(w_rozdziale))and 1 or 0); if(w_rozdziale)then poziom_artykulu,odejmnij_od_dwukropka_w_rozdziale,czy_w_trakcie_dwukropkowania_w_rozdziale=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz_w_rozdziale or 0,czy_w_trakcie_dwukropkowania_w_rozdziale,odejmnij_od_dwukropka_w_rozdziale); numer_poprz_w_rozdziale=tonumber(tab_lista[2][p][2][1]); else poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka); end; ---- local numeracja_artykulu=artykul_w_bazie[2][3]; local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu); local czy_rozdzial_z_poczatkiem_jedynki=nil; if(w_rozdziale)then if(not stare_HNumerPoziomu_poza_rozdzialem)then stare_HNumerPoziomu_poza_rozdzialem=HNumerPoziomow; HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer(); ----- tab_numer_w_rozdziale=tab_numer; tab_numer=tab_numer_zapasowe or tab_numer; end; local function CzyRozdzialMaArtykulyNieWewnetrzNaglowka() local czy_artykuly=nil; return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy) if(not w_rozdziale)then czy_artykuly=true; if(poziom_artykulu>poziom_naglowka)then return true; end; return false; end; end),czy_artykuly; end; local function CzyRozdzialMaRozdzialyNieWewnetrzNaglowka() return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu_artykulu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy) if((poziom_znakowy_rozdzialu<0)and(poziom_znakowy_rozdzialu_artykulu>0))then return false; else if(poziom_artykulu>poziom_naglowka)then return true; end; return false; end; end); end; if(not ile_w_rozdziale)then ile_w_rozdziale=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,false); end; if(ile_w_rozdziale_licznik==ile_w_rozdziale)then czy_w_trakcie_dwukropkowania_w_rozdziale=nil; odejmnij_od_dwukropka_w_rozdziale=0; numer_poprz_w_rozdziale=nil; ostatni_artykul_w_rozdziale=true; end; ile_w_rozdziale_licznik=ile_w_rozdziale_licznik+1; if((poziom_znakowy_rozdzialu>0)and(ile_w_rozdziale==1))then local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,{},nil,tab_lista[2][p][5],przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; czy_w_rozdziale_rejestrowane_osobno_artykuly=true; elseif(not artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)then artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=true; if(parametry_modul.TypeNil(czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka))then local czy_ma_artykuly; czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka,czy_ma_artykuly=CzyRozdzialMaArtykulyNieWewnetrzNaglowka(); if((not czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not czy_ma_artykuly))then czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=CzyRozdzialMaRozdzialyNieWewnetrzNaglowka(); end; end; if((czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not glowny_ujemny_rozdzial))then tab_numer[#tab_numer+1]=0; end; end; else if((artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)or(czy_w_rozdziale_rejestrowane_osobno_artykuly))then ----- tab_poziomowo={}; HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer(); HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer(); ----- artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil; czy_w_rozdziale_rejestrowane_osobno_artykuly=nil; ---- k=1; tab_poprzedni_artykul_w_bazie=nil; end; --- if(not czy_zera)then if((((not czy_nienilowy_rozdzial)and(m==1))or((czy_nienilowy_rozdzial)and(m>=1)))and(k==1))then local numer=tab_lista[2][p][2][1]; local poczatek=tab_lista[2][p][2][2]; if(((not czy_nienilowy_rozdzial)and(mw.ustring.match(poczatek,"^:")))or(numer+poziom_numeracji_artykulu==0))then for s=p+1,#tab_lista[2],1 do if(CzyWliczacBezPoziomowo(p,s))then local numer=tab_lista[2][s][2][1]; local poczatek=tab_lista[2][s][2][2]; local numeracja_artykulu=tab_lista[2][s][2][3]; local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu); if((mw.ustring.match(poczatek,"^#"))or(numer+poziom_numeracji_artykulu>0))then if(((#tab_numer>0)and(tab_numer[#tab_numer]~=0))or(#tab_numer==0))then table.insert(tab_numer,0); end; tab_poziomowo={}; czy_zera=true; break; elseif((not mw.ustring.match(poczatek,"^:"))and(not(#poczatek==0)))then break; end; end; end; end; end; else local numer=tonumber(tab_lista[2][p][2][1]); local poczatek=tab_lista[2][p][2][2]; local id=tab_lista[2][p][4]; local function DodajUsunNumerek(jedno,drugie,trzecie) if((not jedno)and(not drugie)and(not trzecie))then return;end; if((#tab_numer>(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka))then czy_zera=false; tab_poziomowo={}; table.remove(tab_numer,#tab_numer); if(#tab_numer>0)then tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0)+1; end; czy_rozdzial_z_poczatkiem_jedynki=true; end; end; DodajUsunNumerek(((mw.ustring.match(poczatek_poprz,"^:"))and(mw.ustring.match(poczatek,"^#"))),((#poczatek_poprz==0)and(not id_poprz)and(#poczatek>0)and(not id)),((#poczatek_poprz+poprz_numeracji_rozdzialu_lub_artykulu==0)and(numer+poziom_numeracji_artykulu>0))); end; if((not czy_zera) and((k==1)and(not w_rozdziale)and(tab_lista_artykulow_w_ksiazce[m+1]) and(((m==1)and(not czy_nienilowy_rozdzial)and(((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)or(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0))) or((m>1)and(czy_nienilowy_rozdzial)and((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0))) ))then local czy_sa_jakies_artykuly_niezerowe=false;local ile=0; local poziom_zerowy=artykul_w_bazie[2][1]+poziom_numeracji_artykulu; if(poziom_zerowy)then for h,artykul_w_bazie in ipairs(tab_lista[2])do if(h>p)then local poziom_artykulu=artykul_w_bazie[2][1]; local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu); if(poziom_artykulu+poziom_numeracji_artykulu>0)then czy_sa_jakies_artykuly_niezerowe=true; break; end; end; end; for h,artykul_w_bazie in ipairs(tab_lista[2])do if(h>=p)then ile=ile+1; end; end; end; if(((poziom_zerowy==0)and(czy_sa_jakies_artykuly_niezerowe)or(not czy_nienilowy_rozdzial))or(poziom_zerowy>0))then if(ile<=5)then table.insert(tab_numer,0); else nilowanie_poprzedniego_rejestru_tab_poziomowo=true; end end; end; end; ostatni_poczatek_artykulu=poziom_poczatku_artykulu; ----- local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu; poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu); local poziom_zerowego_artykulu_aktualny=poziom_artykulu; poziom_zerowego_artykulu=ZerowyArtykul(tab_lista[2],p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz); ---- local czy_sredniki=mw.ustring.match(poziom_poczatku_artykulu,"^(;+)"); if(czy_sredniki)then poziom_zerowego_naglowka=0; if(glowny_ujemny_rozdzial)then HNumerPoziomow=HNumerPoziomow_4; HNumerPoziomow_4=nil; tab_numer=tab_numer_4; poziom_pierwszego_ujemnego_naglowka=nil; glowny_ujemny_rozdzial=nil; ---- end; KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true); end; ---- local poziom_czysty_artykulu=poziom_artykulu; ---- local __poziom_poczatku_rozdzialu= (not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz; local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu; poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami); ---- poziom_zerowego_naglowka=czy_sredniki and 0 or poziom_zerowego_naglowka; poziom_zerowego_artykulu=czy_sredniki and 0 or poziom_zerowego_artykulu; ---- poziom_srednikowego_naglowka=czy_sredniki and 0 or poziom_srednikowego_naglowka; ---- poziom_zerowego_naglowka=((ostatni_artykul_w_rozdziale)and(not w_rozdziale)and(poziom_zerowego_naglowka>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka-1) or poziom_zerowego_naglowka; if((ostatni_artykul_w_rozdziale)and(not w_rozdziale))then ostatni_artykul_w_rozdziale=nil; end; ---- if((poziom_znakowy_rozdzialu<0)and(rozdzial==""))then poziom_artykulu=poziom_naglowka+poziom_artykulu+poziom_zerowego_artykulu+(poziom_spisu_tresci_dodatek or 0); else poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+((not czy_sredniki)and poziom_srednikowego_naglowka or 0)+(poziom_spisu_tresci_dodatek or 0); end; ---- local poziom_podany_artykulu_bez_numeracji=poziom_artykulu; poziom_artykulu=poziom_artykulu+(poziom_numeracji_artykulu or 0); ---- local __poprz_poziom_rozdzialu_lub_artykulu=((poziom_znakowy_rozdzialu>0) and poprz_poziom_rozdzialu_lub_artykulu or poziom_naglowka); local __poprz_czysty_poziom_rozdzialu_lub_artykulu=(poziom_znakowy_rozdzialu>0) and poprz_czysty_poziom_rozdzialu_lub_artykulu or poziom_numeracji_rozdzialu; if(not w_rozdziale)then if(k==1)then staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu_roz; end; end; poziom_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]=PoziomNumerNaglowka(poziom_podany_artykulu_bez_numeracji,poziom_numeracji_artykulu,__poprz_poziom_rozdzialu_lub_artykulu,__poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]); if(not w_rozdziale)then staly_dodatek_rozdzialu=staly_dodatek_rozdzialu_temp;end; ---- local prefix_poziom_artykulu=poziom_artykulu; local function WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu) local b=0; local tab_artykul_w_bazie=mw.text.split(artykul,"/"); if((tab_poprzedni_artykul_w_bazie)and((czy_w_podreczniku_poprz)and(czy_w_podreczniku)))then if((#tab_artykul_w_bazie>1)or(#tab_poprzedni_artykul_w_bazie>1))then for c=1,#tab_artykul_w_bazie,1 do local podstrona_artykul=tab_artykul_w_bazie[c]; local podstrona_poprzedni_artykul=tab_poprzedni_artykul_w_bazie[c]; if(podstrona_artykul==podstrona_poprzedni_artykul)then b=b+1; else break; end; end; end; else if(k==1)then if(#tab_artykul_w_bazie>1)then local podrozdzial_artykulu=tab_artykul_w_bazie[1]; podrozdzial_artykulu=parametry_modul["Odstępy"]{[1]=podrozdzial_artykulu,[2]="tak",}; podrozdzial_artykulu=mw.getContentLanguage():ucfirst(podrozdzial_artykulu); if(not podrozdzial_spisu)then podrozdzial_spisu=parametry_modul["Odstępy"]{[1]=rozdzial,[2]="tak",}; podrozdzial_spisu=mw.getContentLanguage():ucfirst(podrozdzial_spisu); end; local czy_z_rozdzialem=(podrozdzial_artykulu==podrozdzial_spisu); if(czy_z_rozdzialem)then b=1;end; end; end end; if((#tab_artykul_w_bazie==b)and(#tab_poprzedni_artykul_w_bazie==b))then b=b-1;end; if(not poprz_poziom_artykulu_bez_b)then staly_dodatek_artykulu={b,true}; return 0,staly_dodatek_artykulu,tab_artykul_w_bazie; end; if(poziom_artykulu==poprz_poziom_artykulu_bez_b)then if((k>=2)and(czy_w_podreczniku)and(staly_dodatek_artykulu[2])and(staly_dodatek_artykulu[1]==0)and(#tab_poprzedni_artykul_w_bazie>1)and(b>0)and(#tab_poprzedni_artykul_w_bazie>=b+1))then staly_dodatek_artykulu[1]=b; staly_dodatek_artykulu[2]=false; end; if(((k==2)or(staly_dodatek_artykulu[3]))and(not czy_w_podreczniku))then staly_dodatek_artykulu[3]=k; elseif((k>2)and(czy_w_podreczniku)and((staly_dodatek_artykulu[3] or 0)+2==k)and(b>0))then staly_dodatek_artykulu[3]=nil; staly_dodatek_artykulu[1]=b; end; local poziom_numeracji=b-(staly_dodatek_artykulu[1] or 0); return ((czy_w_podreczniku)and ((poziom_numeracji>=0)and poziom_numeracji or 0)or(dodatek_poprz)),staly_dodatek_artykulu,tab_artykul_w_bazie; elseif(poziom_artykulu~=poprz_poziom_artykulu_bez_b)then staly_dodatek_artykulu={b,true}; if((k==2)and(not czy_w_podreczniku))then staly_dodatek_artykulu[3]=k; end; return 0,staly_dodatek_artykulu,tab_artykul_w_bazie; end; return 0,staly_dodatek_artykulu,tab_artykul_w_bazie; end; ----- local dodatek; dodatek,staly_dodatek_artykulu,tab_artykul_w_bazie=WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu); poprz_poziom_artykulu_bez_b=poziom_artykulu; local numer_poziomu=HNumerPoziomow(poziom_artykulu); ----- if(not w_rozdziale)then if(poziom_znakowy_rozdzialu<0)then if(poziom_artykulu<=(poziom_pierwszego_ujemnego_naglowka or 0))then tab_poziomowo=tab_numer_4; tab_numer={}; HNumerPoziomu=HNumerPoziomow_4; HNumerArtykulu(poziom_artykulu,HNumerPoziomu(0)); else local numer=numer_rozdzialu-numer_poziomu; if(numer>=0)then local tab_numer_s=tab_numer; local tab_poziomowo_s=tab_poziomowo; tab_numer={};tab_poziomowo={}; if(#tab_numer_s>=numer_poziomu-1)then for i=1,numer_poziomu-1,1 do tab_numer[i]=tab_numer_s[i]; end; for i=numer_poziomu,#tab_numer_s,1 do tab_poziomowo[i-numer_poziomu+1]=tab_numer_s[i]; end; for i=1,#tab_poziomowo_s,1 do tab_poziomowo[i+#tab_numer_s-numer_poziomu+1]=tab_poziomowo_s[i]; end; else for i=1,#tab_numer_s,1 do tab_numer[i]=tab_numer_s[i]; end; for i=1,numer_poziomu-1,1 do tab_numer[i+#tab_numer_s]=tab_poziomowo_s[i]; end; for i=numer_poziomu,#tab_poziomowo_s,1 do tab_poziomowo[i-numer_poziomu+1]=tab_poziomowo_s[i]; end; end; end; end; end; end; if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then if((not w_rozdziale)and(poziomowo)and(poziom_znakowy_rozdzialu<0))then if((numer_rozdzialu>=numer_poziomu)and(numer_poziomu>=1))then HNumerPoziomu(poziom_artykulu,1); HNumerArtykulu(poziom_artykulu,1); end; end; local stala=poziom_artykulu; if(czy_rozdzial_z_poczatkiem_jedynki)then HNumerPoziomu(stala,1); HNumerArtykulu(stala,1); end; local numer_poziomu=HNumerPoziomu(stala); poziom_artykulu=stala+dodatek; local numer=HNumerArtykulu(poziom_artykulu); local roznica=numer_poziomu-numer; if(roznica>0)then numer=HNumerArtykulu(poziom_artykulu,numer_poziomu); end; if(#tab_poziomowo<numer)then for i=#tab_poziomowo+1,numer,1 do table.insert(tab_poziomowo,1); end; else if(#tab_poziomowo>numer)then for i=#tab_poziomowo,numer+1,-1 do table.remove(tab_poziomowo,i); end; end; tab_poziomowo[#tab_poziomowo]=(tab_poziomowo[#tab_poziomowo] or 0)+1; end; end; ---- tab_poprzedni_artykul_w_bazie=tab_artykul_w_bazie; poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_artykulu; poprz_poziom_rozdzialu_lub_artykulu=poziom_artykulu; poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_podany_artykulu_bez_numeracji; poziom_srednikowego_naglowka=czy_sredniki and poziom_czysty_artykulu or poziom_srednikowego_naglowka; numer_poprz=(not w_rozdziale)and tonumber(tab_lista[2][p][2][1]) or ((w_rozdziale)and numer_poprz or nil); poprz_numer_rozdzialu_lub_artykulu=numer_poziomu; poczatek_poprz=tab_lista[2][p][2][2]; id_poprz=tab_lista[2][p][4]; czy_w_podreczniku_poprz=czy_w_podreczniku; dodatek_poprz=dodatek; end; local wartosc; if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,nil,tab_lista[2][p][5],przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url); if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end; end; if(not poziomowo)then i=i+1; else if((ostatni_artykul_w_rozdziale)and(w_rozdziale))then HNumerPoziomow=stare_HNumerPoziomu_poza_rozdzialem; stare_HNumerPoziomu_poza_rozdzialem=nil; tab_numer=tab_numer_w_rozdziale; poprzedni_tab_poziomowo=nil; ----- poziom_zerowego_artykulu=0; ----- czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil; if((#tab_numer>0)and(tab_numer[#tab_numer]==0))then tab_numer[#tab_numer]=nil; end; else if(not nilowanie_poprzedniego_rejestru_tab_poziomowo)then poprzedni_tab_poziomowo=tab_poziomowo; else poprzedni_tab_poziomowo={1,}; end; end; end; k=k+1; end; end; if(not czy_ma_elementy)then poprzedni_tab_poziomowo=nil; end; else poprzedni_tab_poziomowo=nil; end; end; end; return; end; local function ZamienNumerArtykuluNaTabele(numer_artykulu) local tab_numer_artykulu=mw.text.split(numer_artykulu,".",true); return tab_numer_artykulu; end; local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) if(#tab_numer_artykulu<=1)then return tab_numer_artykulu;end; local stronicowyparser_modul=require("Module:StronicowyParser"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local parametry_modul=require("Module:Parametry"); local nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly=stronicowyparser_modul["DaneUkładuAutonawigacji"](frame,tabela_listy_danych_analizy_ksiazki); if((not tab_inne_spisy)or(not parametry_modul["CzySąElementyNumerowaneTablicy"](tab_inne_spisy)))then return tab_numer_artykulu;end; local tab_w_spis={}; for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local poziom_rozdzialu=tab_lista[1][2][1]; if(tab_lista[2])then for p,artykul_w_bazie in ipairs(tab_lista[2])do if((m>1)and(poziom_rozdzialu==1))then break;end; local czy_table_baza_artykulu=parametry_modul.TypeTable(artykul_w_bazie[1]); local artykul=czy_table_baza_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1]; local przekierowanie=czy_table_baza_artykulu and artykul_w_bazie[1][3] or nil; local czy_artykul=nil; for _,tab_lub_str in ipairs(tab_inne_spisy)do local czy_tab_lub_str=parametry_modul.TypeTable(tab_lub_str); if(czy_tab_lub_str)then if(tab_lub_str[1]==artykul)then czy_artykul=true; end; else if(tab_lub_str==artykul)then czy_artykul=true; end; end; end; if(czy_artykul)then tab_w_spis[artykul]=true; end; end; end; end; local czy_w_spis=true; for _,name in ipairs(tab_inne_spisy)do local czy_table_name=parametry_modul.TypeTable(name); czy_w_spis=czy_w_spis and tab_w_spis[czy_table_name and name[1] or name]; if(not czy_w_spis)then break;end; end; if(not czy_w_spis)then return tab_numer_artykulu; end; if((tab_numer_artykulu)and(#tab_numer_artykulu>1)and(tab_numer_artykulu[1])and(tab_numer_artykulu[1]=='1'))then table.remove(tab_numer_artykulu,1); end; if((tab_numer_artykulu)and(#tab_numer_artykulu>1)and(tab_numer_artykulu[1])and(tab_numer_artykulu[1]=='1'))then local nazwa_spisu,numer_spisu; local czy_jedno=true;local pierwszy_rozdzial; for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local poziom_rozdzialu=tab_lista[1][2][1]; if(m>1)then if(poziom_rozdzialu==1)then break; elseif(m==2)then pierwszy_rozdzial=poziom_rozdzialu; elseif(m>2)then czy_jedno=czy_jedno and pierwszy_rozdzial and (pierwszy_rozdzial<poziom_rozdzialu); end; end; end; if(czy_jedno)then table.remove(tab_numer_artykulu,1); end; end; return tab_numer_artykulu; end; local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu) local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu); if(#tab_numer_artykulu<1)then return tab_numer_artykulu;end; local tab_numer_spisu=ZamienNumerArtykuluNaTabele(numer_spisu); local lens=#tab_numer_spisu; for i=lens,1,-1 do if(i==lens)then tab_numer_artykulu[1]=tab_numer_spisu[i]; else table.insert(tab_numer_artykulu,1,tab_numer_spisu[i]); end; end; return tab_numer_artykulu; end; p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki) local s=1; local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local dane_szablonu; local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki) ---- dane_szablonu=dane_szablonu or pierwszy_parametr_szablonu(); local nazwa_artykulu,czy_nazwa,dane=dane_szablonu[1],dane_szablonu[2],dane_szablonu[3]; ---- if((((dane==2)or(dane==3))and(artykul=="")and(rozdzial==nazwa_artykulu))or(((dane==1)or(dane==3))and(artykul~="")and((nazwa_artykulu==artykul)or(((przekierowanie)and(parametry_modul.TypeString(przekierowanie))and(przekierowanie==nazwa_artykulu))or(parametry_modul.TypeTable(przekierowanie)and(przekierowanie[1]==nazwa_artykulu))))))then if(s==ktory)then if(poziomowo)then local numer_artykulu=(table.concat(tab_numer,".")..((#tab_numer>0) and ((#tab_poziomowo>0) and "." or "") or "")..table.concat(tab_poziomowo,".")); if((not nazwa_spisu)or(not numer_spisu) or ((not glowny_spis_tresci_lub_rozdzial_ksiazki)and((tonumber(numer_artykulu) or 1)>1)) or((glowny_spis_tresci_lub_rozdzial_ksiazki)and((numer_spisu or 1)>1)) )then return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; elseif((numer_spisu)and(numer_spisu==1))then if(glowny_spis_tresci_lub_rozdzial_ksiazki)then return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; else local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu); tab_numer_artykulu=UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu); return table.concat(tab_numer_artykulu,"."),glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={}; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=PobierzNumerLubNazweArtykulu({args=args_kopia,},tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(not numer_spisu_tresci)then return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki;end; local tab_numer_artykulu=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci); tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) or tab_numer_artykulu; return table.concat(tab_numer_artykulu,"."),glowny_spis_tresci_lub_rozdzial_ksiazki; else return i,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; s=s+1; end; end; local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; end; p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki) local s=1; local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local dane_szablonu; local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki) ---- dane_szablonu=dane_szablonu or pierwszy_parametr_szablonu(); local numer,czy_nazwa,dane=dane_szablonu[1],dane_szablonu[2],dane_szablonu[3]; ---- if((not poziomowo)and(i==numer))then if(s==ktory)then if(artykul~="")then local wartosc=(not czy_nazwa) and artykul or (nazwa or artykul); return wartosc; else return rozdzial; end; else s=s+1; end; elseif(poziomowo)then local function NumerArtykulu(tab_numer,tab_poziomowo) return (table.concat(tab_numer,".")..((#tab_numer>0) and ((#tab_poziomowo>0) and "." or "") or "")..table.concat(tab_poziomowo,".")); end; local function WynikArtykulowyZNumeru(numer_artykulu) if((((dane==2)or(dane==3))and(artykul=="")and(numer_artykulu==numer))or(((dane==1)or(dane==3))and(artykul~="")and(numer_artykulu==numer)))then if(s==ktory)then if(artykul~="")then local wartosc=(not czy_nazwa) and artykul or (nazwa or artykul); return wartosc; else return rozdzial; end; else s=s+1; end; end; end; local numer_artykulu=NumerArtykulu(tab_numer,tab_poziomowo); if((not nazwa_spisu)or(not numer_spisu) or ((not glowny_spis_tresci_lub_rozdzial_ksiazki)and((tonumber(numer_artykulu) or 1)>1)) or((glowny_spis_tresci_lub_rozdzial_ksiazki)and((numer_spisu or 1)>1)) )then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end; elseif((numer_spisu)and(numer_spisu==1))then if(glowny_spis_tresci_lub_rozdzial_ksiazki)then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end; else local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu); tab_numer_artykulu=UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu); local numer_artykulu=table.concat(tab_numer_artykulu,"."); local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end; end; else local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki); if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(not numer_spisu_tresci)then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end; end; local tab_numer_artykulu=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci); tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) or tab_numer_artykulu; local numer_artykulu=table.concat(tab_numer_artykulu,"."); local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end; end; end; end; local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; end; p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki,kodowanie_nie_json) local tab_dane_ksiazki=nil; local s=1; local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu; local pierwszy_spis_tresci=nil; local artykul_spisowy=nil; local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url) if((artykul_spisu)and(nazwa_spisu))then if((artykul_spisu~=nazwa_spisu))then if(not artykul_spisowy)then return false;else return true;end; elseif((not artykul_spisowy)and(artykul_spisu==nazwa_spisu))then artykul_spisowy=true; end; end; if(not tab_dane_ksiazki)then tab_dane_ksiazki={};end; if(not tab_dane_ksiazki[rozdzial])then tab_dane_ksiazki[rozdzial]={};end; local tab_rozdzial=tab_dane_ksiazki[rozdzial]; local numer_rozdzialu=tab_numer and table.concat(tab_numer,".") or ""; if((nazwa_spisu)and(numer_spisu)and(not glowny_spis_tresci_lub_rozdzial_ksiazki)and(numer_rozdzialu~=""))then local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((numer_spisu)and(numer_spisu==1))then if(not glowny_spis_tresci_lub_rozdzial_ksiazki)then local tab_numer_rozdzialu=ZamienNumerArtykuluNaTabele(numer_rozdzialu); tab_numer_rozdzialu=UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu); numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); end; else if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki); if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(numer_spisu_tresci)then local tab_numer_rozdzialu=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_rozdzialu,numer_spisu_tresci); tab_numer_rozdzialu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu) or tab_numer_rozdzialu; numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); end; end; elseif((not pierwszy_spis_tresci)and(nazwa_spisu)and(numer_spisu)and(glowny_spis_tresci_lub_rozdzial_ksiazki)and(numer_rozdzialu~=""))then local czy_spis_tresci=tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial]; if(czy_spis_tresci)then pierwszy_spis_tresci=true; local tab_numer_rozdzialu=ZamienNumerArtykuluNaTabele(numer_rozdzialu); tab_numer_rozdzialu=UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu); numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); end; end; if(not tab_rozdzial[numer_rozdzialu])then tab_rozdzial[numer_rozdzialu]={}; end; local tab_numer_rozdzialu=tab_rozdzial[numer_rozdzialu]; if(not tab_numer_rozdzialu[artykul])then tab_numer_rozdzialu[artykul]={}; end; local tab_artykul=tab_numer_rozdzialu[artykul]; local numer_artykulu=tab_poziomowo and table.concat(tab_poziomowo,".") or ""; if(not tab_artykul[numer_artykulu])then tab_artykul[numer_artykulu]={}; end; local tab_numer_artykulu=tab_artykul[numer_artykulu]; local czy_tabelka=parametry_modul.TypeTable(przekierowanie); ---- table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); ---- s=s+1; return false; end; PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; end; return p; 8rzs0lz9s65jmpgmdhj6wi32ec534ux Wikibooks:Moduły/StronicowyParser 4 63511 547782 547655 2026-07-17T20:11:17Z Persino 2851 /* Spis treści */ 547782 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser}}|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 stronicowego parsera służące do analizu uchwytów i ich numerowania, do przydzielenia uchwytom, pewnych rozdziałów, czy nawet pobieranie, za pomocą uchwytów. Też służy do ładowania spisów treści przy pomocy jego funkcji. == Spis treści == * {{lru|Moduły/StronicowyParser}} procedur stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych. ** {{lr|Moduły/StronicowyParser/Tom I|StronicowyParser - Tom I}} - funkcje główne stronicowego parsera, uruchamiane w stronicowych szablonach, które są zawarte w podkategoriach: {{lk2|Szablony stronicowe}}, * {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy}} - * {{lru|Moduły/StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}} - * {{lru|Moduły/StronicowyParser/Kategorie}} - zwraca kategorie, tylko raz przetworzone i policzone, zgłaszane przez {{m|StronicowyParser|WstawKategorie}}, * {{lru|Moduły/StronicowyParser/NumerLubNazwaArtykułówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka lub artykułu książki, zależnie od ustawień, jego numeru, lub odwrotnie, * {{lru|Moduły/StronicowyParser/NumerLubNazwaNagłówkówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka, jego numeru, lub odwrotnie, * {{lru|Moduły/StronicowyParser/NumerObiektu}} - funkcje numerowania uchwytów, przypisywanie uchwytom linków do nagłówków lub uchwytom zawartości tekstów, * {{lru|Moduły/StronicowyParser/NumeracjaObiektówStron}} - * {{lru|Moduły/StronicowyParser/Potrzebne}} - * {{lru|Moduły/StronicowyParser/Problemy}} - funkcje sprawdzania, czy jest taki, i dodawania, problemów do tablicy, * {{lru|Moduły/StronicowyParser/Rozdziały}} - funkcje, do przygotowania tekstów spisów treści, do dalszej obróbki przez funkcje z: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, * {{lru|Moduły/StronicowyParser/SpisTreści}} - spis treści dla jego podmodułów, ** {{lr|Moduły/StronicowyParser/SpisTreści/Tom I|SpisTreści - Tom I}} - funkcje do ładowania pojedynczego spisu treści, ** {{lr|Moduły/StronicowyParser/SpisTreści/Tom II|SpisTreści - Tom II}} - funkcje do ładowania jego, wielu, a nawet przygotowania dodatkowych elementów spisów, a mianowicie dalszych artykułów, * {{lru|Moduły/StronicowyParser/StronaSubst}} - strona, a w niej funkcje, do sprawdzania, czy dana podana strona jest stroną zbiorczą, ładuje kod strony zbiorczej dla szablonów {{s|StronaSubst}} i {{s|KsiążkaSubst}}, także przygotowuje wpisy do spisu treści {{s|Spis treści}} ({{s|Spis treści zwinięty}}), czy {{s|TOC}}, a nawet {{s|TOC limit}} * {{lru|Moduły/StronicowyParser/Tekst}} - są to funkcje do ładowania tekstu stron, nawet jego rekurencyjne, * {{lru|Moduły/StronicowyParser/ZbieranieDanychStron}} - moduł do zbierania informacji o aktualnej stronie, nie spisie treści, co do uchwytów pewnych obiektów i dalszych informacji o nich, * {{lru|Moduły/StronicowyParser/SzablonyTekstu}} - funkcje aktualizowania informacji specjalne dla szablonów {{s|PobierzŚródtekst}} na podstawie informacji w szablonach {{s|Śródtekst}} w tym samym lub na innej stronie artykułu książki, czy na innej stronie nieartykularnej (książkowej), * {{lru|Moduły/StronicowyParser/informacje}} - moduł ładujący informacje o danej stronie, dołączony raz na całą nią, * {{lru|Moduły/StronicowyParser/obiekty}} - zestaw stałych tablicowych ładowanych raz na całą stronę. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> mm5gb3dzz7pdzkyfezqb7rprxpurd84 547783 547782 2026-07-17T20:11:50Z Persino 2851 /* Spis treści */ 547783 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser}}|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 stronicowego parsera służące do analizu uchwytów i ich numerowania, do przydzielenia uchwytom, pewnych rozdziałów, czy nawet pobieranie, za pomocą uchwytów. Też służy do ładowania spisów treści przy pomocy jego funkcji. == Spis treści == * {{lru|Moduły/StronicowyParser}} procedur stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych. ** {{lr|Moduły/StronicowyParser/Tom I|StronicowyParser - Tom I}} - funkcje główne stronicowego parsera, uruchamiane w stronicowych szablonach, które są zawarte w podkategoriach: {{lk2|Szablony stronicowe}}, * {{lru|Moduły/StronicowyParser/AnalizaSpisuRzeczy}} - * {{lru|Moduły/StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}} - * {{lru|Moduły/StronicowyParser/Kategorie}} - zwraca kategorie, tylko raz przetworzone i policzone, zgłaszane przez {{Code|{{m|StronicowyParser|WstawKategorie}}}}, * {{lru|Moduły/StronicowyParser/NumerLubNazwaArtykułówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka lub artykułu książki, zależnie od ustawień, jego numeru, lub odwrotnie, * {{lru|Moduły/StronicowyParser/NumerLubNazwaNagłówkówKsiążek}} - funkcje pobierania, na podstawie nazwy nagłówka, jego numeru, lub odwrotnie, * {{lru|Moduły/StronicowyParser/NumerObiektu}} - funkcje numerowania uchwytów, przypisywanie uchwytom linków do nagłówków lub uchwytom zawartości tekstów, * {{lru|Moduły/StronicowyParser/NumeracjaObiektówStron}} - * {{lru|Moduły/StronicowyParser/Potrzebne}} - * {{lru|Moduły/StronicowyParser/Problemy}} - funkcje sprawdzania, czy jest taki, i dodawania, problemów do tablicy, * {{lru|Moduły/StronicowyParser/Rozdziały}} - funkcje, do przygotowania tekstów spisów treści, do dalszej obróbki przez funkcje z: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, * {{lru|Moduły/StronicowyParser/SpisTreści}} - spis treści dla jego podmodułów, ** {{lr|Moduły/StronicowyParser/SpisTreści/Tom I|SpisTreści - Tom I}} - funkcje do ładowania pojedynczego spisu treści, ** {{lr|Moduły/StronicowyParser/SpisTreści/Tom II|SpisTreści - Tom II}} - funkcje do ładowania jego, wielu, a nawet przygotowania dodatkowych elementów spisów, a mianowicie dalszych artykułów, * {{lru|Moduły/StronicowyParser/StronaSubst}} - strona, a w niej funkcje, do sprawdzania, czy dana podana strona jest stroną zbiorczą, ładuje kod strony zbiorczej dla szablonów {{s|StronaSubst}} i {{s|KsiążkaSubst}}, także przygotowuje wpisy do spisu treści {{s|Spis treści}} ({{s|Spis treści zwinięty}}), czy {{s|TOC}}, a nawet {{s|TOC limit}} * {{lru|Moduły/StronicowyParser/Tekst}} - są to funkcje do ładowania tekstu stron, nawet jego rekurencyjne, * {{lru|Moduły/StronicowyParser/ZbieranieDanychStron}} - moduł do zbierania informacji o aktualnej stronie, nie spisie treści, co do uchwytów pewnych obiektów i dalszych informacji o nich, * {{lru|Moduły/StronicowyParser/SzablonyTekstu}} - funkcje aktualizowania informacji specjalne dla szablonów {{s|PobierzŚródtekst}} na podstawie informacji w szablonach {{s|Śródtekst}} w tym samym lub na innej stronie artykułu książki, czy na innej stronie nieartykularnej (książkowej), * {{lru|Moduły/StronicowyParser/informacje}} - moduł ładujący informacje o danej stronie, dołączony raz na całą nią, * {{lru|Moduły/StronicowyParser/obiekty}} - zestaw stałych tablicowych ładowanych raz na całą stronę. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 8qnue8bbocgm9u2tv6gv7zdc9qew96h Wikibooks:Moduły/StronicowyParser/NumerLubNazwaArtykułówKsiążek 4 63515 547731 547728 2026-07-17T13:43:31Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547731 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, * {{Code|i}} {{Patrz|i}}, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} * {{Code|artykul}} {{Patrz|artykul}} * {{Code|tab_numer}} {{Patrz|tab_numer}} * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikoweczy_artykuly_podrecznikowe}} * {{Code|przekierowanie}} {{Patrz|przekierowanie}} * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} * {{Code|numer_spisu}} {{Patrz|numer_spisu}} * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} - jak w: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> a19nfnnp6myqoon162u9e1ve3w01tsz 547732 547731 2026-07-17T13:44:29Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547732 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, * {{Code|i}} {{Patrz|i}}, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} * {{Code|artykul}} {{Patrz|artykul}} * {{Code|tab_numer}} {{Patrz|tab_numer}} * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikoweczy_artykuly_podrecznikowe}} * {{Code|przekierowanie}} {{Patrz|przekierowanie}} * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} * {{Code|numer_spisu}} - jak w:{{LinkPatrz|numer_spisu}} * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> k2caazayvthrkug6ui2rvz1za3n0tuw 547733 547732 2026-07-17T13:45:21Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547733 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, * {{Code|i}} {{Patrz|i}}, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} * {{Code|artykul}} {{Patrz|artykul}} * {{Code|tab_numer}} {{Patrz|tab_numer}} * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikoweczy_artykuly_podrecznikowe}} * {{Code|przekierowanie}} {{Patrz|przekierowanie}} * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> smagkszmgjv4wdwqq5hrpc6qytkxqro 547734 547733 2026-07-17T13:50:42Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547734 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}}, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które dopasowaniema dopasować, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikoweczy_artykuly_podrecznikowe}} * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 02mdwfj7haz1q7q8xjfrsf5zupm38se 547735 547734 2026-07-17T13:52:22Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547735 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które dopasowaniema dopasować, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikoweczy_artykuly_podrecznikowe}} * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> g6bsb2g7564x25cnrjhe3s18in8nljr 547736 547735 2026-07-17T14:02:28Z Persino 2851 /* {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji */ 547736 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które dopasowaniema dopasować, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikoweczy_artykuly_podrecznikowe}} * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkPatrz|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkPatrz|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkPatrz|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodaneczy_dodane}}, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}}, * {{Code|czy_url}} {{Patrz|czy_url}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 0qwmnm1tdgwk7kyp6aezzkkfdvic6y5 547737 547736 2026-07-17T14:04:24Z Persino 2851 /* {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji */ 547737 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które dopasowaniema dopasować, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikoweczy_artykuly_podrecznikowe}} * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkPatrz|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodaneczy_dodane}}, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}}, * {{Code|czy_url}} {{Patrz|czy_url}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> tktx1k13qt45bjzhr66h8he639x78ex 547738 547737 2026-07-17T14:04:54Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} */ 547738 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które dopasowaniema dopasować, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikoweczy_artykuly_podrecznikowe}} * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodaneczy_dodane}}, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}}, * {{Code|czy_url}} {{Patrz|czy_url}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 66m03n0zlctmtjcshjjb91peuh39iqo 547739 547738 2026-07-17T14:24:59Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547739 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które dopasowaniema dopasować, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, w zależności od ustawień, może być to liczba naturalna, lub numerkami oddzielone kropkami, tzn. w zależności od parametru {{LinkPatrz|poziomowo}}, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodaneczy_dodane}}, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}}, * {{Code|czy_url}} {{Patrz|czy_url}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 8cyrwk37krcfv8oofeomlnip8tv6f1r 547740 547739 2026-07-17T14:28:41Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} */ 547740 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które dopasowaniema dopasować, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, w zależności od ustawień, może być to liczba naturalna, lub numerkami oddzielone kropkami, tzn. w zależności od parametru {{LinkPatrz|poziomowo}}, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książkinie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL', czyli, czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 61la0oa1r8t472gawsmln993cs4req2 547741 547740 2026-07-17T14:29:02Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} */ 547741 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które dopasowaniema dopasować, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, w zależności od ustawień, może być to liczba naturalna, lub numerkami oddzielone kropkami, tzn. w zależności od parametru {{LinkPatrz|poziomowo}}, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książkinie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli, czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 4i2ygzyz67y46h7vnlxpnwhajbzhx0j 547742 547741 2026-07-17T14:29:26Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} */ 547742 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które dopasowaniema dopasować, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, w zależności od ustawień, może być to liczba naturalna, lub numerkami oddzielone kropkami, tzn. w zależności od parametru {{LinkPatrz|poziomowo}}, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli, czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> duu0lah7y2uirrvrr74a3t15sukvsu0 547743 547742 2026-07-17T14:30:29Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} */ 547743 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które dopasowaniema dopasować, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, w zależności od ustawień, może być to liczba naturalna, lub numerkami oddzielone kropkami, tzn. w zależności od parametru {{LinkPatrz|poziomowo}}, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 2wvjc813lyw17l2o069gfpwv56aanxa 547744 547743 2026-07-17T14:50:57Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547744 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, w zależności od ustawień, może być to liczba naturalna, lub numerkami oddzielone kropkami, tzn. w zależności od parametru {{LinkPatrz|poziomowo}}, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> rkc104oopl0u9z130hh6vk8vufzkr49 547745 547744 2026-07-17T15:05:20Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547745 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to tabela z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, w zależności od ustawień, może być to liczba naturalna, lub numerkami oddzielone kropkami, tzn. w zależności od parametru {{LinkPatrz|poziomowo}}, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> a7nywdhwwyirluv9d98tqj7v6kxofwf 547746 547745 2026-07-17T15:12:11Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547746 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, w zależności od ustawień, może być to liczba naturalna, lub numerkami oddzielone kropkami, tzn. w zależności od parametru {{LinkPatrz|poziomowo}}, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> j92pq8pywifd8flz8dug2vqz1g5nzy7 547748 547746 2026-07-17T15:16:00Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547748 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, w zależności od ustawień, może być to liczba naturalna, lub numerkami oddzielone kropkami, tzn. w zależności od parametru {{LinkPatrz|poziomowo}}, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 5hkmzs6uxgk7fvdhbc60aughwe8ezuj 547749 547748 2026-07-17T15:39:36Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547749 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, w zależności od ustawień, może być to liczba naturalna, lub numerkami oddzielone kropkami, tzn. w zależności od parametru {{LinkPatrz|poziomowo}}, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozzdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawwdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowwanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> oi1tp9xj8i87g0la45x0bi1wvknxjy9 547750 547749 2026-07-17T15:40:02Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547750 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, w zależności od ustawień, może być to liczba naturalna, lub numerkami oddzielone kropkami, tzn. w zależności od parametru {{LinkPatrz|poziomowo}}, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawwdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowwanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> he0l1wp5nxn6rndlf3ntca7n9no06ga 547751 547750 2026-07-17T15:48:20Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547751 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, w zależności od ustawień, może być to liczba naturalna, lub numerkami oddzielone kropkami, tzn. w zależności od parametru {{LinkPatrz|poziomowo}}, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawwdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowwanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> qgl5qdvc1dupc0o0wjz2g8gxytpjwhc 547752 547751 2026-07-17T15:49:30Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547752 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, w zależności od ustawień, może być to liczba naturalna, lub numerkami oddzielone kropkami, tzn. w zależności od parametru {{LinkPatrz|poziomowo}}, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> qnsffnl5kgnq6fnipmbxw3as77jun26 547753 547752 2026-07-17T16:01:57Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547753 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> m02wb8vtf6kbeokxbbdjm6cknz1b7o7 547754 547753 2026-07-17T16:24:00Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547754 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinnkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabeleZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści, jeśli on nie istnieje, wtedyjest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak: {{LinZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> e9zmkobgupukrdlz2mhfcvfjyszlkq8 547755 547754 2026-07-17T16:24:58Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547755 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinnkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabeleZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści, jeśli on nie istnieje, wtedyjest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> e2whu7qevli91g6b5ohqzff9lzqol2a 547756 547755 2026-07-17T16:25:31Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547756 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabeleZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści, jeśli on nie istnieje, wtedyjest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 8dw7jawbobrlrm8p3uy0wae7c6kxy3p 547757 547756 2026-07-17T16:26:48Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547757 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści, jeśli on nie istnieje, wtedyjest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> nbjuluwno2wlosqbouwtgxj1um68gug 547758 547757 2026-07-17T16:27:09Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547758 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści, jeśli on nie istnieje, wtedyjest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 2b29qb1yg2a6fzn9hvym4r0ne8vglum 547759 547758 2026-07-17T16:30:13Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547759 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści, jeśli on nie istnieje, wtedyjest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 6amzd62mu17red6u6hkbeduxdpifo9s 547760 547759 2026-07-17T16:31:54Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547760 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> tc9w8xyv1n9nytw9q9rpknr8j0ifvfy 547762 547760 2026-07-17T18:30:55Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} */ 547762 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} {{LinkPatrz|nazwa}} jest niepuste, przeciwnie jest wyświetlananazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 0o0px57ap464uiewb8paog1d43hhea3 547763 547762 2026-07-17T18:34:31Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} */ 547763 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} {{LinkPatrz|nazwa}} jest niepuste, przeciwnie jest wyświetlananazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== ===== Dalsza część funkcji ===== ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 3sm40x3qn40msiewpgbsb408nu7zsw1 547764 547763 2026-07-17T18:39:03Z Persino 2851 /* {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} */ 547764 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} {{LinkPatrz|nazwa}} jest niepuste, przeciwnie jest wyświetlananazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== ===== Dalsza część funkcji ===== ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 1amj3qccnwnu1xytxz9tal2dg40isxo 547765 547764 2026-07-17T18:44:04Z Persino 2851 /* {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} */ 547765 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} {{LinkPatrz|nazwa}} jest niepuste, przeciwnie jest wyświetlananazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu. ===== Dalsza część funkcji ===== ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> tmlovyw5mwutulqczz5u4b1h0heey49 547766 547765 2026-07-17T18:45:35Z Persino 2851 /* {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} */ 547766 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} {{LinkPatrz|nazwa}} jest niepuste, przeciwnie jest wyświetlananazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. ===== Dalsza część funkcji ===== ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> sfapoeb96ektycrnkcge6f1hb3xy8g1 547767 547766 2026-07-17T18:53:06Z Persino 2851 /* {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} */ 547767 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} {{LinkPatrz|nazwa}} jest niepuste, przeciwnie jest wyświetlananazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. ===== Dalsza część funkcji ===== ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> j7gjphakkfsrwlty2259tevtl4hc08q 547768 547767 2026-07-17T18:56:01Z Persino 2851 547768 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. ===== Dalsza część funkcji ===== ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 9egnyf5bvcdals7ztbdtktswps8i9bd 547769 547768 2026-07-17T18:58:00Z Persino 2851 /* {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} */ 547769 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{Patrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część funkcji ===== ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> flz1cd5alend2y6bqy0lpsxjeb4vhk7 547770 547769 2026-07-17T18:59:38Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547770 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{Patrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część funkcji ===== ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> gzke9u703zdiq8y1wv7y4pdfm363d2a 547771 547770 2026-07-17T19:00:54Z Persino 2851 /* {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} */ 547771 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część funkcji ===== ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 0hrj72rmscw5g0amu80s9jatfyuy68q 547772 547771 2026-07-17T19:04:15Z Persino 2851 /* {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} */ 547772 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część funkcji ===== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> jsltw4x4x70kezj6hmvdepbbxvgtqh4 547773 547772 2026-07-17T19:05:15Z Persino 2851 /* Dalsza część funkcji */ 547773 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część funkcji ===== ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> nnxzezqgjnufwd81kohk8gmqmhq6vy6 547774 547773 2026-07-17T19:09:20Z Persino 2851 /* Dalsza część funkcji */ 547774 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część funkcji ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 9ug8gqyp4au2d776204trce9lycp5a7 547775 547774 2026-07-17T19:14:40Z Persino 2851 /* Dalsza część funkcji */ 547775 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowaanie sięnie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część funkcji ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}.Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 31pa308a2eduxn0ymkue132rddf624o 547776 547775 2026-07-17T19:20:24Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547776 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część funkcji ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}.Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 490tcch8am5qh9k8ttzcjujzgictp1l 547777 547776 2026-07-17T19:32:50Z Persino 2851 /* Dalsza część funkcji */ 547777 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część funkcji ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}.Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkPatrz|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> m2yv3xjrnh22lyw9tr5g96kvc5k92rl 547778 547777 2026-07-17T19:33:38Z Persino 2851 /* Dalsza część funkcji */ 547778 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część funkcji ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}.Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> px6f1mfd01calmqh1fh9szhmqaokvfb 547779 547778 2026-07-17T19:41:49Z Persino 2851 /* Dalsza część funkcji */ 547779 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część funkcji ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}.Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> nj3i5zo2drsejw3hcijdcihgfsbd1ij 547780 547779 2026-07-17T19:43:18Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} */ 547780 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} podobnie jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer spisu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}.Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> sct7gxjw2rz9v8wd73c0ib620ij2608 547781 547780 2026-07-17T20:09:13Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 547781 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}. === {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} === Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spiach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. Rozdziały, według funkcji, w rozdziałe głównym spisu, są liczone względem tego rozdziału. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} === Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNumerArtykuluNaTabele(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. === {{Śródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} === Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. === {{Śródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} === Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}.Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=table.concat|b=tak}}}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.jsonEncode|b=tak}}}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> local tab_dane_ksiazki=nil; ... PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> e1va9roqwrm8ydursj9ipenv0i8d3ah Dyskusja wikipedysty:BJPB110 3 63745 547729 547576 2026-07-17T12:31:03Z Persino 2851 547729 wikitext text/x-wiki {{Witaj}} [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:02, 14 lip 2026 (CEST) == Filtr nadużyć == Już możesz tworzyć swoją stronę główną na [[Wikipedysty:BJPB110]]![[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:30, 17 lip 2026 (CEST) gd47r8dz5js1delnb9akuk8zl5injtj 547730 547729 2026-07-17T12:31:19Z Persino 2851 /* Filtr nadużyć */ 547730 wikitext text/x-wiki {{Witaj}} [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 21:02, 14 lip 2026 (CEST) == Filtr nadużyć == Już możesz tworzyć swoją stronę główną na [[Wikipedysty:BJPB110]]! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 14:30, 17 lip 2026 (CEST) fepfpyamebbfx6yf8f9t5np0y7p0j7q Żeglarz jachtowy/Kurs względem wiatru 0 63768 547784 2026-07-18T05:19:31Z BJPB110 38631 Utworzono nową stronę „[[Plik:Kursy względem wiatru.jpg|thumb]] Kurs względem wiatru oznacza kąt między osią jachtu a kierunkiem wiatru. Kurs pełniejszy - bliższy fordewindowi. Kurs ostrzejszy - bliższy bajdewindowi ==Kursy względem wiatru== ===Kąt martwy=== Mając wiatr (prawie) całkowicie od przodu, żaden statek żaglowy nie jest w stanie płynąć. Wielkość kąta martwego zależy od właściwości statku - niektóre mogą płynąć z wiatrem już 15° od osi jachtu,…” 547784 wikitext text/x-wiki [[Plik:Kursy względem wiatru.jpg|thumb]] Kurs względem wiatru oznacza kąt między osią jachtu a kierunkiem wiatru. Kurs pełniejszy - bliższy fordewindowi. Kurs ostrzejszy - bliższy bajdewindowi ==Kursy względem wiatru== ===Kąt martwy=== Mając wiatr (prawie) całkowicie od przodu, żaden statek żaglowy nie jest w stanie płynąć. Wielkość kąta martwego zależy od właściwości statku - niektóre mogą płynąć z wiatrem już 15° od osi jachtu, inne potrzebują minimum 90°. ===Bajdewind=== Bajdewind to kurs, w którym wiatr wieje od przodu, ale nie całkowicie od dziobu (ale na skos). Dzieli się na ostry (bliżej kąta martwego) i pełny (dalej od kąta martwego). ===Półwiatr=== Półwiatr to kurs, przy którym wiatr wieje od boku. ===Baksztag=== W baksztagu wiatr wieje od tyłu,ale na skos. ===Fordewind=== Fordewind to kurs całkowicie z wiatrem - wiatr wieje od rufy. ==Halsy== Jeżeli wiatr wieje od prawej strony, jacht płynie halsem prawym - żagle są na lewej burcie. Jeśli wiatr wieje od lewej - jest to lewy hals i żagle są po prawej. b65mg34dl0qhuif5lmphhr9asql6xvn 547785 547784 2026-07-18T10:06:47Z Persino 2851 /* Baksztag */ 547785 wikitext text/x-wiki [[Plik:Kursy względem wiatru.jpg|thumb]] Kurs względem wiatru oznacza kąt między osią jachtu a kierunkiem wiatru. Kurs pełniejszy - bliższy fordewindowi. Kurs ostrzejszy - bliższy bajdewindowi ==Kursy względem wiatru== ===Kąt martwy=== Mając wiatr (prawie) całkowicie od przodu, żaden statek żaglowy nie jest w stanie płynąć. Wielkość kąta martwego zależy od właściwości statku - niektóre mogą płynąć z wiatrem już 15° od osi jachtu, inne potrzebują minimum 90°. ===Bajdewind=== Bajdewind to kurs, w którym wiatr wieje od przodu, ale nie całkowicie od dziobu (ale na skos). Dzieli się na ostry (bliżej kąta martwego) i pełny (dalej od kąta martwego). ===Półwiatr=== Półwiatr to kurs, przy którym wiatr wieje od boku. ===Baksztag=== W baksztagu wiatr wieje od tyłu, ale na skos. ===Fordewind=== Fordewind to kurs całkowicie z wiatrem - wiatr wieje od rufy. ==Halsy== Jeżeli wiatr wieje od prawej strony, jacht płynie halsem prawym - żagle są na lewej burcie. Jeśli wiatr wieje od lewej - jest to lewy hals i żagle są po prawej. kh89bhropqpg0q6cb4qd7nt9mtj6r96