Wikibooks plwikibooks https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna MediaWiki 1.47.0-wmf.22 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 Szablon:Cytuj 10 31188 558114 558003 2026-09-30T16:53:02Z Persino 2851 558114 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:Cytuj/styles.css" /><!-- -->{{#switch:{{{Funkcja|auto}}} | custom = {{Jeśli niepuste komunikat | 1 = {{{tryb|}}} | nie z warunku = tak | wtedy = {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja={{{Funkcja}}}|1={{{tryb}}}}} | przeciwnie = {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja={{{Funkcja}}}}} }} | custom2 = {{Jeśli niepuste komunikat | 1 = {{{tryb|}}} | nie z warunku = tak | wtedy = {{#invoke:Cytuj|{{{Funkcja}}}|1={{{tryb}}}}} | przeciwnie = {{#invoke:Cytuj|{{{Funkcja}}}}} }} | #default | auto = {{#invoke:Cytuj|auto}} }}{{#invoke:Sprawdź|Parametry|=problemy-w-cytuj {{((}}Kategoria{{!}}Szablon cytuj do sprawdzenia{{))}}|autor=text?|autor r=text|cytat=text|czasopismo=text-link|data=text?|data dostępu=text|format=text|inni=text|język=text|miejsce=text|odpowiedzialność=text|opublikowany=text|praca=text-link|rozdział=text-link|seria=text|url=uri*|url-status=text|tytuł=text-link|wydanie=text|wolumin=text|numer=text|wydawca=text|opis=text|redaktor=text|s=text-link|bibcode=text|doi=^10%.[1-9][0-9][0-9][0-9][0-9]*[%./].+$|isbn=^[0-9%- X]+$|issn=^[0-9][0-9][0-9][0-9]%-[0-9][0-9][0-9][0-9Xx]$|lccn=text|oclc=text|pmc=text|pmid=text|arxiv=text|jstor=text|ol=text|id=text-link|archiwum=uri|odn={{#ifeq:{{{odn|}}}|{{{odn}}}|{{#switch:{{{odn}}}|nie|tak|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z=text|^{{odn/id}}.+$}}}}|zarchiwizowano=text|typ nośnika=text|dostęp=text|patent=text|kropka=text-link}}<!-- -->{{#if:{{#invoke:Sprawdź|pola z gołymi linkami|url=|archiwum=|adres=}} |{{#switch:{{#invoke:Pudełko|Typ jednostki 2|obsługiwane jednostki jako nieopisowe strony=tak}} |artykuł={{Kategoria|Szablon cytuj (artykuły) - gołe linki}}{{Span|klasa=problemy-w-cytuj|styl=display:none;|gołe linki: {{#invoke:Sprawdź|pola z gołymi linkami|url=|archiwum=}}}} |artykuł dla dzieci={{Kategoria|Szablon cytuj (artykuły dla dzieci) - gołe linki}}{{Span|klasa=problemy-w-cytuj|styl=display:none;|gołe linki: {{#invoke:Sprawdź|pola z gołymi linkami|url=|archiwum=}}}} |strona użytkownika={{Kategoria|Szablon cytuj (jednostki użytkowników) - gołe linki}}{{Span|klasa=problemy-w-cytuj|styl=display:none;|gołe linki: {{#invoke:Sprawdź|pola z gołymi linkami|url=|archiwum=}}}} |strona brudnopisu projektu={{Kategoria|Szablon cytuj (jednostki brudnopisu projektu) - gołe linki}}{{Span|klasa=problemy-w-cytuj|styl=display:none;|gołe linki: {{#invoke:Sprawdź|pola z gołymi linkami|url=|archiwum=}}}} |#default={{Kategoria|Szablon cytuj (strony niepodręcznikowe) - gołe linki}}}{{Span|styl=color:red;|gołe linki: {{#invoke:Sprawdź|pola z gołymi linkami|url=|archiwum=}}}} }}<!-- -->}}<!-- -->{{#if:{{{opis|}}}{{{kropka|}}} |{{#switch:{{#invoke:Pudełko|Typ jednostki 2|obsługiwane jednostki jako nieopisowe strony=tak}} |artykuł={{Kategoria|Szablon cytuj (artykuły) używa pól opisowych}} |artykuł dla dzieci={{Kategoria|Szablon cytuj (artykuły dla dzieci) używa pól opisowych}} |strona użytkownika={{Kategoria|Szablon cytuj (jednostki użytkowników) używa pól opisowych}} |strona brudnopisu projektu={{Kategoria|Szablon cytuj (jednostki brudnopisu projektu) używa pól opisowych}} |#default={{Kategoria|Szablon cytuj (strony niepodręcznikowe) używa pól opisowych}} }} }}<!-- -->{{#ifeq:tytuł|{{#invoke:Sprawdź|lista nazw niepustych argumentów}}|<!-- -->{{Span|klasa=problemy|atrybuty=aria-hidden="true" data-nosnippet|Tylko tytuł<!-- -->{{#switch:{{#invoke:Pudełko|Typ jednostki 2|obsługiwane jednostki jako nieopisowe strony=tak}} |artykuł={{Kategoria|Szablon cytuj (artykuły) do sprawdzenia}} |artykuł dla dzieci={{Kategoria|Szablon cytuj (artykuły dla dzieci) do sprawdzenia}} |strona użytkownika={{Kategoria|Szablon cytuj (jednostki użytkowników) do sprawdzenia}} |strona brudnopisu projektu={{Kategoria|Szablon cytuj (jednostki brudnopisu projektu) do sprawdzenia}} |#default={{Kategoria|Szablon cytuj (strony niepodręcznikowe) do sprawdzenia}} }}}}}}<!-- -->{{#ifeq:{{{opublikowany|}}}|{{{opublikowany}}}|<!--strona internetowa-->|<!-- -->{{#if:{{Dopasuj|ciąg={{{tytuł}}}|wzór=[Ii][Ss][Bb][Nn] *[0-9]}}|<!-- -->{{Span|klasa=problemy|atrybuty=aria-hidden="true" data-nosnippet> ISBN w tytule<!-- -->{{#switch:{{#invoke:Pudełko|Typ jednostki 2|obsługiwane jednostki jako nieopisowe strony=tak}} |artykuł={{Kategoria|Szablon cytuj (artykuły) do sprawdzenia}} |artykuł dla dzieci={{Kategoria|Szablon cytuj (artykuły dla dzieci) do sprawdzenia}} |strona użytkownika={{Kategoria|Szablon cytuj (jednostki użytkowników) do sprawdzenia}} |strona brudnopisu projektu={{Kategoria|Szablon cytuj (jednostki brudnopisu projektu) do sprawdzenia}} |#default={{Kategoria|Szablon cytuj (strony niepodręcznikowe) do sprawdzenia}} }}<!-- -->}}<!-- -->}}<!-- -->}}<!-- -->{{#if:{{{opublikowany|}}}{{{praca|}}}{{{patent|}}}{{#if:{{{autor r|}}}{{{rozdział|}}}{{{inni|}}}{{{odpowiedzialność|}}}{{{wydanie|}}}{{{wolumin|}}}{{{numer|}}}{{{opis|}}}{{{miejsce|}}}{{{wydawca|}}}{{{doi|}}}{{{isbn|}}}{{{lccn|}}}{{{issn|}}}{{{pmid|}}}{{{pmc|}}}{{{bibcode|}}}{{{oclc|}}}{{{arxiv|}}}{{{jstor|}}}{{{ol|}}}||{{{url|}}}}}||<!-- -->{{#if:{{{czasopismo|}}}|<!-- -->{{#if:{{{s|}}}{{{odn|}}}{{{doi|}}}{{{pmid|}}}{{{pmc|}}}{{{arxiv|}}}{{{jstor|}}}||<!-- -->{{Span|klasa=problemy|atrybuty=aria-hidden="true" data-nosnippet|Brak numerów stron w czasopiśmie}}<!-- -->{{#switch:{{#invoke:Pudełko|Typ jednostki 2|obsługiwane jednostki jako nieopisowe strony=tak}} |artykuł={{Kategoria|Szablon cytuj (artykuły) – brak strony}} |artykuł dla dzieci={{Kategoria|Szablon cytuj (artykuły dla dzieci) – brak strony}} |strona użytkownika={{Kategoria|Szablon cytuj (jednostki użytkowników) – brak strony}} |strona brudnopisu projektu={{Kategoria|Szablon cytuj (jednostki brudnopisu projektu) – brak strony}} |#default={{Kategoria|Szablon cytuj (strony niepodręcznikowe) – brak strony}} }}<!-- -->}}<!-- -->|{{#if:{{{s|}}}{{{odn|}}}||<!-- -->{{Span|klasa==problemy|atrybuty=aria-hidden="true" data-nosnippet|Brak numerów stron w książce}}<!-- -->{{#switch:{{#invoke:Pudełko|Typ jednostki 2|obsługiwane jednostki jako nieopisowe strony=tak}} |artykuł={{Kategoria|Szablon cytuj (artykuły) – brak strony}} |artykuł dla dzieci={{Kategoria|Szablon cytuj (artykuły dla dzieci) – brak strony}} |strona użytkownika={{Kategoria|Szablon cytuj (jednostki użytkowników) – brak strony}} |strona brudnopisu projektu={{Kategoria|Szablon cytuj (jednostki brudnopisu projektu) – brak strony}} |#default={{Kategoria|Szablon cytuj (strony niepodręcznikowe) – brak strony}} }}<!-- -->}}<!-- -->}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 4z6x8j56zz2f6gn6retcbo1h82psfx2 Szablon:Lua 10 32972 558087 558082 2026-09-30T12:22:32Z Persino 2851 558087 wikitext text/x-wiki <includeonly>{{#invoke:Pudełko|Ogólne pudełko | cecha = {{#invoke:Pudełko|Przedmiotowa cecha pudełka|pierwszy człon kategorii błędu=Szablony informacyjne|nieobsługiwane strony główne=tak|obsługiwane nieudokumentowane szablony jako szablony=tak|nazwy jednostki numerowane=tak|nazwa przestrzeni nazw i=Module|Template|Module}} | warunek niealternatywnego wywołania = {{Jeśli niepuste|{{{dokumentacja|}}}|{{#if:{{Dopasuj|ciąg={{#invoke:Pudełko|Nazwa jednostki}}|wzór=/{{#invoke:Techniczne|WzórDanejPrzestrzeniNazw|{{{strona|opis}}}|wyspecjalizowana=tak}}$}}||tak}}}} | alternatywne wywołanie = {{Div|styl=width:0;height:0}} | typ = wiadomość | nazwa = ombox | grafika = {{ikona|lua|35}} | tekst = '''Ten {{#switch: {{Np|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2}}|kanoniczna=tak}}|Template=szablon|Module=moduł|#default=szablon}} {{#if: {{{1|}}} |wykorzystuje{{#if:{{{2|}}}|&#58;}} {{#invoke:Ramka|Powtarzaj|wyliczanka=tak|{{!((}}{{((}}#invoke:Pudełko{{!}}Pełna nazwa jednostki 2{{!}}numer jednostki{{=}}{{((}}_{{))}}{{!}}nazwa przestrzeni nazw i{{=}}Module{{))}}{{))!}}}}{{#if:{{{2|}}}|,}} napisan{{#if:{{{2|}}}|e|y}} w |wykorzystuje}} {{lpg|Lua}}.'''{{Br}}{{Small|Jeśli chcesz się nauczyć stosować Lua, dalsze informacje możesz znaleźć na stronie {{lpr2|Lua}}. Wszelkie testowe skrypty należy tworzyć w {{ld|Brudnopis|brudnopisie}} dla modułów Lua.}} | kategorie = {{#if:{{{bez kategorii|}}}|| {{#if:{{Jeśli niepuste |{{Dopasuj|ciąg={{PAGENAME}}|wzór=^(Wikibooks/Przykład%/.+%/[^%/]+%/)[Kk][Oo][Dd][%s_]*%d+}} |{{Dopasuj|ciąg={{PAGENAME}}|wzór=^(Wikibooks/Przykład%/.+%/[^%/]+)}} }} |{{Kategoria|Szablony wykorzystujące moduły Lua/Przykłady, w modułach Lua w Scribunto, przygotowane specjalnie dla dokumentacji funkcji bibliotecznych}} |{{#if:{{Jeśli niepuste |{{Dopasuj|ciąg={{PAGENAME}}|wzór=^(Wikibooks/Przykład%/.+%/[^%/]+%/)[Ww][Ii][Kk][Ii][Kk][Oo][Dd][%s_]*%d+}} |{{Dopasuj|ciąg={{PAGENAME}}|wzór=^(Wikibooks/Przykład%/.+%/[^%/]+)}} }} |{{Kategoria|Szablony wykorzystujące moduły Lua/Przykłady, w modułach Lua w Scribunto, przygotowane specjalnie dla dokumentacji funkcji ramek}} |{{#if:{{Dopasuj|ciąg={{FULLPAGENAME}}|wzór=^Szablon:Książka:.*$}} |{{Kategoria|Szablony wykorzystujące moduły Lua/Szablony pomocnicze do tworzenia książek}} |{{Kategoria|Szablony wykorzystujące moduły Lua}} }} }} }} }} }}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 7bbt8xnnn6c7keg03xkqvbq4tiy2pb7 558088 558087 2026-09-30T12:25:43Z Persino 2851 558088 wikitext text/x-wiki <includeonly>{{#invoke:Pudełko|Ogólne pudełko | cecha = {{#invoke:Pudełko|Przedmiotowa cecha pudełka|pierwszy człon kategorii błędu=Szablony informacyjne|nieobsługiwane strony główne=tak|obsługiwane nieudokumentowane szablony jako szablony=tak|nazwy jednostki numerowane=tak|nazwa przestrzeni nazw i=Module|Template|Module}} | warunek niealternatywnego wywołania = {{Jeśli niepuste|{{{dokumentacja|}}}|{{#if:{{Dopasuj|ciąg={{#invoke:Pudełko|Nazwa jednostki}}|wzór=/{{#invoke:Techniczne|WzórDanejPrzestrzeniNazw|{{{strona|opis}}}|wyspecjalizowana=tak}}$}}||tak}}}} | alternatywne wywołanie = {{Div|styl=width:0;height:0}} | typ = wiadomość | nazwa = ombox | grafika = {{ikona|lua|35}} | tekst = '''Ten {{#switch: {{Np|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2}}|kanoniczna=tak}}|Template=szablon|Module=moduł|#default=szablon}} {{#if: {{{1|}}} |wykorzystuje{{#if:{{{2|}}}|&#58;}} {{#invoke:Ramka|Powtarzaj|wyliczanka=tak|{{!((}}{{((}}#invoke:Pudełko{{!}}Pełna nazwa jednostki 2{{!}}numer jednostki{{=}}{{((}}_{{))}}{{!}}nazwa przestrzeni nazw i{{=}}Module{{))}}{{))!}}}}{{#if:{{{2|}}}|,}} napisan{{#if:{{{2|}}}|e|y}} w |wykorzystuje}} {{lpg|Lua}}.'''{{Br}}{{Small|Jeśli chcesz się nauczyć stosować Lua, dalsze informacje możesz znaleźć na stronie {{lpr2|Lua}}. Wszelkie testowe skrypty należy tworzyć w {{ld|Brudnopis|brudnopisie}} dla modułów Lua.}} | kategorie = {{#if:{{{bez kategorii|}}}|| {{#if:{{Jeśli niepuste |{{Dopasuj|ciąg={{FULLPAGENAME}}|wzór=^{{Ns:Module}}:(Wikibooks/Przykład%/.+%/[^%/]+%/)[Kk][Oo][Dd][%s_]*%d+}} |{{Dopasuj|ciąg={{FULLPAGENAME}}|wzór=^{{Ns:Module}}:(Wikibooks/Przykład%/.+%/[^%/]+)}} }} |{{Kategoria|Szablony wykorzystujące moduły Lua/Przykłady, w modułach Lua w Scribunto, przygotowane specjalnie dla dokumentacji funkcji bibliotecznych}} |{{#if:{{Jeśli niepuste |{{Dopasuj|ciąg={{FULLPAGENAME}}|wzór=^{{Ns:Template}}:(Wikibooks/Przykład%/.+%/[^%/]+%/)[Ww][Ii][Kk][Ii][Kk][Oo][Dd][%s_]*%d+}} |{{Dopasuj|ciąg={{FULLPAGENAME}}|wzór=^{{Ns:Template}}:(Wikibooks/Przykład%/.+%/[^%/]+)}} }} |{{Kategoria|Szablony wykorzystujące moduły Lua/Przykłady, w modułach Lua w Scribunto, przygotowane specjalnie dla dokumentacji funkcji ramek}} |{{#if:{{Dopasuj|ciąg={{FULLPAGENAME}}|wzór=^Szablon:Książka:.*$}} |{{Kategoria|Szablony wykorzystujące moduły Lua/Szablony pomocnicze do tworzenia książek}} |{{Kategoria|Szablony wykorzystujące moduły Lua}} }} }} }} }} }}</includeonly><noinclude>{{Dokumentacja}}</noinclude> f4luu75247b1otei2a1i6owaw22049g 558112 558088 2026-09-30T13:39:18Z Persino 2851 558112 wikitext text/x-wiki <includeonly>{{#invoke:Pudełko|Ogólne pudełko | cecha = {{#invoke:Pudełko|Przedmiotowa cecha pudełka|pierwszy człon kategorii błędu=Szablony informacyjne|nieobsługiwane strony główne=tak|obsługiwane nieudokumentowane szablony jako szablony=tak|nazwy jednostki numerowane=tak|nazwa przestrzeni nazw i=Module|Template|Module}} | warunek niealternatywnego wywołania = {{Jeśli niepuste|{{{dokumentacja|}}}|{{#if:{{Dopasuj|ciąg={{#invoke:Pudełko|Nazwa jednostki}}|wzór=/{{#invoke:Techniczne|WzórDanejPrzestrzeniNazw|{{{strona|opis}}}|wyspecjalizowana=tak}}$}}||tak}}}} | alternatywne wywołanie = {{DivLinia}} | typ = wiadomość | nazwa = ombox | grafika = {{ikona|lua|35}} | tekst = '''Ten {{#switch: {{Np|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2}}|kanoniczna=tak}}|Template=szablon|Module=moduł|#default=szablon}} {{#if: {{{1|}}} |wykorzystuje{{#if:{{{2|}}}|&#58;}} {{#invoke:Ramka|Powtarzaj|wyliczanka=tak|{{!((}}{{((}}#invoke:Pudełko{{!}}Pełna nazwa jednostki 2{{!}}numer jednostki{{=}}{{((}}_{{))}}{{!}}nazwa przestrzeni nazw i{{=}}Module{{))}}{{))!}}}}{{#if:{{{2|}}}|,}} napisan{{#if:{{{2|}}}|e|y}} w |wykorzystuje}} {{lpg|Lua}}.'''{{Br}}{{Small|Jeśli chcesz się nauczyć stosować Lua, dalsze informacje możesz znaleźć na stronie {{lpr2|Lua}}. Wszelkie testowe skrypty należy tworzyć w {{ld|Brudnopis|brudnopisie}} dla modułów Lua.}} | kategorie = {{#if:{{{bez kategorii|}}}|| {{#if:{{Jeśli niepuste |{{Dopasuj|ciąg={{FULLPAGENAME}}|wzór=^{{Ns:Module}}:(Wikibooks/Przykład%/.+%/[^%/]+%/)[Kk][Oo][Dd][%s_]*%d+}} |{{Dopasuj|ciąg={{FULLPAGENAME}}|wzór=^{{Ns:Module}}:(Wikibooks/Przykład%/.+%/[^%/]+)}} }} |{{Kategoria|Szablony wykorzystujące moduły Lua/Przykłady, w modułach Lua w Scribunto, przygotowane specjalnie dla dokumentacji funkcji bibliotecznych}} |{{#if:{{Jeśli niepuste |{{Dopasuj|ciąg={{FULLPAGENAME}}|wzór=^{{Ns:Template}}:(Wikibooks/Przykład%/.+%/[^%/]+%/)[Ww][Ii][Kk][Ii][Kk][Oo][Dd][%s_]*%d+}} |{{Dopasuj|ciąg={{FULLPAGENAME}}|wzór=^{{Ns:Template}}:(Wikibooks/Przykład%/.+%/[^%/]+)}} }} |{{Kategoria|Szablony wykorzystujące moduły Lua/Przykłady, w modułach Lua w Scribunto, przygotowane specjalnie dla dokumentacji funkcji ramek}} |{{#if:{{Dopasuj|ciąg={{FULLPAGENAME}}|wzór=^Szablon:Książka:.*$}} |{{Kategoria|Szablony wykorzystujące moduły Lua/Szablony pomocnicze do tworzenia książek}} |{{Kategoria|Szablony wykorzystujące moduły Lua}} }} }} }} }} }}</includeonly><noinclude>{{Dokumentacja}}</noinclude> f21lj7m7sw6z4i7hf7wj87mp5uxglk1 Szablon:LinkUstęp/opis 10 42099 558093 553141 2026-09-30T12:51:47Z Persino 2851 /* Użycie */ 558093 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Skomplikowany}} {{Szablony opakowań linków wewnętrznych do ustępu}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> {{#if:{{LinkUstęp/skrót|{{ROOTPAGENAME}}}}|{{Skrót szablonu|{{LinkUstęp/skrót|{{ROOTPAGENAME}}}}}}|{{DivLinia}}}} == Użycie == Jest to specjalistyczny szablon linków inteligentnych (tzw. linki inteligentne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie: {{s|Link wewnętrzny|z przestrzenią=tak}}, który się znajduje pod tabelą wywołania szablonowego: {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów CSS, które są od nadawania barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody, a do tego celu używa {{NS|k=d|l=tak|pk=d}}. Służy do robienia odnośników w tekście do jakieś strony lub na tej samej, ewentualnie do rozdziału w niej, {{#switch:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link(%u%l+)}}|#default=na tym samym projekcie|Pedia=na projekcie siostrzanym lub językowym|Ustęp=na tym samym projekcie, siostrzanym lub językowym}}, szablon wyświetla link, z nazwą, którą jest nagłówek, nazwą oddzieloną od przestrzeni dwukropkiem, która nie jest przestrzenią nazw w ogólności, ale może być, wtedy ta nazwa linku nie nie może zawierać znaku {{Code|/}}, podstroną lub całą stroną (bez przestrzeni nazw, do której należy strona). Obliczenia są w tym szablonie dokonywane {{LinkUstęp/opis/użycie|{{ROOTPAGENAME}}}}.<!-- -->{{LinkUstęp/opis/linki|{{ROOTPAGENAME}}}} == Skrót szablonu == Szablon {{s|{{ROOTPAGENAME}}}} posiada swój skrót: {{s|{{LinkUstęp/skrót|{{ROOTPAGENAME}}}}}}. == Opis parametrów == {{LinkUstęp/opis/wywołania|{{ROOTPAGENAME}}}}<!-- --> ; Parametry szablonu * {{Code|1}}, {{Code|s}} lub {{Code|strona}} = nazwa strony bez nazwy przestrzeni nazw{{#switch:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link(%u%l+)}}|Pedia=.|#default=,{{#ifeq:{{ROOTPAGENAME}}|LinkUstęp|&nbsp; * {{#ifeq:{{ROOTPAGENAME}}|LinkUstęp|{{Code|2}}, &nbsp;}}{{Code|m}} lub {{Code| miano przestrzeni nazw }} = miano przestrzeni nazw, w której jest ta strona - (opcjonalny, domyślnie przyjmuje wartość {{Np|(main)|link=tak}}),}} * {{#ifeq:{{ROOTPAGENAME}}|LinkUstęp|{{Code|3}},&nbsp;}}{{Code|k}} lub {{Code| klucz projektu }} = skrót projektu, np. w to skrót do Wikipedia, używany zamiast zmiennych: {{Code|kod języka}} i {{Code|kod projektu}} - (opcjonalny, domyślnie wartość pusta), *{{Code|kj}} lub {{Code|kod języka}} = kod języka projektu, używany tylko w wersji nazwanej zamiast {{Code|klucz projektu}} (lub w postaci {{Code|3}}) - (opcjonalny, domyślnie wartość pusta), * {{Code|kp}} lub {{Code|kod projektu}} = kod projektu, używany tylko w wersji nazwanej, zamiast {{Code|klucz projektu}} (lub w postaci {{Code|3}}) - (opcjonalny, domyślnie wartość pusta){{#ifeq:{{ROOTPAGENAME}}|LinkUstęp|, * {{Code|4}}, {{Code|w}} lub {{Code|wyświetlana}} - wyświetlana nazwa strony - (opcjonalny).|.}}}} * Operacje dokonywane na nazwie linku generowaną przez szablon, pisz: ** {{Code|b}} lub {{Code|od dużej}} - od dużej litery, ** {{Code|m}} lub {{Code|od małej}} - od małej litery. ---- Nagłówek jest to część nazwy strony, która jest najbliższa końcowi, oddzieloną od pozostałej części za pomocą znaku {{Code|#}}, podobnie jest z definicją podstrony, tzn. szuka najpierw względem {{Code|:}} (wydzielona ta część podstrony nie może zawierać {{Code|/}}), a później {{Code|/}}, jeżeli nie znalazł poprzedniego. ---- Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} i {{Parametr|bez przetwarzania|tak}}, które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego, a także parametr {{Parametr|analiza|tak}} (lub jego skrót: {{Parametr|a}}) do głębszego przetwarzania linkowego, ważniejszym od tego jest wcześniejszy ostatni parametr. == Przykład == ; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać.{{Hr}} {{LinkUstęp/opis/przykłady|{{ROOTPAGENAME}}}} == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "kod języka": { "description": "Kod języka projektu używany zmiast \"klucz projektu\".", "type": "string" }, "kod projektu": { "description": "Kod projektu używany zamiast \"klucz projektu\".", "type": "string" }, "klucz projektu": { "description": "klucz projektu, używany zamiast: \"kod języka\" i \"kod projektu\".", "type": "string", "aliases": [ "3" ] }, "miano przestrzeni nazw": { "aliases": [ "2" ], "description": "Nazwa przestrzeni nazw, do której ma linkować link.", "type": "string" }, "strona": { "description": "Nazwa strony.", "type": "wiki-page-name", "required": true, "aliases": [ "1" ] } }, "description": "Szablon służy do robienia odnośników w tekście.", "paramOrder": [ "strona", "miano przestrzeni nazw", "klucz projektu", "kod języka", "kod projektu" ] } </templatedata> ==Zobacz też== {{Link wewnętrzny/opis/Zobacz też}} {{Szablony linków wewnątrz- i między-serwisowych}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{#switch:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link(%u%l+)}} | Pedia = {{Kategoria|Szablony linków inteligentnych, do polskojęzycznej Wikipedii, do ustępu}} | Ustęp = {{Kategoria|Szablony linków inteligentnych do ustępu|sortuj spacją=tak}} | #default = {{Kategoria|Szablony linków inteligentnych, na bieżącym projekcie, do ustępu}} }}</includeonly> ljf9sxearewnz0qnyfp4sq6jof0i3ke 558096 558093 2026-09-30T12:54:25Z Persino 2851 /* Użycie */ 558096 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Skomplikowany}} {{Szablony opakowań linków wewnętrznych do ustępu}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> {{#if:{{LinkUstęp/skrót|{{ROOTPAGENAME}}}}|{{Skrót szablonu|{{LinkUstęp/skrót|{{ROOTPAGENAME}}}}}}|{{DivLinia}}}} == Użycie == Jest to specjalistyczny szablon linków inteligentnych (tzw. linki inteligentne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie: {{s|Link wewnętrzny|z przestrzenią=tak}}, który się znajduje pod tabelą wywołania szablonowego: {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów {{lpg|CSS}}, które są od nadawania barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody, a do tego celu używa {{NS|k=d|l=tak|pk=d}}. Służy do robienia odnośników w tekście do jakieś strony lub na tej samej, ewentualnie do rozdziału w niej, {{#switch:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link(%u%l+)}}|#default=na tym samym projekcie|Pedia=na projekcie siostrzanym lub językowym|Ustęp=na tym samym projekcie, siostrzanym lub językowym}}, szablon wyświetla link, z nazwą, którą jest nagłówek, nazwą oddzieloną od przestrzeni dwukropkiem, która nie jest przestrzenią nazw w ogólności, ale może być, wtedy ta nazwa linku nie nie może zawierać znaku {{Code|/}}, podstroną lub całą stroną (bez przestrzeni nazw, do której należy strona). Obliczenia są w tym szablonie dokonywane {{LinkUstęp/opis/użycie|{{ROOTPAGENAME}}}}.<!-- -->{{LinkUstęp/opis/linki|{{ROOTPAGENAME}}}} == Skrót szablonu == Szablon {{s|{{ROOTPAGENAME}}}} posiada swój skrót: {{s|{{LinkUstęp/skrót|{{ROOTPAGENAME}}}}}}. == Opis parametrów == {{LinkUstęp/opis/wywołania|{{ROOTPAGENAME}}}}<!-- --> ; Parametry szablonu * {{Code|1}}, {{Code|s}} lub {{Code|strona}} = nazwa strony bez nazwy przestrzeni nazw{{#switch:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link(%u%l+)}}|Pedia=.|#default=,{{#ifeq:{{ROOTPAGENAME}}|LinkUstęp|&nbsp; * {{#ifeq:{{ROOTPAGENAME}}|LinkUstęp|{{Code|2}}, &nbsp;}}{{Code|m}} lub {{Code| miano przestrzeni nazw }} = miano przestrzeni nazw, w której jest ta strona - (opcjonalny, domyślnie przyjmuje wartość {{Np|(main)|link=tak}}),}} * {{#ifeq:{{ROOTPAGENAME}}|LinkUstęp|{{Code|3}},&nbsp;}}{{Code|k}} lub {{Code| klucz projektu }} = skrót projektu, np. w to skrót do Wikipedia, używany zamiast zmiennych: {{Code|kod języka}} i {{Code|kod projektu}} - (opcjonalny, domyślnie wartość pusta), *{{Code|kj}} lub {{Code|kod języka}} = kod języka projektu, używany tylko w wersji nazwanej zamiast {{Code|klucz projektu}} (lub w postaci {{Code|3}}) - (opcjonalny, domyślnie wartość pusta), * {{Code|kp}} lub {{Code|kod projektu}} = kod projektu, używany tylko w wersji nazwanej, zamiast {{Code|klucz projektu}} (lub w postaci {{Code|3}}) - (opcjonalny, domyślnie wartość pusta){{#ifeq:{{ROOTPAGENAME}}|LinkUstęp|, * {{Code|4}}, {{Code|w}} lub {{Code|wyświetlana}} - wyświetlana nazwa strony - (opcjonalny).|.}}}} * Operacje dokonywane na nazwie linku generowaną przez szablon, pisz: ** {{Code|b}} lub {{Code|od dużej}} - od dużej litery, ** {{Code|m}} lub {{Code|od małej}} - od małej litery. ---- Nagłówek jest to część nazwy strony, która jest najbliższa końcowi, oddzieloną od pozostałej części za pomocą znaku {{Code|#}}, podobnie jest z definicją podstrony, tzn. szuka najpierw względem {{Code|:}} (wydzielona ta część podstrony nie może zawierać {{Code|/}}), a później {{Code|/}}, jeżeli nie znalazł poprzedniego. ---- Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} i {{Parametr|bez przetwarzania|tak}}, które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego, a także parametr {{Parametr|analiza|tak}} (lub jego skrót: {{Parametr|a}}) do głębszego przetwarzania linkowego, ważniejszym od tego jest wcześniejszy ostatni parametr. == Przykład == ; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać.{{Hr}} {{LinkUstęp/opis/przykłady|{{ROOTPAGENAME}}}} == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "kod języka": { "description": "Kod języka projektu używany zmiast \"klucz projektu\".", "type": "string" }, "kod projektu": { "description": "Kod projektu używany zamiast \"klucz projektu\".", "type": "string" }, "klucz projektu": { "description": "klucz projektu, używany zamiast: \"kod języka\" i \"kod projektu\".", "type": "string", "aliases": [ "3" ] }, "miano przestrzeni nazw": { "aliases": [ "2" ], "description": "Nazwa przestrzeni nazw, do której ma linkować link.", "type": "string" }, "strona": { "description": "Nazwa strony.", "type": "wiki-page-name", "required": true, "aliases": [ "1" ] } }, "description": "Szablon służy do robienia odnośników w tekście.", "paramOrder": [ "strona", "miano przestrzeni nazw", "klucz projektu", "kod języka", "kod projektu" ] } </templatedata> ==Zobacz też== {{Link wewnętrzny/opis/Zobacz też}} {{Szablony linków wewnątrz- i między-serwisowych}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{#switch:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link(%u%l+)}} | Pedia = {{Kategoria|Szablony linków inteligentnych, do polskojęzycznej Wikipedii, do ustępu}} | Ustęp = {{Kategoria|Szablony linków inteligentnych do ustępu|sortuj spacją=tak}} | #default = {{Kategoria|Szablony linków inteligentnych, na bieżącym projekcie, do ustępu}} }}</includeonly> b0cwjo8nwwg2od96y2md2ljm0mt18es Szablon:LinkOgólne/opis 10 48166 558091 553139 2026-09-30T12:50:00Z Persino 2851 /* Opis szablonu */ 558091 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Linki}} {{Skomplikowany}} {{Szablony opakowań linków wewnętrznych}} {{#if:{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|{{Skrót szablonu|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}}}|{{DivLinia}}}} <!--DODAWAJ KATEGORIE NA DOLE STRONY --> == Opis szablonu == Jest to specjalistyczny szablon linków inteligentnych (tzw. linki inteligentne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie: {{s|Link wewnętrzny|z przestrzenią=tak}}, który się znajduje pod tabelą wywołania szablonowego: {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów CSS, które są od nadawania barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody, a do tego celu używa {{NS|k=d|l=tak|pk=d}}. Szablon {{s|LinkOgólne}} i jego pochodne w ich definicji, obsługują nazwy przestrzenie nazw kanoniczne (angielskie) lub w jakimś języku, na danym projekcie siostrzanych lub w ich wersjach językowych. Wystarczy podać nazwę kanoniczną przestrzeni nazw, a ta nazwa zostanie przetłumaczona na nazwę charakterystyczną dla danego projektu, jeżeli podamy parametr: {{Parametr|analiza|tak}} (skrót: {{Parametr|a|tak}}), bez: {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp|tak}}), w przeciwnym przypadku tego nie zrobi. Na przykład na projekcie bieżącym dla szablonów ogólnie nie między-projektowych, wyświetlana nazwa przestrzeni nazw zostanie przetłumaczona na nazwę charakterystyczną dla polskiego {{NS|pk=d|w=tak|l=tak}}, jeżeli ustawimy szablon, by wyświetlał to w nazwie linku, to je robi możliwie po przetłumaczeniu na język polski, ona w adresie linku nie zostanie przetłumaczona, chyba że podamy parametr {{Parametr|analiza|tak}} (lub jego skrót: {{Parametr|a|tak}}) według powyższej specyfikacji. Szablon zwykle nie tłumaczy w adresie linku nazwy przestrzeni nazw, np. na język polski lub inny, podanym w definicji tego szablonu, jeżeli jest nazwą kanoniczną podaną w definicji tego szablonu, a jeżeli nie, to nie ma czego tłumaczyć (bo w definicji szablonu pod zmienną: {{Code|miano przestrzeni nazw}} (skrót: {{Parametr|f}}), np. jest podane: {{Code|Wikibooks}}, zamiast: {{Code|Project}}), chyba że w przeciwnym wypadku, chcemy, by przetłumaczył na język charakterystyczny dla danego projektu, wskazanym przez szablon, wtedy należy podać parametr poniżej opisany do szablonu do głębszej analizy linkowej. {{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=2$}}|A nazwa przestrzeni nazw wyświetlana w nazwie linku za to zawsze zostanie przetłumaczona na nasz język.}} Szablon używa zmiennej: {{Code|miano przestrzeni nazw}} (skrót: {{Parametr|f}}), w sposób {{#switch:{{ROOTPAGENAME}}|LinkOgólne|LinkOgólne2=jawny (w postaci osobnego parametru) lub nie (w pierwszej zmiennej)|#default=niejawny (w postaci zmiennej w definicji tego szablonu, używając szablon {{s|LinkOgólne}} (skrót: {{s|lo}}))}}, w przeciwieństwie do {{s|Link wewnętrzny}}, który tego nie ma, tzn. nazwa przestrzeni nazw jest zawsze podana tam w sposób niejawny w postaci pierwszej zmiennej wraz z adresem linku na danym projekcie i kluczem projektu (wtedy nie ma osobnego parametru do interwiki) lub nie (w postaci zmiennej (zmiennych) do interwiki). == Skrót szablonu == Szablon {{s|{{ROOTPAGENAME}}}} posiada swój skrót: {{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}}}. == Użycie == {{LinkOgólne/opis/linki|{{ROOTPAGENAME}}}} {{LinkOgólne/opis/definicje|{{ROOTPAGENAME}}}} == Opis parametrów == {{#switch:{{ROOTPAGENAME}}|LinkWB= ; Pełne wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}}}}} ; Pełne wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}}}}} |LinkSpecjalna= ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|k{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}}}}} |LinkSpecjalna2= ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|k{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}}}}} |LinkOgólne= ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|k{{=}}|d{{=}}|f{{=}}|i{{=}}|w{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}|dyskusja{{=}}|miano przestrzeni nazw{{=}}|alias miana przestrzeni nazw{{=}}|wyświetl miano przestrzeni nazw{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}|d{{=}}|f{{=}}|i{{=}}|w{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}|dyskusja{{=}}|miano przestrzeni nazw{{=}}|alias miana przestrzeni nazw{{=}}|wyświetl miano przestrzeni nazw{{=}}}}}} |LinkOgólne2= ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|k{{=}}|d{{=}}|f{{=}}|i{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}|dyskusja{{=}}|miano przestrzeni nazw{{=}}|alias miana przestrzeni nazw{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}|d{{=}}|f{{=}}|i{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}|dyskusja{{=}}|miano przestrzeni nazw{{=}}|alias miana przestrzeni nazw{{=}}}}}} |#default={{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=[^2]$}}|{{#if:{{#invoke:Parametry|Not|{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=Specjalna2?$}}}}|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}| ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|k{{=}}|d{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}|dyskusja{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}|d{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}|dyskusja{{=}}}}}} | ; Pełne wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|d{{=}}}}}} ; Pełne wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|dyskusja{{=}}}}}} }}|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}| ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|k{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}}}}} | ; Pełne skrótowe wywołanie {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}}}}} ; Pełne wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}}}}} }}}}|{{#if:{{#invoke:Parametry|Not|{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=Specjalna2?$}}}}|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}| ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|k{{=}}|d{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}|dyskusja{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|po{{=}}|kj{{=}}|kp{{=}}|d{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}|dyskusja{{=}}}}}} | ; Pełne skrótowe wywołanie {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|d{{=}}}}}} ; Pełne wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|dyskusja{{=}}}}}} }}|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}| ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|k{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}}}}} | ; Pełne wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}}}}} ; Pełne wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}}}}} }}}}}}}} ; Parametry szablonu * {{Code|1}} - nazwa strony, do której link linkuje się{{#ifeq:{{ROOTPAGENAME}}|LinkWB|,|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=[^2]$}}|, * {{Code|2}} - nazwa linku - (sugerowany),|,}}}} * {{Code|z}} (przestarzałe) lub {{Code|za}} - dokończenie nazwy linku za pomocą umieszczenia jego bezpośrednio za nazwą linku - (opcjonalny), * {{Code|p}} (przestarzałe) lub {{Code|po}} - dokończenie nazwy linku za pomocą umieszczenia jego bezpośrednio za linkiem - (opcjonalny){{#switch:{{ROOTPAGENAME}}|LinkWB=.|#default={{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}|, * {{Code|k}} (przestarzałe) lub {{Code|klucz projektu}} - kod projektu siostrzanego Wikibooks, ewentualnie w innej wersji językowej Wikimedia, używany zamiast {{Code|kod języka}} i {{Code|kod projektu}} - (opcjonalny), * {{Code|kj}} (przestarzałe) lub {{Code|kod języka}} - kod języka używany zamiast {{Code|klucz projektu}} - (opcjonalny), * {{Code|kp}} (przestarzałe) lub {{Code|kod projektu}} - kod projektu używany zamiast {{Code|klucz projektu}} - (opcjonalny)}}{{#switch:{{ROOTPAGENAME}}|LinkSpecjalna|LinkSpecjalna2=|LinkWB=|#default={{#if:{{#invoke:Parametry|Not|{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=Specjalna2?$}}}}|, * {{Code|d}} (przestarzałe) lub {{Code|dyskusja}} - tłumaczy przestrzeń nazw na przestrzeń nazw dyskusji, gdy niepusty - (opcjonalny)}}}}{{#switch:{{ROOTPAGENAME}}|LinkOgólne|LinkOgólne2=, * {{Code|f}} (przestarzałe), {{Code|przestrzeń}} (niezalecana) lub {{Code|miano przestrzeni nazw}} - miano przestrzeni nazw kanoniczne lub niekanoniczne strony, dla projektu polskiego {{NS|pk=d|l=tak|w=tak}}, i jego siostrzanych projektów, a także dla ich wersji językowych - (opcjonalny), * {{Code|i}} (przestarzałe), {{Code|alias}} lub {{Code|alias miana przestrzeni nazw}} - alias do nazwy przestrzeni nazw, który jest wyświetlany przed nazwą strony, jeśli nie podano nazwy linku{{#ifeq:{{ROOTPAGENAME}}|LinkOgólne|&#32;i podano niepustą zmienną {{Code|wyświetl miano przestrzeni nazw}} - (opcjonalny)}}{{#ifeq:{{ROOTPAGENAME}}|LinkOgólne2|.|, * {{Code|w}} (przestarzałe), {{Code|wyświetl}} (niezalecana) lub {{Code|wyświetl miano przestrzeni nazw}} - jeśli wartość niepusta, to wyświetla nazwę przestrzeni nazw w nazwie linku - (opcjonalny),}}}}}} * {{Code|u}} (pzestarzałe) lub {{Code|uri}} - jeśli niepuste, wtedy traktuj adres w linku wewnętrznym, jako adres URL, czyli on jest tak kodowany. ---- Parametry w wersji skróconej są jedynie przestarzałe dla nazwy wersji pełnej szablonu nieprzekierowania, a nie są, gdy używamy przekierowania do tego szablonu. ---- ---- Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz|tak}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp|tak}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego, a także parametr {{Parametr|analiza|tak}} (skrót: {{Parametr|a|tak}}) do głębszego przetwarzania linkowego, ważniejszym od tego jest wcześniejszy ostatni parametr. == Przykłady == ; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać.{{Hr}} {{LinkOgólne/opis/przykłady|{{ROOTPAGENAME}}}} == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Nazwa strony, do której link linkuje się.", "type": "wiki-page-name", "required": true }, "2": { "description": "Nazwa linku.", "type": "string", "suggested": true }, "po": { "aliases": [ "p" ], "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku.", "type": "string" }, "klucz projektu": { "aliases": [ "k" ], "description": "Kod projektu siostrzanego Wikibooks, ewentualnie w innej wersji językowej Wikimedia, używany zamiast kod języka i kod projektu." }, "kod języka": { "aliases": [ "kj" ], "description": "Kod języka używany zamiast klucz projektu." }, "kod projektu": { "aliases": [ "kp" ], "description": "Kod projektu używany zamiast klucz projektu." }, "dyskusja": { "aliases": [ "d" ], "description": "Tłumaczy przestrzeń nazw na przestrzeń nazw dyskusji, gdy niepusty .", "type": "string" }, "miano przestrzeni nazw": { "aliases": [ "przestrzeń", "m" ], "description": "Miano przestrzeni nazw kanoniczne lub niekanoniczne strony, dla projektu polskiego Wikibooksa, i jego siostrzanych projektów, a także dla ich wersji językowych.", "type": "string" }, "skrót nazwy przestrzeni nazw": { "aliases": [ "skrót", "s" ], "description": "Skrót do nazwy przestrzeni nazw, który jest wyświetlany przed nazwą strony, jeśli nie podano nazwy linku i podano niepustą zmienną wyświetl miano przestrzeni nazw.", "type": "string" }, "wyświetl miano przestrzeni nazw": { "aliases": [ "wyświetl", "w" ], "description": "Jeśli wartość niepusta, to wyświetla nazwę przestrzeni nazw w nazwie linku.", "type": "string" }, "za": { "aliases": [ "z" ], "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku.", "type": "string" } }, "description": "Szablon ogólny linków {{LinkOgólne}}, który jest budulcem innych szablonów tego typu, służy do budowania inteligentnych linków, kolorujących je. Szablon {{LinkOgólne}} obsługuje wszystkie poniższe parametry, szablony pochodne używają tylko niektórych. Szablony, ale typowo nie między-projektowe, obsługują wszystkie parametry, oprócz nazwy przestrzeni nazw: miano przestrzeni nazw, i wyświetlania nazwy przestrzeni nazw: wyświetl miano przestrzeni nazw, i skrótu do nazwy przestrzeni nazwy: skrót nazwy przestrzeni nazw. Szablony: {{LinkSpecjalna}}, {{LinkSpecjalna2}} itp., dodatkowo nie obsługują parametru: dyskusja. Szablon {{LinkWB}}, też nie obsługuje parametru: skrót nazwy przestrzeni nazw. Szablony linków między-projektowe nie obsługują parametrów: miano przestrzeni nazw, wyświetl miano przestrzeni nazw, skrót nazwy przestrzeni nazw, klucz projektu, kod języka i kod projektu. ", "paramOrder": [ "1", "2", "za", "po", "klucz projektu", "kod języka", "kod projektu", "dyskusja", "miano przestrzeni nazw", "skrót nazwy przestrzeni nazw", "wyświetl miano przestrzeni nazw" ] } </templatedata> == Zobacz też == {{Link wewnętrzny/opis/Zobacz też}} {{Szablony linków wewnątrz- i między-serwisowych}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u+$}}|{{Kategoria|Szablony linków inteligetnych z wyświetlanymi skrótowymi nazwami przestrzeni nazw}}}} {{#switch:{{ROOTPAGENAME}}|LinkWB=|#default= {{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}| {{#switch:{{ROOTPAGENAME}} |LinkOgólne|LinkOgólne2={{Kategoria|Szablony linków inteligentnych}} |#default={{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=2$}} |{{Kategoria|Szablony linków inteligentnych z wyświetlanymi nieskrótowymi nazwami przestrzeni nazw}} |{{Kategoria|Szablony linków inteligentnych z niewyświetlanymi nazwami przestrzeni nazw}} }} }} {{#switch:{{ROOTPAGENAME}} | LinkOgólne | LinkGłówna | LinkWikijunior | LinkWikijunior2 | LinkProjekt | LinkProjekt2 | LinkUżytkownik | LinkUżytkownik2 = {{Kategorie | Szablony pomocne do tworzenia spisów treści, książek | Szablony stronicowe linków inteligentnych spisów rzeczy }} }} |{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=2$}} |{{#switch:{{ROOTPAGENAME}} | #default = {{Kategoria|Szablony linków inteligentnych, do polskojęzycznych projektów, z wyświetlanymi nazwami przestrzeni nazw}} | LinkCommonsKategoria2 | LinkMetaWikiPomoc2 | LinkMediaWikiPomoc2 | LinkMetaWikiProjekt2 | LinkMediaWikiExtension2 = {{Kategoria|Szablony linków inteligentnych, do obcojęzycznych projektów, z wyświetlanymi nazwami przestrzeni nazw}} }} |{{#switch:{{ROOTPAGENAME}} | #default = {{Kategoria|Szablony linków inteligentnych, do polskojęzycznych projektów, z niewyświetlanymi nazwami przestrzeni nazw}} | LinkEnGłówna | LinkEnWikijunior | LinkEnProjekt | LinkEnKategoria | LinkEnPediaGłówna = {{Kategoria|Szablony linków inteligentnych, do językowych projektów, z niewyświetlanymi nazwami przestrzeni nazw}} | LinkWikiaGłówna | LinkCommonsGłówna | LinkCommonsKategoria | LinkSpeciesGłówna | LinkMediaWikiGłówna | LinkMetaWikiGłówna | LinkDaneGłówna | LinkDaneProjekt | LinkSpeciesProjekt | LinkCommonsProjekt | LinkMetaWikiSpecjalna | LinkMetaWikiPomoc | LinkMetaWikiProjekt | LinkMediaWikiPomoc | LinkMediaWikiExtension = {{Kategoria|Szablony linków inteligentnych, do obcojęzycznych projektów, z niewyświetlanymi nazwami przestrzeni nazw}} }} }} }} }} </includeonly> rx2w0m8ioq6eh3pj85eubm4uoy1fj86 558094 558091 2026-09-30T12:53:18Z Persino 2851 /* Opis szablonu */ 558094 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Linki}} {{Skomplikowany}} {{Szablony opakowań linków wewnętrznych}} {{#if:{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|{{Skrót szablonu|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}}}|{{DivLinia}}}} <!--DODAWAJ KATEGORIE NA DOLE STRONY --> == Opis szablonu == Jest to specjalistyczny szablon linków inteligentnych (tzw. linki inteligentne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie: {{s|Link wewnętrzny|z przestrzenią=tak}}, który się znajduje pod tabelą wywołania szablonowego: {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów {{lg|CSS}}, które są od nadawania barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody, a do tego celu używa {{NS|k=d|l=tak|pk=d}}. Szablon {{s|LinkOgólne}} i jego pochodne w ich definicji, obsługują nazwy przestrzenie nazw kanoniczne (angielskie) lub w jakimś języku, na danym projekcie siostrzanych lub w ich wersjach językowych. Wystarczy podać nazwę kanoniczną przestrzeni nazw, a ta nazwa zostanie przetłumaczona na nazwę charakterystyczną dla danego projektu, jeżeli podamy parametr: {{Parametr|analiza|tak}} (skrót: {{Parametr|a|tak}}), bez: {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp|tak}}), w przeciwnym przypadku tego nie zrobi. Na przykład na projekcie bieżącym dla szablonów ogólnie nie między-projektowych, wyświetlana nazwa przestrzeni nazw zostanie przetłumaczona na nazwę charakterystyczną dla polskiego {{NS|pk=d|w=tak|l=tak}}, jeżeli ustawimy szablon, by wyświetlał to w nazwie linku, to je robi możliwie po przetłumaczeniu na język polski, ona w adresie linku nie zostanie przetłumaczona, chyba że podamy parametr {{Parametr|analiza|tak}} (lub jego skrót: {{Parametr|a|tak}}) według powyższej specyfikacji. Szablon zwykle nie tłumaczy w adresie linku nazwy przestrzeni nazw, np. na język polski lub inny, podanym w definicji tego szablonu, jeżeli jest nazwą kanoniczną podaną w definicji tego szablonu, a jeżeli nie, to nie ma czego tłumaczyć (bo w definicji szablonu pod zmienną: {{Code|miano przestrzeni nazw}} (skrót: {{Parametr|f}}), np. jest podane: {{Code|Wikibooks}}, zamiast: {{Code|Project}}), chyba że w przeciwnym wypadku, chcemy, by przetłumaczył na język charakterystyczny dla danego projektu, wskazanym przez szablon, wtedy należy podać parametr poniżej opisany do szablonu do głębszej analizy linkowej. {{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=2$}}|A nazwa przestrzeni nazw wyświetlana w nazwie linku za to zawsze zostanie przetłumaczona na nasz język.}} Szablon używa zmiennej: {{Code|miano przestrzeni nazw}} (skrót: {{Parametr|f}}), w sposób {{#switch:{{ROOTPAGENAME}}|LinkOgólne|LinkOgólne2=jawny (w postaci osobnego parametru) lub nie (w pierwszej zmiennej)|#default=niejawny (w postaci zmiennej w definicji tego szablonu, używając szablon {{s|LinkOgólne}} (skrót: {{s|lo}}))}}, w przeciwieństwie do {{s|Link wewnętrzny}}, który tego nie ma, tzn. nazwa przestrzeni nazw jest zawsze podana tam w sposób niejawny w postaci pierwszej zmiennej wraz z adresem linku na danym projekcie i kluczem projektu (wtedy nie ma osobnego parametru do interwiki) lub nie (w postaci zmiennej (zmiennych) do interwiki). == Skrót szablonu == Szablon {{s|{{ROOTPAGENAME}}}} posiada swój skrót: {{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}}}. == Użycie == {{LinkOgólne/opis/linki|{{ROOTPAGENAME}}}} {{LinkOgólne/opis/definicje|{{ROOTPAGENAME}}}} == Opis parametrów == {{#switch:{{ROOTPAGENAME}}|LinkWB= ; Pełne wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}}}}} ; Pełne wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}}}}} |LinkSpecjalna= ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|k{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}}}}} |LinkSpecjalna2= ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|k{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}}}}} |LinkOgólne= ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|k{{=}}|d{{=}}|f{{=}}|i{{=}}|w{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}|dyskusja{{=}}|miano przestrzeni nazw{{=}}|alias miana przestrzeni nazw{{=}}|wyświetl miano przestrzeni nazw{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}|d{{=}}|f{{=}}|i{{=}}|w{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}|dyskusja{{=}}|miano przestrzeni nazw{{=}}|alias miana przestrzeni nazw{{=}}|wyświetl miano przestrzeni nazw{{=}}}}}} |LinkOgólne2= ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|k{{=}}|d{{=}}|f{{=}}|i{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}|dyskusja{{=}}|miano przestrzeni nazw{{=}}|alias miana przestrzeni nazw{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}|d{{=}}|f{{=}}|i{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}|dyskusja{{=}}|miano przestrzeni nazw{{=}}|alias miana przestrzeni nazw{{=}}}}}} |#default={{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=[^2]$}}|{{#if:{{#invoke:Parametry|Not|{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=Specjalna2?$}}}}|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}| ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|k{{=}}|d{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}|dyskusja{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}|d{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}|dyskusja{{=}}}}}} | ; Pełne wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|d{{=}}}}}} ; Pełne wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|dyskusja{{=}}}}}} }}|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}| ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|k{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}}}}} | ; Pełne skrótowe wywołanie {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}}}}} ; Pełne wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}}}}} }}}}|{{#if:{{#invoke:Parametry|Not|{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=Specjalna2?$}}}}|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}| ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|k{{=}}|d{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}|dyskusja{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|po{{=}}|kj{{=}}|kp{{=}}|d{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}|dyskusja{{=}}}}}} | ; Pełne skrótowe wywołanie {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|d{{=}}}}}} ; Pełne wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|dyskusja{{=}}}}}} }}|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}| ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|k{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}}}}} | ; Pełne wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}}}}} ; Pełne wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}}}}} }}}}}}}} ; Parametry szablonu * {{Code|1}} - nazwa strony, do której link linkuje się{{#ifeq:{{ROOTPAGENAME}}|LinkWB|,|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=[^2]$}}|, * {{Code|2}} - nazwa linku - (sugerowany),|,}}}} * {{Code|z}} (przestarzałe) lub {{Code|za}} - dokończenie nazwy linku za pomocą umieszczenia jego bezpośrednio za nazwą linku - (opcjonalny), * {{Code|p}} (przestarzałe) lub {{Code|po}} - dokończenie nazwy linku za pomocą umieszczenia jego bezpośrednio za linkiem - (opcjonalny){{#switch:{{ROOTPAGENAME}}|LinkWB=.|#default={{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}|, * {{Code|k}} (przestarzałe) lub {{Code|klucz projektu}} - kod projektu siostrzanego Wikibooks, ewentualnie w innej wersji językowej Wikimedia, używany zamiast {{Code|kod języka}} i {{Code|kod projektu}} - (opcjonalny), * {{Code|kj}} (przestarzałe) lub {{Code|kod języka}} - kod języka używany zamiast {{Code|klucz projektu}} - (opcjonalny), * {{Code|kp}} (przestarzałe) lub {{Code|kod projektu}} - kod projektu używany zamiast {{Code|klucz projektu}} - (opcjonalny)}}{{#switch:{{ROOTPAGENAME}}|LinkSpecjalna|LinkSpecjalna2=|LinkWB=|#default={{#if:{{#invoke:Parametry|Not|{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=Specjalna2?$}}}}|, * {{Code|d}} (przestarzałe) lub {{Code|dyskusja}} - tłumaczy przestrzeń nazw na przestrzeń nazw dyskusji, gdy niepusty - (opcjonalny)}}}}{{#switch:{{ROOTPAGENAME}}|LinkOgólne|LinkOgólne2=, * {{Code|f}} (przestarzałe), {{Code|przestrzeń}} (niezalecana) lub {{Code|miano przestrzeni nazw}} - miano przestrzeni nazw kanoniczne lub niekanoniczne strony, dla projektu polskiego {{NS|pk=d|l=tak|w=tak}}, i jego siostrzanych projektów, a także dla ich wersji językowych - (opcjonalny), * {{Code|i}} (przestarzałe), {{Code|alias}} lub {{Code|alias miana przestrzeni nazw}} - alias do nazwy przestrzeni nazw, który jest wyświetlany przed nazwą strony, jeśli nie podano nazwy linku{{#ifeq:{{ROOTPAGENAME}}|LinkOgólne|&#32;i podano niepustą zmienną {{Code|wyświetl miano przestrzeni nazw}} - (opcjonalny)}}{{#ifeq:{{ROOTPAGENAME}}|LinkOgólne2|.|, * {{Code|w}} (przestarzałe), {{Code|wyświetl}} (niezalecana) lub {{Code|wyświetl miano przestrzeni nazw}} - jeśli wartość niepusta, to wyświetla nazwę przestrzeni nazw w nazwie linku - (opcjonalny),}}}}}} * {{Code|u}} (pzestarzałe) lub {{Code|uri}} - jeśli niepuste, wtedy traktuj adres w linku wewnętrznym, jako adres URL, czyli on jest tak kodowany. ---- Parametry w wersji skróconej są jedynie przestarzałe dla nazwy wersji pełnej szablonu nieprzekierowania, a nie są, gdy używamy przekierowania do tego szablonu. ---- ---- Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz|tak}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp|tak}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego, a także parametr {{Parametr|analiza|tak}} (skrót: {{Parametr|a|tak}}) do głębszego przetwarzania linkowego, ważniejszym od tego jest wcześniejszy ostatni parametr. == Przykłady == ; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać.{{Hr}} {{LinkOgólne/opis/przykłady|{{ROOTPAGENAME}}}} == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Nazwa strony, do której link linkuje się.", "type": "wiki-page-name", "required": true }, "2": { "description": "Nazwa linku.", "type": "string", "suggested": true }, "po": { "aliases": [ "p" ], "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku.", "type": "string" }, "klucz projektu": { "aliases": [ "k" ], "description": "Kod projektu siostrzanego Wikibooks, ewentualnie w innej wersji językowej Wikimedia, używany zamiast kod języka i kod projektu." }, "kod języka": { "aliases": [ "kj" ], "description": "Kod języka używany zamiast klucz projektu." }, "kod projektu": { "aliases": [ "kp" ], "description": "Kod projektu używany zamiast klucz projektu." }, "dyskusja": { "aliases": [ "d" ], "description": "Tłumaczy przestrzeń nazw na przestrzeń nazw dyskusji, gdy niepusty .", "type": "string" }, "miano przestrzeni nazw": { "aliases": [ "przestrzeń", "m" ], "description": "Miano przestrzeni nazw kanoniczne lub niekanoniczne strony, dla projektu polskiego Wikibooksa, i jego siostrzanych projektów, a także dla ich wersji językowych.", "type": "string" }, "skrót nazwy przestrzeni nazw": { "aliases": [ "skrót", "s" ], "description": "Skrót do nazwy przestrzeni nazw, który jest wyświetlany przed nazwą strony, jeśli nie podano nazwy linku i podano niepustą zmienną wyświetl miano przestrzeni nazw.", "type": "string" }, "wyświetl miano przestrzeni nazw": { "aliases": [ "wyświetl", "w" ], "description": "Jeśli wartość niepusta, to wyświetla nazwę przestrzeni nazw w nazwie linku.", "type": "string" }, "za": { "aliases": [ "z" ], "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku.", "type": "string" } }, "description": "Szablon ogólny linków {{LinkOgólne}}, który jest budulcem innych szablonów tego typu, służy do budowania inteligentnych linków, kolorujących je. Szablon {{LinkOgólne}} obsługuje wszystkie poniższe parametry, szablony pochodne używają tylko niektórych. Szablony, ale typowo nie między-projektowe, obsługują wszystkie parametry, oprócz nazwy przestrzeni nazw: miano przestrzeni nazw, i wyświetlania nazwy przestrzeni nazw: wyświetl miano przestrzeni nazw, i skrótu do nazwy przestrzeni nazwy: skrót nazwy przestrzeni nazw. Szablony: {{LinkSpecjalna}}, {{LinkSpecjalna2}} itp., dodatkowo nie obsługują parametru: dyskusja. Szablon {{LinkWB}}, też nie obsługuje parametru: skrót nazwy przestrzeni nazw. Szablony linków między-projektowe nie obsługują parametrów: miano przestrzeni nazw, wyświetl miano przestrzeni nazw, skrót nazwy przestrzeni nazw, klucz projektu, kod języka i kod projektu. ", "paramOrder": [ "1", "2", "za", "po", "klucz projektu", "kod języka", "kod projektu", "dyskusja", "miano przestrzeni nazw", "skrót nazwy przestrzeni nazw", "wyświetl miano przestrzeni nazw" ] } </templatedata> == Zobacz też == {{Link wewnętrzny/opis/Zobacz też}} {{Szablony linków wewnątrz- i między-serwisowych}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u+$}}|{{Kategoria|Szablony linków inteligetnych z wyświetlanymi skrótowymi nazwami przestrzeni nazw}}}} {{#switch:{{ROOTPAGENAME}}|LinkWB=|#default= {{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}| {{#switch:{{ROOTPAGENAME}} |LinkOgólne|LinkOgólne2={{Kategoria|Szablony linków inteligentnych}} |#default={{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=2$}} |{{Kategoria|Szablony linków inteligentnych z wyświetlanymi nieskrótowymi nazwami przestrzeni nazw}} |{{Kategoria|Szablony linków inteligentnych z niewyświetlanymi nazwami przestrzeni nazw}} }} }} {{#switch:{{ROOTPAGENAME}} | LinkOgólne | LinkGłówna | LinkWikijunior | LinkWikijunior2 | LinkProjekt | LinkProjekt2 | LinkUżytkownik | LinkUżytkownik2 = {{Kategorie | Szablony pomocne do tworzenia spisów treści, książek | Szablony stronicowe linków inteligentnych spisów rzeczy }} }} |{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=2$}} |{{#switch:{{ROOTPAGENAME}} | #default = {{Kategoria|Szablony linków inteligentnych, do polskojęzycznych projektów, z wyświetlanymi nazwami przestrzeni nazw}} | LinkCommonsKategoria2 | LinkMetaWikiPomoc2 | LinkMediaWikiPomoc2 | LinkMetaWikiProjekt2 | LinkMediaWikiExtension2 = {{Kategoria|Szablony linków inteligentnych, do obcojęzycznych projektów, z wyświetlanymi nazwami przestrzeni nazw}} }} |{{#switch:{{ROOTPAGENAME}} | #default = {{Kategoria|Szablony linków inteligentnych, do polskojęzycznych projektów, z niewyświetlanymi nazwami przestrzeni nazw}} | LinkEnGłówna | LinkEnWikijunior | LinkEnProjekt | LinkEnKategoria | LinkEnPediaGłówna = {{Kategoria|Szablony linków inteligentnych, do językowych projektów, z niewyświetlanymi nazwami przestrzeni nazw}} | LinkWikiaGłówna | LinkCommonsGłówna | LinkCommonsKategoria | LinkSpeciesGłówna | LinkMediaWikiGłówna | LinkMetaWikiGłówna | LinkDaneGłówna | LinkDaneProjekt | LinkSpeciesProjekt | LinkCommonsProjekt | LinkMetaWikiSpecjalna | LinkMetaWikiPomoc | LinkMetaWikiProjekt | LinkMediaWikiPomoc | LinkMediaWikiExtension = {{Kategoria|Szablony linków inteligentnych, do obcojęzycznych projektów, z niewyświetlanymi nazwami przestrzeni nazw}} }} }} }} }} </includeonly> tpyvtyromuxd124knh1aqboyshxmdd9 558095 558094 2026-09-30T12:53:42Z Persino 2851 /* Opis szablonu */ 558095 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Linki}} {{Skomplikowany}} {{Szablony opakowań linków wewnętrznych}} {{#if:{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|{{Skrót szablonu|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}}}|{{DivLinia}}}} <!--DODAWAJ KATEGORIE NA DOLE STRONY --> == Opis szablonu == Jest to specjalistyczny szablon linków inteligentnych (tzw. linki inteligentne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie: {{s|Link wewnętrzny|z przestrzenią=tak}}, który się znajduje pod tabelą wywołania szablonowego: {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów {{lpg|CSS}}, które są od nadawania barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody, a do tego celu używa {{NS|k=d|l=tak|pk=d}}. Szablon {{s|LinkOgólne}} i jego pochodne w ich definicji, obsługują nazwy przestrzenie nazw kanoniczne (angielskie) lub w jakimś języku, na danym projekcie siostrzanych lub w ich wersjach językowych. Wystarczy podać nazwę kanoniczną przestrzeni nazw, a ta nazwa zostanie przetłumaczona na nazwę charakterystyczną dla danego projektu, jeżeli podamy parametr: {{Parametr|analiza|tak}} (skrót: {{Parametr|a|tak}}), bez: {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp|tak}}), w przeciwnym przypadku tego nie zrobi. Na przykład na projekcie bieżącym dla szablonów ogólnie nie między-projektowych, wyświetlana nazwa przestrzeni nazw zostanie przetłumaczona na nazwę charakterystyczną dla polskiego {{NS|pk=d|w=tak|l=tak}}, jeżeli ustawimy szablon, by wyświetlał to w nazwie linku, to je robi możliwie po przetłumaczeniu na język polski, ona w adresie linku nie zostanie przetłumaczona, chyba że podamy parametr {{Parametr|analiza|tak}} (lub jego skrót: {{Parametr|a|tak}}) według powyższej specyfikacji. Szablon zwykle nie tłumaczy w adresie linku nazwy przestrzeni nazw, np. na język polski lub inny, podanym w definicji tego szablonu, jeżeli jest nazwą kanoniczną podaną w definicji tego szablonu, a jeżeli nie, to nie ma czego tłumaczyć (bo w definicji szablonu pod zmienną: {{Code|miano przestrzeni nazw}} (skrót: {{Parametr|f}}), np. jest podane: {{Code|Wikibooks}}, zamiast: {{Code|Project}}), chyba że w przeciwnym wypadku, chcemy, by przetłumaczył na język charakterystyczny dla danego projektu, wskazanym przez szablon, wtedy należy podać parametr poniżej opisany do szablonu do głębszej analizy linkowej. {{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=2$}}|A nazwa przestrzeni nazw wyświetlana w nazwie linku za to zawsze zostanie przetłumaczona na nasz język.}} Szablon używa zmiennej: {{Code|miano przestrzeni nazw}} (skrót: {{Parametr|f}}), w sposób {{#switch:{{ROOTPAGENAME}}|LinkOgólne|LinkOgólne2=jawny (w postaci osobnego parametru) lub nie (w pierwszej zmiennej)|#default=niejawny (w postaci zmiennej w definicji tego szablonu, używając szablon {{s|LinkOgólne}} (skrót: {{s|lo}}))}}, w przeciwieństwie do {{s|Link wewnętrzny}}, który tego nie ma, tzn. nazwa przestrzeni nazw jest zawsze podana tam w sposób niejawny w postaci pierwszej zmiennej wraz z adresem linku na danym projekcie i kluczem projektu (wtedy nie ma osobnego parametru do interwiki) lub nie (w postaci zmiennej (zmiennych) do interwiki). == Skrót szablonu == Szablon {{s|{{ROOTPAGENAME}}}} posiada swój skrót: {{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}}}. == Użycie == {{LinkOgólne/opis/linki|{{ROOTPAGENAME}}}} {{LinkOgólne/opis/definicje|{{ROOTPAGENAME}}}} == Opis parametrów == {{#switch:{{ROOTPAGENAME}}|LinkWB= ; Pełne wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}}}}} ; Pełne wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}}}}} |LinkSpecjalna= ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|k{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}}}}} |LinkSpecjalna2= ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|k{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}}}}} |LinkOgólne= ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|k{{=}}|d{{=}}|f{{=}}|i{{=}}|w{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}|dyskusja{{=}}|miano przestrzeni nazw{{=}}|alias miana przestrzeni nazw{{=}}|wyświetl miano przestrzeni nazw{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}|d{{=}}|f{{=}}|i{{=}}|w{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}|dyskusja{{=}}|miano przestrzeni nazw{{=}}|alias miana przestrzeni nazw{{=}}|wyświetl miano przestrzeni nazw{{=}}}}}} |LinkOgólne2= ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|k{{=}}|d{{=}}|f{{=}}|i{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}|dyskusja{{=}}|miano przestrzeni nazw{{=}}|alias miana przestrzeni nazw{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}|d{{=}}|f{{=}}|i{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}|dyskusja{{=}}|miano przestrzeni nazw{{=}}|alias miana przestrzeni nazw{{=}}}}}} |#default={{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=[^2]$}}|{{#if:{{#invoke:Parametry|Not|{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=Specjalna2?$}}}}|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}| ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|k{{=}}|d{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}|dyskusja{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}|d{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}|dyskusja{{=}}}}}} | ; Pełne wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|d{{=}}}}}} ; Pełne wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|dyskusja{{=}}}}}} }}|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}| ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|k{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}}}}} | ; Pełne skrótowe wywołanie {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}}}}} ; Pełne wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}}}}} }}}}|{{#if:{{#invoke:Parametry|Not|{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=Specjalna2?$}}}}|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}| ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|k{{=}}|d{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}|dyskusja{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|po{{=}}|kj{{=}}|kp{{=}}|d{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}|dyskusja{{=}}}}}} | ; Pełne skrótowe wywołanie {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|d{{=}}}}}} ; Pełne wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|dyskusja{{=}}}}}} }}|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}| ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|k{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}}}}} | ; Pełne wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}}}}} ; Pełne wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}}}}} }}}}}}}} ; Parametry szablonu * {{Code|1}} - nazwa strony, do której link linkuje się{{#ifeq:{{ROOTPAGENAME}}|LinkWB|,|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=[^2]$}}|, * {{Code|2}} - nazwa linku - (sugerowany),|,}}}} * {{Code|z}} (przestarzałe) lub {{Code|za}} - dokończenie nazwy linku za pomocą umieszczenia jego bezpośrednio za nazwą linku - (opcjonalny), * {{Code|p}} (przestarzałe) lub {{Code|po}} - dokończenie nazwy linku za pomocą umieszczenia jego bezpośrednio za linkiem - (opcjonalny){{#switch:{{ROOTPAGENAME}}|LinkWB=.|#default={{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}|, * {{Code|k}} (przestarzałe) lub {{Code|klucz projektu}} - kod projektu siostrzanego Wikibooks, ewentualnie w innej wersji językowej Wikimedia, używany zamiast {{Code|kod języka}} i {{Code|kod projektu}} - (opcjonalny), * {{Code|kj}} (przestarzałe) lub {{Code|kod języka}} - kod języka używany zamiast {{Code|klucz projektu}} - (opcjonalny), * {{Code|kp}} (przestarzałe) lub {{Code|kod projektu}} - kod projektu używany zamiast {{Code|klucz projektu}} - (opcjonalny)}}{{#switch:{{ROOTPAGENAME}}|LinkSpecjalna|LinkSpecjalna2=|LinkWB=|#default={{#if:{{#invoke:Parametry|Not|{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=Specjalna2?$}}}}|, * {{Code|d}} (przestarzałe) lub {{Code|dyskusja}} - tłumaczy przestrzeń nazw na przestrzeń nazw dyskusji, gdy niepusty - (opcjonalny)}}}}{{#switch:{{ROOTPAGENAME}}|LinkOgólne|LinkOgólne2=, * {{Code|f}} (przestarzałe), {{Code|przestrzeń}} (niezalecana) lub {{Code|miano przestrzeni nazw}} - miano przestrzeni nazw kanoniczne lub niekanoniczne strony, dla projektu polskiego {{NS|pk=d|l=tak|w=tak}}, i jego siostrzanych projektów, a także dla ich wersji językowych - (opcjonalny), * {{Code|i}} (przestarzałe), {{Code|alias}} lub {{Code|alias miana przestrzeni nazw}} - alias do nazwy przestrzeni nazw, który jest wyświetlany przed nazwą strony, jeśli nie podano nazwy linku{{#ifeq:{{ROOTPAGENAME}}|LinkOgólne|&#32;i podano niepustą zmienną {{Code|wyświetl miano przestrzeni nazw}} - (opcjonalny)}}{{#ifeq:{{ROOTPAGENAME}}|LinkOgólne2|.|, * {{Code|w}} (przestarzałe), {{Code|wyświetl}} (niezalecana) lub {{Code|wyświetl miano przestrzeni nazw}} - jeśli wartość niepusta, to wyświetla nazwę przestrzeni nazw w nazwie linku - (opcjonalny),}}}}}} * {{Code|u}} (pzestarzałe) lub {{Code|uri}} - jeśli niepuste, wtedy traktuj adres w linku wewnętrznym, jako adres URL, czyli on jest tak kodowany. ---- Parametry w wersji skróconej są jedynie przestarzałe dla nazwy wersji pełnej szablonu nieprzekierowania, a nie są, gdy używamy przekierowania do tego szablonu. ---- ---- Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz|tak}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp|tak}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego, a także parametr {{Parametr|analiza|tak}} (skrót: {{Parametr|a|tak}}) do głębszego przetwarzania linkowego, ważniejszym od tego jest wcześniejszy ostatni parametr. == Przykłady == ; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać.{{Hr}} {{LinkOgólne/opis/przykłady|{{ROOTPAGENAME}}}} == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Nazwa strony, do której link linkuje się.", "type": "wiki-page-name", "required": true }, "2": { "description": "Nazwa linku.", "type": "string", "suggested": true }, "po": { "aliases": [ "p" ], "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku.", "type": "string" }, "klucz projektu": { "aliases": [ "k" ], "description": "Kod projektu siostrzanego Wikibooks, ewentualnie w innej wersji językowej Wikimedia, używany zamiast kod języka i kod projektu." }, "kod języka": { "aliases": [ "kj" ], "description": "Kod języka używany zamiast klucz projektu." }, "kod projektu": { "aliases": [ "kp" ], "description": "Kod projektu używany zamiast klucz projektu." }, "dyskusja": { "aliases": [ "d" ], "description": "Tłumaczy przestrzeń nazw na przestrzeń nazw dyskusji, gdy niepusty .", "type": "string" }, "miano przestrzeni nazw": { "aliases": [ "przestrzeń", "m" ], "description": "Miano przestrzeni nazw kanoniczne lub niekanoniczne strony, dla projektu polskiego Wikibooksa, i jego siostrzanych projektów, a także dla ich wersji językowych.", "type": "string" }, "skrót nazwy przestrzeni nazw": { "aliases": [ "skrót", "s" ], "description": "Skrót do nazwy przestrzeni nazw, który jest wyświetlany przed nazwą strony, jeśli nie podano nazwy linku i podano niepustą zmienną wyświetl miano przestrzeni nazw.", "type": "string" }, "wyświetl miano przestrzeni nazw": { "aliases": [ "wyświetl", "w" ], "description": "Jeśli wartość niepusta, to wyświetla nazwę przestrzeni nazw w nazwie linku.", "type": "string" }, "za": { "aliases": [ "z" ], "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku.", "type": "string" } }, "description": "Szablon ogólny linków {{LinkOgólne}}, który jest budulcem innych szablonów tego typu, służy do budowania inteligentnych linków, kolorujących je. Szablon {{LinkOgólne}} obsługuje wszystkie poniższe parametry, szablony pochodne używają tylko niektórych. Szablony, ale typowo nie między-projektowe, obsługują wszystkie parametry, oprócz nazwy przestrzeni nazw: miano przestrzeni nazw, i wyświetlania nazwy przestrzeni nazw: wyświetl miano przestrzeni nazw, i skrótu do nazwy przestrzeni nazwy: skrót nazwy przestrzeni nazw. Szablony: {{LinkSpecjalna}}, {{LinkSpecjalna2}} itp., dodatkowo nie obsługują parametru: dyskusja. Szablon {{LinkWB}}, też nie obsługuje parametru: skrót nazwy przestrzeni nazw. Szablony linków między-projektowe nie obsługują parametrów: miano przestrzeni nazw, wyświetl miano przestrzeni nazw, skrót nazwy przestrzeni nazw, klucz projektu, kod języka i kod projektu. ", "paramOrder": [ "1", "2", "za", "po", "klucz projektu", "kod języka", "kod projektu", "dyskusja", "miano przestrzeni nazw", "skrót nazwy przestrzeni nazw", "wyświetl miano przestrzeni nazw" ] } </templatedata> == Zobacz też == {{Link wewnętrzny/opis/Zobacz też}} {{Szablony linków wewnątrz- i między-serwisowych}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u+$}}|{{Kategoria|Szablony linków inteligetnych z wyświetlanymi skrótowymi nazwami przestrzeni nazw}}}} {{#switch:{{ROOTPAGENAME}}|LinkWB=|#default= {{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}| {{#switch:{{ROOTPAGENAME}} |LinkOgólne|LinkOgólne2={{Kategoria|Szablony linków inteligentnych}} |#default={{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=2$}} |{{Kategoria|Szablony linków inteligentnych z wyświetlanymi nieskrótowymi nazwami przestrzeni nazw}} |{{Kategoria|Szablony linków inteligentnych z niewyświetlanymi nazwami przestrzeni nazw}} }} }} {{#switch:{{ROOTPAGENAME}} | LinkOgólne | LinkGłówna | LinkWikijunior | LinkWikijunior2 | LinkProjekt | LinkProjekt2 | LinkUżytkownik | LinkUżytkownik2 = {{Kategorie | Szablony pomocne do tworzenia spisów treści, książek | Szablony stronicowe linków inteligentnych spisów rzeczy }} }} |{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=2$}} |{{#switch:{{ROOTPAGENAME}} | #default = {{Kategoria|Szablony linków inteligentnych, do polskojęzycznych projektów, z wyświetlanymi nazwami przestrzeni nazw}} | LinkCommonsKategoria2 | LinkMetaWikiPomoc2 | LinkMediaWikiPomoc2 | LinkMetaWikiProjekt2 | LinkMediaWikiExtension2 = {{Kategoria|Szablony linków inteligentnych, do obcojęzycznych projektów, z wyświetlanymi nazwami przestrzeni nazw}} }} |{{#switch:{{ROOTPAGENAME}} | #default = {{Kategoria|Szablony linków inteligentnych, do polskojęzycznych projektów, z niewyświetlanymi nazwami przestrzeni nazw}} | LinkEnGłówna | LinkEnWikijunior | LinkEnProjekt | LinkEnKategoria | LinkEnPediaGłówna = {{Kategoria|Szablony linków inteligentnych, do językowych projektów, z niewyświetlanymi nazwami przestrzeni nazw}} | LinkWikiaGłówna | LinkCommonsGłówna | LinkCommonsKategoria | LinkSpeciesGłówna | LinkMediaWikiGłówna | LinkMetaWikiGłówna | LinkDaneGłówna | LinkDaneProjekt | LinkSpeciesProjekt | LinkCommonsProjekt | LinkMetaWikiSpecjalna | LinkMetaWikiPomoc | LinkMetaWikiProjekt | LinkMediaWikiPomoc | LinkMediaWikiExtension = {{Kategoria|Szablony linków inteligentnych, do obcojęzycznych projektów, z niewyświetlanymi nazwami przestrzeni nazw}} }} }} }} }} </includeonly> 4pysboqx72psoyj23asx2557hszr2gz Szablon:Link wewnętrzny/opis 10 56016 558089 553142 2026-09-30T12:45:18Z Persino 2851 /* Użycie */ 558089 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Linki}} {{Skomplikowany}} {{#switch:{{ROOTPAGENAME}}|Link wewnętrzny={{Skrót szablonu|Ly}}|#defualt={{DivLinia}}}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Jest to specjalistyczny szablon linków inteligetnych (tzw. linki inteligetne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie {{s|Link wewnętrzny}}, który się znajduje pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów CSS, które są od nadawawia barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody, a do tego celu używa {{NAZWASERWISU|klucz projektu=d|link=tak}}. Sprawdza, jeśli podano również nazwę linku, czy ona jest taka sama jak adres linku, a jeśli tak, to w definicji jego używa tylko adresu linku, a jeśli nie, to adresu linku i nazwy linku. Szablon nie używa parametru obsługujących nazwę przestrzeni nazw, w przeciwieństwie do {{s|LinkOgólne}} (skrót: {{s|lo}}) i {{s|LinkOgólne2}} (skrót: {{s|lo2}}), które używają to bezpośrednio, i jego pochodnych, używające pośrednio. === Przykłady linków z zastosowanymi kolorami w kaskadowym arkuszu stylów: {{ls2|Link wewnętrzny/styles.css}} === {{Tabela nawigacyjna | tytuł = Spis kodów i im odpowiadających kolorów, linków wewnętrznych i zewnętrznych, na przykładzie jednego przykładowego linku | spis = <templatestyles src="Szablon:Link_wewnętrzny/styles.css" /> * Link: {{Span|klasa=iw link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iw}} - strona istnieje na tej wiki, * Link: {{Span|klasa=inw link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inw}} - strona z nagłówkiem istnieje na tej wiki, * Link: {{Span|klasa=niw link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|niw}} - strona nie istnieje na tej wiki, * Link: {{Span|klasa=ninw link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ninw}} - strona z nagłówkiem nie istnieje na tej wiki, * Link: {{Span|klasa=iwew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iwew}} - strona istnieje na tej wiki jako element wikidanych, * Link: {{Span|klasa=inwew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inwew}} - strona z nagłówkiem istnieje na tej wiki, jako element wikidanych, * Link: {{Span|klasa=iew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iew}} - strona istnieje jako element wikidanych, * Link: {{Span|klasa=inew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inew}} - strona z nagłówkiem istnieje jako element wikidanych, * Link: {{Span|klasa=niew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|niew}} - strona nie istnieje jako element wikidanych, * Link: {{Span|klasa=ninew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ninew}} - strona z nagłówkiem nie istnieje jako element wikidanych, * Link: {{Span|klasa=wash link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wash}} - strona z linkiem aktywnym wskazuje na aktualną stronę, * Link: {{Span|klasa=was link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|was}} - strona z linkiem nieaktywnym wskazuje na aktualną stronę, * Link: {{Span|klasa=wasn link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasn}} - strona z nagłówkiem wskazuje na aktualną stronę, * Link: {{Span|klasa=washew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|washew}} - strona z linkiem aktywnym wskazuje na aktualną stronę jako element wikidanych, * Link: {{Span|klasa=wasew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasew}} - strona z linkiem nieaktywnym wskazuje na aktualną stronę jako element wikidanych, * Link: {{Span|klasa=wasnew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasnew}} - strona z nagłówkiem wskazuje na aktualną stronę jako element wikidanych, * Link: {{Span|klasa=ipw link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ipw}} - strona istnieje poza wikidane, * Link: {{Span|klasa=inwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inwp}} - strona z nagłówkiem istnieje poza wikidane, * Link: {{Span|klasa=dwni link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|dwni}} - strona wskazująca na daną wiki, która nie istnieje, * Link: {{Span|klasa=su link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|su}} - strona z adresem URL niewskazującą na projekty WIKI, * Link: {{Span|klasa=sun link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|sun}} - strona z nagłówkiem z adresem URL niewskazującą na projekty WIKI, * Link: {{Span|klasa=iwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iwp}} - strona z parametrami istnieje na tej wiki, * Link: {{Span|klasa=inwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inwp}} - strona z parametrami i nagłówkiem istnieje na tej wiki, * Link: {{Span|klasa=niwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|niwp}} - strona z parametrami nie istnieje na tej wiki, * Link: {{Span|klasa=ninwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ninwp}} - strona z parametrami i nagłówkiem nie istnieje na tej wiki, * Link: {{Span|klasa=iwewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iwewp}} - strona z parametrami istnieje na tej wiki jako element wikidanych, * Link: {{Span|klasa=inwewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inwewp}} - strona z parametrami i nagłówkiem istnieje na tej wiki jako element wikidanych, * Link: {{Span|klasa=iewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iewp}} - strona z parametrami istnieje jako element wikidanych, * Link: {{Span|klasa=inewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inewp}} - strona z parametrami i nagłówkiem istnieje jako element wikidanych, * Link: {{Span|klasa=niewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|niewp}} - strona z parametrami nie istnieje jako element wikidanych, * Link: {{Span|klasa=ninewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ninewp}} - strona z parametrami i nagłówkiem nie istnieje jako element wikidanych, * Link: {{Span|klasa=washp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|washp}} - strona, z linkiem aktywnym, z parametrami wskazuje na aktualną stronę, * Link: {{Span|klasa=wasp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasp}} - strona, z linkiem nieaktywnym, z parametrami wskazuje na aktualną stronę, * Link: {{Span|klasa=wasnp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasnp}} - strona z parametrami i nagłówkiem wskazuje na aktualną stronę, * Link: {{Span|klasa=washewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|washewp}} - strona, z linkiem aktywnym, z parametrami wskazuje na aktualną stronę jako element wikidanych, * Link: {{Span|klasa=wasewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasewp}} - strona, z linkiem nieaktywnym, z parametrami wskazuje na aktualną stronę jako element wikidanych, * Link: {{Span|klasa=wasnewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasnewp}} - strona z parametrami i nagłówkiem wskazuje na aktualną stronę jako element wikidanych, * Link: {{Span|klasa=ipwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ipwp}} - strona z parametrami istnieje poza wikidane, * Link: {{Span|klasa=inpwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inpwp}} - strona z parametrami i nagłówkiem istnieje poza wikidane, * Link: {{Span|klasa=dwnip link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|dwnip}} - strona z parametrami wskazująca na daną wiki, która nie istnieje, * Link: {{Span|klasa=sup link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|sup}} - strona z parametrami z adresem URL niewskazującą na projekty WIKI, * Link: {{Span|klasa=sunp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|sunp}} - strona z parametrami i nagłówkiem, z adresem URL niewskazującą na projekty WIKI. }} ---- Z szablonu {{s|Link wewnętrzny/styles.css}} (z kaskadowych arkuszy stylów) korzystają szablony: {{s|Link wewnętrzny}} (skrót: {{s|ly}}), {{s|LinkURL}} (skrót: {{s|lz}}), {{s|LinkOgólne}} (skrót: {{s|lo}}) (i z niego korzystające wedle ich definicji), {{s|LinkUstęp}} (skrót: {{s|lu}}) (i z niego korzystające wedle ich definicji), {{s|Sekcja referencyjna}} (skrót: {{s|sr}}) i szablony symbolizujące wikikod, zbudowanych przy pomocy linków wewnętrznych: {{s|S}} i {{s|M}}, a także: {{s|L}}, oraz szablony sekcji: {{s|Osobny artykuł}}, {{s|Zobacz głównie}}, {{s|Zobacz sekcję}}, {{s|Zobacz też}}, {{s|Główny artykuł}}, {{s|Kategoria główna}} i {{s|Zobacz kategorię}} - i inne, sformułowane w oparciu o nie. == Opis parametrów == ; Pełne skrótowe pierwsze wywołanie {{Pre|{{s|Ly|s{{=}}|n{{=}}|z{{=}}|p{{=}}|g{{=}}|k{{=}}}}}} ; Pełne nieskrótowe pierwsze wywołanie {{Pre|{{s|Link wewnętrzny|strona{{=}}|nazwa{{=}}|za{{=}}|po{{=}}|nagłówek{{=}}|klucz projektu{{=}}}}}} ---- ;Pełne skrótowe drugie wywołanie {{Pre|{{s|Ly|s{{=}}|n{{=}}|z{{=}}|p{{=}}|g{{=}}|kj{{=}}|kp{{=}}}}}} ; Pełne nieskrótowe drugie wywołanie {{Pre|{{s|Link wewnętrzny|strona{{=}}|nazwa{{=}}|za{{=}}|po{{=}}|nagłówek{{=}}|kod języka{{=}}|kod projektu{{=}}}}}} ; Szablon przyjmuje tylko parametry nazwane: * {{Code|s}} lub {{Code|strona}} - pełna nazwa strony bez kodu projektu lub języka, do której ma linkować na tym samym projekcje lub innym, * {{Code|n}} lub {{Code|nazwa}} - nazwa linku, * {{Code|z}} lub {{Code|za}} - dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku, * {{Code|p}} lub {{Code|po}} - dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku, * {{Code|g}} lub {{Code|nagłówek}} - nagłówek rozdziału strony, do którego ma linkować, * {{Code|k}} lub {{Code|klucz projektu}} - klucz projektu siostrzanego lub językowego, używany zamiast {{Code|kod języka}} i {{Code|kod projektu}}, * {{Code|kj}} lub {{Code|kod języka}} - kod języka projektu, używany zamiast {{Code|klucz projektu}}, * {{Code|kp}} lub {{Code|kod projektu}} - kod projektu, używany zamiast {{Code|klucz projektu}}, * {{Code|u}} lub {{Code|uri}} - jeśli niepuste, to traktuj adres w linku wewnętrznym, jako adres URL, czyli on jest tak kodowany. ---- Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz|tak}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp|tak}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego, a także parametr {{Parametr|analiza|tak}} (skrót: {{Parametr|a|tak}}) do głębszego przetwarzania linkowego, ważniejszym od tego jest wcześniejszy ostatni parametr. == Przykład == ; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać.{{Hr}} {{Pre start}}<!-- -->{{s|ly|s{{=}}Pomoc:Spis treści}} → {{ly|s=Pomoc:Spis treści}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Pomoc:Spis treści|n{{=}}Spis treści}} → {{ly|s=Pomoc:Spis treści|n=Spis treści}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|n=Spis treści}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Pomoc:Spis treści|n{{=}}Pomoc:Spis treści}} → {{ly|s=Pomoc:Spis treści|n=Pomoc:Spis treści}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|n=Pomoc:Spis treści}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Pomoc:Spis treści|g{{=}}Wstęp}} → {{ly|s=Pomoc:Spis treści|g=Wstęp}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|g=Wstęp}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Pomoc:Spis treści|g{{=}}Wstęp|n{{=}}Pomoc:Spis treści#Wstęp}} → {{ly|s=Pomoc:Spis treści|g=Wstęp|n=Pomoc:Spis treści#Wstęp}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|g=Wstęp|n=Pomoc:Spis treści#Wstęp}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Pomoc:Spis treści|g{{=}}Wstęp|n{{=}}Spis treści}} → {{ly|s=Pomoc:Spis treści|g=Wstęp|n=Spis treści}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|g=Wstęp|n=Spis treści}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Pomoc:Spis treści|g{{=}}Wstęp|n{{=}}Pomoc:Spis treści}} → {{ly|s=Pomoc:Spis treści|g=Wstęp|n=Pomoc:Spis treści}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|g=Wstęp|n=Pomoc:Spis treści}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}Szablony}} → {{ly|s=Kategoria:Szablony|n=Szablony}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=Szablony}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}Kategoria:Szablony}} → {{ly|s=Kategoria:Szablony|n=Kategoria:Szablony}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=Kategoria:Szablony}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}w:Kategoria:Szablony|k{{=}}w}} → {{ly|s=Kategoria:Szablony|n=w:Kategoria:Szablony|k=w}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=w:Kategoria:Szablony|k=w}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}:Kategoria:Szablony}} → {{ly|s=Kategoria:Szablony|n=:Kategoria:Szablony}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=:Kategoria:Szablony}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}Kategoria:Szablony|k{{=}}w}} → {{ly|s=Kategoria:Szablony|n=Kategoria:Szablony|k=w}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=Kategoria:Szablony|k=w}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}:w:Kategoria:Szablony|k{{=}}w}} → {{ly|s=Kategoria:Szablony|n=:w:Kategoria:Szablony|k=w}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=:w:Kategoria:Szablony|k=w}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Category:Wikipedia templates|n{{=}}Category:Wikipedia templates|k{{=}}en:w}} → {{ly|s=Category:Wikipedia templates|n=Category:Wikipedia templates|k=en:w}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Category:Wikipedia templates|n=Category:Wikipedia templates|k=en:w}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Category:Wikipedia templates|n{{=}}en:w:Category:Wikipedia templates|k{{=}}w:en}} → {{ly|s=Category:Wikipedia templates|n=en:w:Category:Wikipedia templates|k=w:en}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Category:Wikipedia templates|n=en:w:Category:Wikipedia templates|k=w:en}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Category:Wikipedia templates|n{{=}}en:w:Category:Wikipedia templates|kj{{=}}en|kp{{=}}w}} → {{ly|s=Category:Wikipedia templates|n=en:w:Category:Wikipedia templates|kj=en|kp=w}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Category:Wikipedia templates|n=en:w:Category:Wikipedia templates|kj=en|kp=w}}}}}}<!-- -->{{Pre koniec}} == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "strona": { "description": "Pełna nazwa strony.", "type": "wiki-page-name", "required": true, "aliases": [ "s" ] }, "nagłówek": { "description": "Nagłówek strony.", "type": "string", "suggested": true, "aliases": [ "g" ] }, "nazwa": { "description": "Nazwa linku.", "type": "string", "suggested": true, "aliases": [ "n" ] }, "klucz projektu": { "description": "Klucz danego projektu siostrzanego lub językowego Wikibooksa, używany zamiast zmiennych \"kod języka\" i \"kod projektu\".", "aliases": [ "k" ] }, "kod języka": { "description": "Kod języka projektu, do którego linkuje link, używany zamiast \"klucz projektu\".", "aliases": [ "kj" ] }, "kod projektu": { "description": "Kod projektu, do którego linkuje link, używany zamiast \"klucz projektu\".", "aliases": [ "kp" ] }, "za": { "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku.", "type": "string", "aliases": [ "z" ] }, "po": { "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku.", "type": "string", "aliases": [ "p" ] } }, "description": "Szablon do tworzenia linków, inteligentnych kolorujących w zależności do jakiej kategorii należą, wewnętrznych. Sprawdza, jeśli podano również nazwę linku, czy ona jest taka sama jak adres linku, a jeśli tak, to w definicji jego używa tylko adresu linku, a jeśli nie, to adresu linku i nazwy linku. Szablon nie używa parametru obsługujących nazwę przestrzeni nazw, w przeciwieństwie do {{LinkOgólne}} i {{LinkOgólne2}}, które używają to bezpośrednio, i jego pochodnych, używające pośrednio.", "paramOrder": [ "strona", "nagłówek", "nazwa", "za", "po", "klucz projektu", "kod języka", "kod projektu" ] } </templatedata> == Zobacz też == {{Link wewnętrzny/opis/Zobacz też}} {{Szablony linków wewnątrz- i między-serwisowych}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony linków wewnętrznych | Szablony pomocne do tworzenia spisów treści, książek }} </includeonly> njdmk0v0r8bq5c45tpaapeo1jgqyw94 558090 558089 2026-09-30T12:48:00Z Persino 2851 /* Użycie */ 558090 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Linki}} {{Skomplikowany}} {{#switch:{{ROOTPAGENAME}}|Link wewnętrzny={{Skrót szablonu|Ly}}|#defualt={{DivLinia}}}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Jest to specjalistyczny szablon linków inteligetnych (tzw. linki inteligetne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie: {{s|Link wewnętrzny|z przestrzenią=tak}}, który się znajduje pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów {{lpg|CSS}}, które są od nadawania barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody, a do tego celu używa {{NS|k=d|l=tak|pk=d}}. Sprawdza, jeśli podano również nazwę linku, czy ona jest taka sama jak adres linku, a jeśli tak, to w definicji jego używa tylko adresu linku, a jeśli nie, to adresu linku i nazwy linku. Szablon nie używa parametru obsługujących nazwę przestrzeni nazw, w przeciwieństwie do {{s|LinkOgólne}} (skrót: {{s|lo}}) i {{s|LinkOgólne2}} (skrót: {{s|lo2}}), które używają to bezpośrednio, i jego pochodnych, używające pośrednio. === Przykłady linków z zastosowanymi kolorami w kaskadowym arkuszu stylów: {{ls2|Link wewnętrzny/styles.css}} === {{Tabela nawigacyjna | tytuł = Spis kodów i im odpowiadających kolorów, linków wewnętrznych i zewnętrznych, na przykładzie jednego przykładowego linku | spis = <templatestyles src="Szablon:Link_wewnętrzny/styles.css" /> * Link: {{Span|klasa=iw link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iw}} - strona istnieje na tej wiki, * Link: {{Span|klasa=inw link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inw}} - strona z nagłówkiem istnieje na tej wiki, * Link: {{Span|klasa=niw link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|niw}} - strona nie istnieje na tej wiki, * Link: {{Span|klasa=ninw link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ninw}} - strona z nagłówkiem nie istnieje na tej wiki, * Link: {{Span|klasa=iwew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iwew}} - strona istnieje na tej wiki jako element wikidanych, * Link: {{Span|klasa=inwew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inwew}} - strona z nagłówkiem istnieje na tej wiki, jako element wikidanych, * Link: {{Span|klasa=iew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iew}} - strona istnieje jako element wikidanych, * Link: {{Span|klasa=inew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inew}} - strona z nagłówkiem istnieje jako element wikidanych, * Link: {{Span|klasa=niew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|niew}} - strona nie istnieje jako element wikidanych, * Link: {{Span|klasa=ninew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ninew}} - strona z nagłówkiem nie istnieje jako element wikidanych, * Link: {{Span|klasa=wash link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wash}} - strona z linkiem aktywnym wskazuje na aktualną stronę, * Link: {{Span|klasa=was link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|was}} - strona z linkiem nieaktywnym wskazuje na aktualną stronę, * Link: {{Span|klasa=wasn link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasn}} - strona z nagłówkiem wskazuje na aktualną stronę, * Link: {{Span|klasa=washew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|washew}} - strona z linkiem aktywnym wskazuje na aktualną stronę jako element wikidanych, * Link: {{Span|klasa=wasew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasew}} - strona z linkiem nieaktywnym wskazuje na aktualną stronę jako element wikidanych, * Link: {{Span|klasa=wasnew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasnew}} - strona z nagłówkiem wskazuje na aktualną stronę jako element wikidanych, * Link: {{Span|klasa=ipw link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ipw}} - strona istnieje poza wikidane, * Link: {{Span|klasa=inwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inwp}} - strona z nagłówkiem istnieje poza wikidane, * Link: {{Span|klasa=dwni link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|dwni}} - strona wskazująca na daną wiki, która nie istnieje, * Link: {{Span|klasa=su link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|su}} - strona z adresem URL niewskazującą na projekty WIKI, * Link: {{Span|klasa=sun link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|sun}} - strona z nagłówkiem z adresem URL niewskazującą na projekty WIKI, * Link: {{Span|klasa=iwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iwp}} - strona z parametrami istnieje na tej wiki, * Link: {{Span|klasa=inwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inwp}} - strona z parametrami i nagłówkiem istnieje na tej wiki, * Link: {{Span|klasa=niwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|niwp}} - strona z parametrami nie istnieje na tej wiki, * Link: {{Span|klasa=ninwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ninwp}} - strona z parametrami i nagłówkiem nie istnieje na tej wiki, * Link: {{Span|klasa=iwewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iwewp}} - strona z parametrami istnieje na tej wiki jako element wikidanych, * Link: {{Span|klasa=inwewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inwewp}} - strona z parametrami i nagłówkiem istnieje na tej wiki jako element wikidanych, * Link: {{Span|klasa=iewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iewp}} - strona z parametrami istnieje jako element wikidanych, * Link: {{Span|klasa=inewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inewp}} - strona z parametrami i nagłówkiem istnieje jako element wikidanych, * Link: {{Span|klasa=niewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|niewp}} - strona z parametrami nie istnieje jako element wikidanych, * Link: {{Span|klasa=ninewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ninewp}} - strona z parametrami i nagłówkiem nie istnieje jako element wikidanych, * Link: {{Span|klasa=washp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|washp}} - strona, z linkiem aktywnym, z parametrami wskazuje na aktualną stronę, * Link: {{Span|klasa=wasp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasp}} - strona, z linkiem nieaktywnym, z parametrami wskazuje na aktualną stronę, * Link: {{Span|klasa=wasnp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasnp}} - strona z parametrami i nagłówkiem wskazuje na aktualną stronę, * Link: {{Span|klasa=washewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|washewp}} - strona, z linkiem aktywnym, z parametrami wskazuje na aktualną stronę jako element wikidanych, * Link: {{Span|klasa=wasewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasewp}} - strona, z linkiem nieaktywnym, z parametrami wskazuje na aktualną stronę jako element wikidanych, * Link: {{Span|klasa=wasnewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasnewp}} - strona z parametrami i nagłówkiem wskazuje na aktualną stronę jako element wikidanych, * Link: {{Span|klasa=ipwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ipwp}} - strona z parametrami istnieje poza wikidane, * Link: {{Span|klasa=inpwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inpwp}} - strona z parametrami i nagłówkiem istnieje poza wikidane, * Link: {{Span|klasa=dwnip link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|dwnip}} - strona z parametrami wskazująca na daną wiki, która nie istnieje, * Link: {{Span|klasa=sup link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|sup}} - strona z parametrami z adresem URL niewskazującą na projekty WIKI, * Link: {{Span|klasa=sunp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|sunp}} - strona z parametrami i nagłówkiem, z adresem URL niewskazującą na projekty WIKI. }} ---- Z szablonu {{s|Link wewnętrzny/styles.css}} (z kaskadowych arkuszy stylów) korzystają szablony: {{s|Link wewnętrzny}} (skrót: {{s|ly}}), {{s|LinkURL}} (skrót: {{s|lz}}), {{s|LinkOgólne}} (skrót: {{s|lo}}) (i z niego korzystające wedle ich definicji), {{s|LinkUstęp}} (skrót: {{s|lu}}) (i z niego korzystające wedle ich definicji), {{s|Sekcja referencyjna}} (skrót: {{s|sr}}) i szablony symbolizujące wikikod, zbudowanych przy pomocy linków wewnętrznych: {{s|S}} i {{s|M}}, a także: {{s|L}}, oraz szablony sekcji: {{s|Osobny artykuł}}, {{s|Zobacz głównie}}, {{s|Zobacz sekcję}}, {{s|Zobacz też}}, {{s|Główny artykuł}}, {{s|Kategoria główna}} i {{s|Zobacz kategorię}} - i inne, sformułowane w oparciu o nie. == Opis parametrów == ; Pełne skrótowe pierwsze wywołanie {{Pre|{{s|Ly|s{{=}}|n{{=}}|z{{=}}|p{{=}}|g{{=}}|k{{=}}}}}} ; Pełne nieskrótowe pierwsze wywołanie {{Pre|{{s|Link wewnętrzny|strona{{=}}|nazwa{{=}}|za{{=}}|po{{=}}|nagłówek{{=}}|klucz projektu{{=}}}}}} ---- ;Pełne skrótowe drugie wywołanie {{Pre|{{s|Ly|s{{=}}|n{{=}}|z{{=}}|p{{=}}|g{{=}}|kj{{=}}|kp{{=}}}}}} ; Pełne nieskrótowe drugie wywołanie {{Pre|{{s|Link wewnętrzny|strona{{=}}|nazwa{{=}}|za{{=}}|po{{=}}|nagłówek{{=}}|kod języka{{=}}|kod projektu{{=}}}}}} ; Szablon przyjmuje tylko parametry nazwane: * {{Code|s}} lub {{Code|strona}} - pełna nazwa strony bez kodu projektu lub języka, do której ma linkować na tym samym projekcje lub innym, * {{Code|n}} lub {{Code|nazwa}} - nazwa linku, * {{Code|z}} lub {{Code|za}} - dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku, * {{Code|p}} lub {{Code|po}} - dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku, * {{Code|g}} lub {{Code|nagłówek}} - nagłówek rozdziału strony, do którego ma linkować, * {{Code|k}} lub {{Code|klucz projektu}} - klucz projektu siostrzanego lub językowego, używany zamiast {{Code|kod języka}} i {{Code|kod projektu}}, * {{Code|kj}} lub {{Code|kod języka}} - kod języka projektu, używany zamiast {{Code|klucz projektu}}, * {{Code|kp}} lub {{Code|kod projektu}} - kod projektu, używany zamiast {{Code|klucz projektu}}, * {{Code|u}} lub {{Code|uri}} - jeśli niepuste, to traktuj adres w linku wewnętrznym, jako adres URL, czyli on jest tak kodowany. ---- Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz|tak}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp|tak}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego, a także parametr {{Parametr|analiza|tak}} (skrót: {{Parametr|a|tak}}) do głębszego przetwarzania linkowego, ważniejszym od tego jest wcześniejszy ostatni parametr. == Przykład == ; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać.{{Hr}} {{Pre start}}<!-- -->{{s|ly|s{{=}}Pomoc:Spis treści}} → {{ly|s=Pomoc:Spis treści}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Pomoc:Spis treści|n{{=}}Spis treści}} → {{ly|s=Pomoc:Spis treści|n=Spis treści}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|n=Spis treści}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Pomoc:Spis treści|n{{=}}Pomoc:Spis treści}} → {{ly|s=Pomoc:Spis treści|n=Pomoc:Spis treści}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|n=Pomoc:Spis treści}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Pomoc:Spis treści|g{{=}}Wstęp}} → {{ly|s=Pomoc:Spis treści|g=Wstęp}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|g=Wstęp}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Pomoc:Spis treści|g{{=}}Wstęp|n{{=}}Pomoc:Spis treści#Wstęp}} → {{ly|s=Pomoc:Spis treści|g=Wstęp|n=Pomoc:Spis treści#Wstęp}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|g=Wstęp|n=Pomoc:Spis treści#Wstęp}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Pomoc:Spis treści|g{{=}}Wstęp|n{{=}}Spis treści}} → {{ly|s=Pomoc:Spis treści|g=Wstęp|n=Spis treści}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|g=Wstęp|n=Spis treści}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Pomoc:Spis treści|g{{=}}Wstęp|n{{=}}Pomoc:Spis treści}} → {{ly|s=Pomoc:Spis treści|g=Wstęp|n=Pomoc:Spis treści}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|g=Wstęp|n=Pomoc:Spis treści}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}Szablony}} → {{ly|s=Kategoria:Szablony|n=Szablony}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=Szablony}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}Kategoria:Szablony}} → {{ly|s=Kategoria:Szablony|n=Kategoria:Szablony}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=Kategoria:Szablony}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}w:Kategoria:Szablony|k{{=}}w}} → {{ly|s=Kategoria:Szablony|n=w:Kategoria:Szablony|k=w}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=w:Kategoria:Szablony|k=w}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}:Kategoria:Szablony}} → {{ly|s=Kategoria:Szablony|n=:Kategoria:Szablony}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=:Kategoria:Szablony}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}Kategoria:Szablony|k{{=}}w}} → {{ly|s=Kategoria:Szablony|n=Kategoria:Szablony|k=w}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=Kategoria:Szablony|k=w}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}:w:Kategoria:Szablony|k{{=}}w}} → {{ly|s=Kategoria:Szablony|n=:w:Kategoria:Szablony|k=w}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=:w:Kategoria:Szablony|k=w}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Category:Wikipedia templates|n{{=}}Category:Wikipedia templates|k{{=}}en:w}} → {{ly|s=Category:Wikipedia templates|n=Category:Wikipedia templates|k=en:w}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Category:Wikipedia templates|n=Category:Wikipedia templates|k=en:w}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Category:Wikipedia templates|n{{=}}en:w:Category:Wikipedia templates|k{{=}}w:en}} → {{ly|s=Category:Wikipedia templates|n=en:w:Category:Wikipedia templates|k=w:en}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Category:Wikipedia templates|n=en:w:Category:Wikipedia templates|k=w:en}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Category:Wikipedia templates|n{{=}}en:w:Category:Wikipedia templates|kj{{=}}en|kp{{=}}w}} → {{ly|s=Category:Wikipedia templates|n=en:w:Category:Wikipedia templates|kj=en|kp=w}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Category:Wikipedia templates|n=en:w:Category:Wikipedia templates|kj=en|kp=w}}}}}}<!-- -->{{Pre koniec}} == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "strona": { "description": "Pełna nazwa strony.", "type": "wiki-page-name", "required": true, "aliases": [ "s" ] }, "nagłówek": { "description": "Nagłówek strony.", "type": "string", "suggested": true, "aliases": [ "g" ] }, "nazwa": { "description": "Nazwa linku.", "type": "string", "suggested": true, "aliases": [ "n" ] }, "klucz projektu": { "description": "Klucz danego projektu siostrzanego lub językowego Wikibooksa, używany zamiast zmiennych \"kod języka\" i \"kod projektu\".", "aliases": [ "k" ] }, "kod języka": { "description": "Kod języka projektu, do którego linkuje link, używany zamiast \"klucz projektu\".", "aliases": [ "kj" ] }, "kod projektu": { "description": "Kod projektu, do którego linkuje link, używany zamiast \"klucz projektu\".", "aliases": [ "kp" ] }, "za": { "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku.", "type": "string", "aliases": [ "z" ] }, "po": { "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku.", "type": "string", "aliases": [ "p" ] } }, "description": "Szablon do tworzenia linków, inteligentnych kolorujących w zależności do jakiej kategorii należą, wewnętrznych. Sprawdza, jeśli podano również nazwę linku, czy ona jest taka sama jak adres linku, a jeśli tak, to w definicji jego używa tylko adresu linku, a jeśli nie, to adresu linku i nazwy linku. Szablon nie używa parametru obsługujących nazwę przestrzeni nazw, w przeciwieństwie do {{LinkOgólne}} i {{LinkOgólne2}}, które używają to bezpośrednio, i jego pochodnych, używające pośrednio.", "paramOrder": [ "strona", "nagłówek", "nazwa", "za", "po", "klucz projektu", "kod języka", "kod projektu" ] } </templatedata> == Zobacz też == {{Link wewnętrzny/opis/Zobacz też}} {{Szablony linków wewnątrz- i między-serwisowych}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony linków wewnętrznych | Szablony pomocne do tworzenia spisów treści, książek }} </includeonly> a7oi6q5mknn5hzpsvj8y4mn3061elx7 558092 558090 2026-09-30T12:50:43Z Persino 2851 /* Użycie */ 558092 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Linki}} {{Skomplikowany}} {{#switch:{{ROOTPAGENAME}}|Link wewnętrzny={{Skrót szablonu|Ly}}|#defualt={{DivLinia}}}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Jest to specjalistyczny szablon linków inteligentnych (tzw. linki inteligentne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie: {{s|Link wewnętrzny|z przestrzenią=tak}}, który się znajduje pod tabelą wywołania szablonowego: {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów {{lpg|CSS}}, które są od nadawania barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody, a do tego celu używa {{NS|k=d|l=tak|pk=d}}. Sprawdza, jeśli podano również nazwę linku, czy ona jest taka sama jak adres linku, a jeśli tak, to w definicji jego używa tylko adresu linku, a jeśli nie, to adresu linku i nazwy linku. Szablon nie używa parametru obsługujących nazwę przestrzeni nazw, w przeciwieństwie do {{s|LinkOgólne}} (skrót: {{s|lo}}) i {{s|LinkOgólne2}} (skrót: {{s|lo2}}), które używają to bezpośrednio, i jego pochodnych, używające pośrednio. === Przykłady linków z zastosowanymi kolorami w kaskadowym arkuszu stylów: {{ls2|Link wewnętrzny/styles.css}} === {{Tabela nawigacyjna | tytuł = Spis kodów i im odpowiadających kolorów, linków wewnętrznych i zewnętrznych, na przykładzie jednego przykładowego linku | spis = <templatestyles src="Szablon:Link_wewnętrzny/styles.css" /> * Link: {{Span|klasa=iw link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iw}} - strona istnieje na tej wiki, * Link: {{Span|klasa=inw link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inw}} - strona z nagłówkiem istnieje na tej wiki, * Link: {{Span|klasa=niw link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|niw}} - strona nie istnieje na tej wiki, * Link: {{Span|klasa=ninw link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ninw}} - strona z nagłówkiem nie istnieje na tej wiki, * Link: {{Span|klasa=iwew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iwew}} - strona istnieje na tej wiki jako element wikidanych, * Link: {{Span|klasa=inwew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inwew}} - strona z nagłówkiem istnieje na tej wiki, jako element wikidanych, * Link: {{Span|klasa=iew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iew}} - strona istnieje jako element wikidanych, * Link: {{Span|klasa=inew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inew}} - strona z nagłówkiem istnieje jako element wikidanych, * Link: {{Span|klasa=niew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|niew}} - strona nie istnieje jako element wikidanych, * Link: {{Span|klasa=ninew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ninew}} - strona z nagłówkiem nie istnieje jako element wikidanych, * Link: {{Span|klasa=wash link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wash}} - strona z linkiem aktywnym wskazuje na aktualną stronę, * Link: {{Span|klasa=was link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|was}} - strona z linkiem nieaktywnym wskazuje na aktualną stronę, * Link: {{Span|klasa=wasn link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasn}} - strona z nagłówkiem wskazuje na aktualną stronę, * Link: {{Span|klasa=washew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|washew}} - strona z linkiem aktywnym wskazuje na aktualną stronę jako element wikidanych, * Link: {{Span|klasa=wasew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasew}} - strona z linkiem nieaktywnym wskazuje na aktualną stronę jako element wikidanych, * Link: {{Span|klasa=wasnew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasnew}} - strona z nagłówkiem wskazuje na aktualną stronę jako element wikidanych, * Link: {{Span|klasa=ipw link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ipw}} - strona istnieje poza wikidane, * Link: {{Span|klasa=inwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inwp}} - strona z nagłówkiem istnieje poza wikidane, * Link: {{Span|klasa=dwni link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|dwni}} - strona wskazująca na daną wiki, która nie istnieje, * Link: {{Span|klasa=su link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|su}} - strona z adresem URL niewskazującą na projekty WIKI, * Link: {{Span|klasa=sun link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|sun}} - strona z nagłówkiem z adresem URL niewskazującą na projekty WIKI, * Link: {{Span|klasa=iwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iwp}} - strona z parametrami istnieje na tej wiki, * Link: {{Span|klasa=inwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inwp}} - strona z parametrami i nagłówkiem istnieje na tej wiki, * Link: {{Span|klasa=niwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|niwp}} - strona z parametrami nie istnieje na tej wiki, * Link: {{Span|klasa=ninwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ninwp}} - strona z parametrami i nagłówkiem nie istnieje na tej wiki, * Link: {{Span|klasa=iwewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iwewp}} - strona z parametrami istnieje na tej wiki jako element wikidanych, * Link: {{Span|klasa=inwewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inwewp}} - strona z parametrami i nagłówkiem istnieje na tej wiki jako element wikidanych, * Link: {{Span|klasa=iewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iewp}} - strona z parametrami istnieje jako element wikidanych, * Link: {{Span|klasa=inewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inewp}} - strona z parametrami i nagłówkiem istnieje jako element wikidanych, * Link: {{Span|klasa=niewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|niewp}} - strona z parametrami nie istnieje jako element wikidanych, * Link: {{Span|klasa=ninewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ninewp}} - strona z parametrami i nagłówkiem nie istnieje jako element wikidanych, * Link: {{Span|klasa=washp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|washp}} - strona, z linkiem aktywnym, z parametrami wskazuje na aktualną stronę, * Link: {{Span|klasa=wasp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasp}} - strona, z linkiem nieaktywnym, z parametrami wskazuje na aktualną stronę, * Link: {{Span|klasa=wasnp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasnp}} - strona z parametrami i nagłówkiem wskazuje na aktualną stronę, * Link: {{Span|klasa=washewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|washewp}} - strona, z linkiem aktywnym, z parametrami wskazuje na aktualną stronę jako element wikidanych, * Link: {{Span|klasa=wasewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasewp}} - strona, z linkiem nieaktywnym, z parametrami wskazuje na aktualną stronę jako element wikidanych, * Link: {{Span|klasa=wasnewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasnewp}} - strona z parametrami i nagłówkiem wskazuje na aktualną stronę jako element wikidanych, * Link: {{Span|klasa=ipwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ipwp}} - strona z parametrami istnieje poza wikidane, * Link: {{Span|klasa=inpwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inpwp}} - strona z parametrami i nagłówkiem istnieje poza wikidane, * Link: {{Span|klasa=dwnip link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|dwnip}} - strona z parametrami wskazująca na daną wiki, która nie istnieje, * Link: {{Span|klasa=sup link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|sup}} - strona z parametrami z adresem URL niewskazującą na projekty WIKI, * Link: {{Span|klasa=sunp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|sunp}} - strona z parametrami i nagłówkiem, z adresem URL niewskazującą na projekty WIKI. }} ---- Z szablonu {{s|Link wewnętrzny/styles.css}} (z kaskadowych arkuszy stylów) korzystają szablony: {{s|Link wewnętrzny}} (skrót: {{s|ly}}), {{s|LinkURL}} (skrót: {{s|lz}}), {{s|LinkOgólne}} (skrót: {{s|lo}}) (i z niego korzystające wedle ich definicji), {{s|LinkUstęp}} (skrót: {{s|lu}}) (i z niego korzystające wedle ich definicji), {{s|Sekcja referencyjna}} (skrót: {{s|sr}}) i szablony symbolizujące wikikod, zbudowanych przy pomocy linków wewnętrznych: {{s|S}} i {{s|M}}, a także: {{s|L}}, oraz szablony sekcji: {{s|Osobny artykuł}}, {{s|Zobacz głównie}}, {{s|Zobacz sekcję}}, {{s|Zobacz też}}, {{s|Główny artykuł}}, {{s|Kategoria główna}} i {{s|Zobacz kategorię}} - i inne, sformułowane w oparciu o nie. == Opis parametrów == ; Pełne skrótowe pierwsze wywołanie {{Pre|{{s|Ly|s{{=}}|n{{=}}|z{{=}}|p{{=}}|g{{=}}|k{{=}}}}}} ; Pełne nieskrótowe pierwsze wywołanie {{Pre|{{s|Link wewnętrzny|strona{{=}}|nazwa{{=}}|za{{=}}|po{{=}}|nagłówek{{=}}|klucz projektu{{=}}}}}} ---- ;Pełne skrótowe drugie wywołanie {{Pre|{{s|Ly|s{{=}}|n{{=}}|z{{=}}|p{{=}}|g{{=}}|kj{{=}}|kp{{=}}}}}} ; Pełne nieskrótowe drugie wywołanie {{Pre|{{s|Link wewnętrzny|strona{{=}}|nazwa{{=}}|za{{=}}|po{{=}}|nagłówek{{=}}|kod języka{{=}}|kod projektu{{=}}}}}} ; Szablon przyjmuje tylko parametry nazwane: * {{Code|s}} lub {{Code|strona}} - pełna nazwa strony bez kodu projektu lub języka, do której ma linkować na tym samym projekcje lub innym, * {{Code|n}} lub {{Code|nazwa}} - nazwa linku, * {{Code|z}} lub {{Code|za}} - dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku, * {{Code|p}} lub {{Code|po}} - dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku, * {{Code|g}} lub {{Code|nagłówek}} - nagłówek rozdziału strony, do którego ma linkować, * {{Code|k}} lub {{Code|klucz projektu}} - klucz projektu siostrzanego lub językowego, używany zamiast {{Code|kod języka}} i {{Code|kod projektu}}, * {{Code|kj}} lub {{Code|kod języka}} - kod języka projektu, używany zamiast {{Code|klucz projektu}}, * {{Code|kp}} lub {{Code|kod projektu}} - kod projektu, używany zamiast {{Code|klucz projektu}}, * {{Code|u}} lub {{Code|uri}} - jeśli niepuste, to traktuj adres w linku wewnętrznym, jako adres URL, czyli on jest tak kodowany. ---- Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz|tak}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp|tak}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego, a także parametr {{Parametr|analiza|tak}} (skrót: {{Parametr|a|tak}}) do głębszego przetwarzania linkowego, ważniejszym od tego jest wcześniejszy ostatni parametr. == Przykład == ; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać.{{Hr}} {{Pre start}}<!-- -->{{s|ly|s{{=}}Pomoc:Spis treści}} → {{ly|s=Pomoc:Spis treści}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Pomoc:Spis treści|n{{=}}Spis treści}} → {{ly|s=Pomoc:Spis treści|n=Spis treści}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|n=Spis treści}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Pomoc:Spis treści|n{{=}}Pomoc:Spis treści}} → {{ly|s=Pomoc:Spis treści|n=Pomoc:Spis treści}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|n=Pomoc:Spis treści}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Pomoc:Spis treści|g{{=}}Wstęp}} → {{ly|s=Pomoc:Spis treści|g=Wstęp}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|g=Wstęp}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Pomoc:Spis treści|g{{=}}Wstęp|n{{=}}Pomoc:Spis treści#Wstęp}} → {{ly|s=Pomoc:Spis treści|g=Wstęp|n=Pomoc:Spis treści#Wstęp}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|g=Wstęp|n=Pomoc:Spis treści#Wstęp}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Pomoc:Spis treści|g{{=}}Wstęp|n{{=}}Spis treści}} → {{ly|s=Pomoc:Spis treści|g=Wstęp|n=Spis treści}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|g=Wstęp|n=Spis treści}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Pomoc:Spis treści|g{{=}}Wstęp|n{{=}}Pomoc:Spis treści}} → {{ly|s=Pomoc:Spis treści|g=Wstęp|n=Pomoc:Spis treści}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|g=Wstęp|n=Pomoc:Spis treści}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}Szablony}} → {{ly|s=Kategoria:Szablony|n=Szablony}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=Szablony}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}Kategoria:Szablony}} → {{ly|s=Kategoria:Szablony|n=Kategoria:Szablony}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=Kategoria:Szablony}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}w:Kategoria:Szablony|k{{=}}w}} → {{ly|s=Kategoria:Szablony|n=w:Kategoria:Szablony|k=w}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=w:Kategoria:Szablony|k=w}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}:Kategoria:Szablony}} → {{ly|s=Kategoria:Szablony|n=:Kategoria:Szablony}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=:Kategoria:Szablony}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}Kategoria:Szablony|k{{=}}w}} → {{ly|s=Kategoria:Szablony|n=Kategoria:Szablony|k=w}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=Kategoria:Szablony|k=w}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}:w:Kategoria:Szablony|k{{=}}w}} → {{ly|s=Kategoria:Szablony|n=:w:Kategoria:Szablony|k=w}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=:w:Kategoria:Szablony|k=w}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Category:Wikipedia templates|n{{=}}Category:Wikipedia templates|k{{=}}en:w}} → {{ly|s=Category:Wikipedia templates|n=Category:Wikipedia templates|k=en:w}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Category:Wikipedia templates|n=Category:Wikipedia templates|k=en:w}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Category:Wikipedia templates|n{{=}}en:w:Category:Wikipedia templates|k{{=}}w:en}} → {{ly|s=Category:Wikipedia templates|n=en:w:Category:Wikipedia templates|k=w:en}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Category:Wikipedia templates|n=en:w:Category:Wikipedia templates|k=w:en}}}}}}<!-- -->{{Hr}}<!-- -->{{s|ly|s{{=}}Category:Wikipedia templates|n{{=}}en:w:Category:Wikipedia templates|kj{{=}}en|kp{{=}}w}} → {{ly|s=Category:Wikipedia templates|n=en:w:Category:Wikipedia templates|kj=en|kp=w}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Category:Wikipedia templates|n=en:w:Category:Wikipedia templates|kj=en|kp=w}}}}}}<!-- -->{{Pre koniec}} == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "strona": { "description": "Pełna nazwa strony.", "type": "wiki-page-name", "required": true, "aliases": [ "s" ] }, "nagłówek": { "description": "Nagłówek strony.", "type": "string", "suggested": true, "aliases": [ "g" ] }, "nazwa": { "description": "Nazwa linku.", "type": "string", "suggested": true, "aliases": [ "n" ] }, "klucz projektu": { "description": "Klucz danego projektu siostrzanego lub językowego Wikibooksa, używany zamiast zmiennych \"kod języka\" i \"kod projektu\".", "aliases": [ "k" ] }, "kod języka": { "description": "Kod języka projektu, do którego linkuje link, używany zamiast \"klucz projektu\".", "aliases": [ "kj" ] }, "kod projektu": { "description": "Kod projektu, do którego linkuje link, używany zamiast \"klucz projektu\".", "aliases": [ "kp" ] }, "za": { "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku.", "type": "string", "aliases": [ "z" ] }, "po": { "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku.", "type": "string", "aliases": [ "p" ] } }, "description": "Szablon do tworzenia linków, inteligentnych kolorujących w zależności do jakiej kategorii należą, wewnętrznych. Sprawdza, jeśli podano również nazwę linku, czy ona jest taka sama jak adres linku, a jeśli tak, to w definicji jego używa tylko adresu linku, a jeśli nie, to adresu linku i nazwy linku. Szablon nie używa parametru obsługujących nazwę przestrzeni nazw, w przeciwieństwie do {{LinkOgólne}} i {{LinkOgólne2}}, które używają to bezpośrednio, i jego pochodnych, używające pośrednio.", "paramOrder": [ "strona", "nagłówek", "nazwa", "za", "po", "klucz projektu", "kod języka", "kod projektu" ] } </templatedata> == Zobacz też == {{Link wewnętrzny/opis/Zobacz też}} {{Szablony linków wewnątrz- i między-serwisowych}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony linków wewnętrznych | Szablony pomocne do tworzenia spisów treści, książek }} </includeonly> b16ptqyifsf0xb4rookk3e2ct7l8l35 Szablon:LinkURL/opis 10 56545 558097 553143 2026-09-30T12:55:50Z Persino 2851 /* Opis szablonu */ 558097 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Module:Linki}} {{Skomplikowany}} {{#switch:{{ROOTPAGENAME}}|LinkURL={{Skrót szablonu|Lz}}|#default={{DivLinia}}}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Opis szablonu == Jest to specjalistyczny szablon linków inteligentnych (tzw. linki inteligentne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie: {{s|Link wewnętrzny|z przestrzenią=tak}}, który się znajduje pod tabelą wywołania szablonowego: {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów CSS, które są od nadawania barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody, a do tego celu używa {{NS|k=d|l=tak|pk=d}}. Szablon {{s|LinkURL}} posiada wersję skróconą w postaci skrótu podanego w prawym górnym rogu strony w podwójnych nawiasach klamrowych. == Użycie == Szablon wykorzystuje adres strony URL, protokolarny lub nie, albo adres linku wewnętrznego, i tworzy z niego link, niekoniecznie zewnętrzny, o podanej nazwie, lub nie, wyświetlanej przez szablon. Szablon tworzy link wewnętrzny, gdy podano adres projektu siostrzanego lub językowego {{NAZWASERWISU|link=w}}, bez parametrów, a link zewnętrzny, gdy są parametry, lub URL. W przypadku projektów {{NAZWASERWISU|klucz projektu=mw|link=tak}}, gdy podano parametr z wartością {{Parametr|w|w}} lub {{Parametr|w|wiki}}, to szablon generuje link zewnętrzny kolejno w postaci {{Code|../w/..}}, i {{Code|../wiki/..}}. == Skrót do szablonu == Skrót do szablonu {{s|LinkURL}} jest {{s|lz}}. == Opis parametrów == ; Pełne skrótowe pierwsze wywołanie w przypadku podania strony URL {{Pre|{{s|lz|s{{=}}|w{{=}}|g{{=}}|b{{=}}|z{{=}}|p{{=}}}}}} ; Pełne nieskrótowe pierwsze wywołanie w przypadku podania strony URL {{Pre|{{s|LinkURL|strona{{=}}|wersja linku{{=}}|nagłówek{{=}}|bieżąca{{=}}|za{{=}}|po{{=}}}}}} ---- ; Pełne skrótowe pierwsze wywołanie w przypadku podania strony URL {{Pre|{{s|lz|s{{=}}|w{{=}}|n{{=}}|z{{=}}|p{{=}}}}}} ; Pełne nieskrótowe pierwsze wywołanie w przypadku podania strony URL {{Pre|{{s|LinkURL|strona{{=}}|wersja linku{{=}}|nazwa{{=}}|za{{=}}|po{{=}}}}}} ---- ; Pełne skrótowe drugie wywołanie, gdy strona nie jest adresem URL {{Pre|{{s|lz|f{{=}}|s{{=}}|c{{=}}|g{{=}}|k{{=}}|w{{=}}|n{{=}}|z{{=}}|p{{=}}}}}} ; Pełne nieskrótowe drugie wywołanie, gdy strona nie jest adresem URL {{Pre|{{s|LinkURL|{{!(}}miano przestrzeni nazw{{!}}przestrzeń{{)!}}{{=}}|strona{{=}}|parametry{{=}}|nagłówek{{=}}|klucz projektu{{=}}|wersja linku{{=}}|nazwa{{=}}|za{{=}}|po{{=}}}}}} ---- ;Pełne skrótowe trzecie wywołanie, gdy strona nie jest adresem URL {{Pre|{{s|lz|f{{=}}|s{{=}}|c{{=}}|g{{=}}|kj{{=}}|kp{{=}}|w{{=}}|n{{=}}|z{{=}}|p{{=}}}}}} ;Pełne nieskrótowe trzecie wywołanie, gdy strona nie jest adresem URL {{Pre|{{s|LinkURL|{{!(}}miano przestrzeni nazw{{!}}przestrzeń{{)!}}{{=}}|strona{{=}}|parametry{{=}}|nagłówek{{=}}|kod języka{{=}}|kod projektu{{=}}|wersja linku{{=}}|nazwa{{=}}|za{{=}}|po{{=}}}}}} ---- ; Parametry, strona URL może wskazywać na jakąś wiki lub być zewnętrznym adresem do zupełnie innej wiki lub jakieś innej strony nienależącej do żadnego wiki * {{Code|f}} (przestarzałe), {{Code|przestrzeń}} lub {{Code|miano przestrzeni nazw}} - nazwa przestrzeni nazw, do której należy strona * {{Code|s}} (przestarzałe) lub {{Code|strona}} - nazwa strony, z przestrzenią nazw, kodami języka lub projektu albo nie lub nazwą strony zaczynający się od {{Code|/wiki/}} lub {{Code|/w/}}, albo jest URL (z nazwą protokołu lub nie) strony, a na projektach MediaWiki z nazwą strony z tymi pierwszymi opcjami (nazwy przestrzeni i kody), co tutaj są wymienione. * {{Code|c}} (przestarzałe) lub {{Code|parametry}} - parametry strony, * {{Code|g}} (przestarzałe) lub {{Code|nagłówek}} - nagłówek strony następujący po znaku: {{Code|#}}, * {{Code|k}} (przestarzałe) lub {{Code|klucz projektu}} - klucz projektu, używany zamiast zmiennych: {{Code|kod języka}} i {{Code|kod projektu}}, * {{Code|kj}} (przestarzałe) lub {{Code|kod języka}} - kod języka, używany zamiast zmiennej {{Code|klucz projektu}}, * {{Code|kp}} (przestarzałe) lub {{Code|kod projektu}} - kod projektu, używany zamiast zmiennej {{Code|klucz projektu}}, * {{Code|w}} (przestarzałe) lub {{Code|wersja linku}} - generuje link zewnętrzny, gdy: {{Parametr|wersja linku|w}}, w postaci: {{Code|../w/..}}, zamiast: {{Code|../wiki/..}} dla {{Parametr|wersja linku|wiki}}, a gdy {{Parametr|wersja linku}}, to generuje normalny link wewnętrzny, jeżeli nie ma on parametrów i nie jest URL, * {{Code|n}} (przestarzałe) lub {{Code|nazwa}} - nazwa wyświetlana linku, * {{Code|b) (przestarzałe) lub {{Code|bieżąca}} - czy ma powtarzać nazwę nagłówka w nazwie linku, gdy nazwa linku jest niepodana, * {{Code|z}} (przestarzałe) lub {{Code|za}} - dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku, * {{Code|p}} (przestarzałe) lub {{Code|po}} - dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku, * {{Code|u}} (pzestarzałe) lub {{Code|uri}} - jeśli niepuste, wtedy traktuj adres w linku wewnętrznym, jako adres URL, czyli on jest tak kodowany. ---- Parametry w wersji skróconej są jedynie przestarzałe dla nazwy wersji pełnej szablonu {{s|LinkURL}}, a nie są, gdy używamy przekierowania do tego szablonu w postaci {{s|Lz}}. ---- ---- Jeżeli parametr {{Code|strona}} jest adresem URL, to należy ewentualnie go używać jedynie z argumentem {{Code|nazwa}}. W przypadku linków zewnętrznych nazwa linku jest tworzona automatycznie na podstawie parametru {{Code|strona}}, gdy nie podano zmiennej {{Code|nazwa}}. Jeżeli ona jest pusta, to link wyświetla automatyczny numerek, tak jak przy zwykłych tych linkach. A dla linku wewnętrznego, parametr {{Code|nazwa}}, czy jest pusty, czy nie podany, to i tak wyświetla się nazwa linku (bez numerka). ---- Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} i {{Parametr|bez przetwarzania|tak}}, które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego, a także parametr: {{Parametr|analiza|tak}} ({{Parametr|a}}), do głębszego przetwarzania linkowego, ważniejszym od tego jest wcześniejszy ostatni parametr. == Przykłady == ; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać.{{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna}} → Wynik: {{lz|s=Fizyka teoretyczna}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|n=Dział fizyki}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}w}} → Wynik: {{lz|s=Fizyka teoretyczna|w=w}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=w}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}wiki|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny?action{{=}}edit#Obsługa|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|n=Szablon Link wewnętrzny}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}w|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|w=w|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=w|n=Dział fizyki}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny?action{{=}}edit#Obsługa|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}wiki|w{{=}}wiki|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny?action{{=}}edit#Obsługa|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|klucz projektu{{=}}en:w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|kj{{=}}en|kp{{=}}w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|g{{=}}What is Wikipedia?|klucz projektu{{=}}en:w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|g{{=}}What is Wikipedia?|kj{{=}}en|kp{{=}}w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|c{{=}}action{{=}}edit|g{{=}}What is Wikipedia?|klucz projektu{{=}}en:w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|c{{=}}action{{=}}edit|g{{=}}What is Wikipedia?|kj{{=}}en|kp{{=}}w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers |n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action=edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers |n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers&action{{=}}edit|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action{{=}}edit|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action=edit|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers&action{{=}}edit#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action=edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action=edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea|n{{=}}Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea#Taksonawigacja|n{{=}}Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea?action{{=}}edit|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea?action{{=}}edit#Taksonawigacja|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea#Taksonawigacja|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea&action{{=}}edit|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea&action{{=}}edit#Taksonawigacja|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}//lua.org.pl/5.2/manual.html|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=//lua.org.pl/5.2/manual.html|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//lua.org.pl/5.2/manual.html|n=Język Lua 5.2}}}}}} * Wikikod: {{s|lz|s{{=}}//lua.org.pl/5.2/manual.html#8.3|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=//lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://lua.org.pl/5.2/manual.html</nowiki>|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=http://lua.org.pl/5.2/manual.html|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://lua.org.pl/5.2/manual.html|n=Język Lua 5.2}}}}}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://lua.org.pl/5.2/manual.html#8.3</nowiki>|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=http://lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea&action=edit</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "miano przestrzeni nazw": { "aliases": [ "przestrzeń" ], "description": "Przestrzeń nazw, do której ma zaliczyć stronę.", "type": "string", "suggested": true }, "strona": { "description": "Nazwa strony, bez przestrzeni nazw. Jeżeli parametr \"strona\" jest adresem URL, to należy ewentualnie go używać jedynie z argumentem \"nazwa\". ", "type": "wiki-page-name", "required": true }, "nagłówek": { "description": "Nagłówek strony.", "type": "string" }, "klucz projektu": { "description": "Klucz projektu, używany zamiast: \"kod języka\" i \"kod projektu\"." }, "kod języka": { "description": "Kod języka, używany zamiast \"Klucz projektu\"." }, "kod projektu": { "description": "Kod projektu, używany zamiast \"klucz projektu\"." }, "nazwa": { "description": "Nazwa wyświetlana linku.", "type": "string", "suggested": true }, "parametry": { "description": "Parametry strony.", "type": "line", "suggested": true }, "za": { "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku.", "type": "string" }, "po": { "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku.", "type": "string" } }, "description": "Szablon tworzy adres strony URL i tworzy z niego link o podanej nazwie wyświetlanej przez szablon. Też można bezpośrednio wsadzić do tego sam adres URL, nie za pomocą jego elementów. Jest to szablon linków inteligentnych kolorujących linki w zależności do jakiej kategorii one należą, do tego celu używa Wikidane.\n\nSzablon tworzy link wewnętrzny, gdy podano adres projektu siostrzanego lub językowego Wikibooks, bez parametrów, a link zewnętrzny, gdy są parametry, lub URL.\n\nW przypadku projektów MediaWiki, gdy podano parametr z wartością | wersja linku = w lub | wersja linku = wiki, to szablon generuje link zewnętrzny kolejno w postaci ../w/.., i ../wiki/... ", "paramOrder": [ "miano przestrzeni nazw", "strona", "parametry", "nagłówek", "klucz projektu", "kod języka", "kod projektu", "nazwa", "za", "po" ] } </templatedata> == Zobacz też == {{Link wewnętrzny/opis/Zobacz też}} {{Szablony linków wewnątrz- i między-serwisowych}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Linki z opcją do zewnętrznych serwisów}} </includeonly> hrkcta6s47dih3jpeykkizq4ipyqscu 558098 558097 2026-09-30T12:56:29Z Persino 2851 /* Opis szablonu */ 558098 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Module:Linki}} {{Skomplikowany}} {{#switch:{{ROOTPAGENAME}}|LinkURL={{Skrót szablonu|Lz}}|#default={{DivLinia}}}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Opis szablonu == Jest to specjalistyczny szablon linków inteligentnych (tzw. linki inteligentne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie: {{s|Link wewnętrzny|z przestrzenią=tak}}, który się znajduje pod tabelą wywołania szablonowego: {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów {{lpg|CSS}}, które są od nadawania barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody, a do tego celu używa {{NS|k=d|l=tak|pk=d}}. Szablon {{s|LinkURL}} posiada wersję skróconą w postaci skrótu podanego w prawym górnym rogu strony w podwójnych nawiasach klamrowych. == Użycie == Szablon wykorzystuje adres strony URL, protokolarny lub nie, albo adres linku wewnętrznego, i tworzy z niego link, niekoniecznie zewnętrzny, o podanej nazwie, lub nie, wyświetlanej przez szablon. Szablon tworzy link wewnętrzny, gdy podano adres projektu siostrzanego lub językowego {{NAZWASERWISU|link=w}}, bez parametrów, a link zewnętrzny, gdy są parametry, lub URL. W przypadku projektów {{NAZWASERWISU|klucz projektu=mw|link=tak}}, gdy podano parametr z wartością {{Parametr|w|w}} lub {{Parametr|w|wiki}}, to szablon generuje link zewnętrzny kolejno w postaci {{Code|../w/..}}, i {{Code|../wiki/..}}. == Skrót do szablonu == Skrót do szablonu {{s|LinkURL}} jest {{s|lz}}. == Opis parametrów == ; Pełne skrótowe pierwsze wywołanie w przypadku podania strony URL {{Pre|{{s|lz|s{{=}}|w{{=}}|g{{=}}|b{{=}}|z{{=}}|p{{=}}}}}} ; Pełne nieskrótowe pierwsze wywołanie w przypadku podania strony URL {{Pre|{{s|LinkURL|strona{{=}}|wersja linku{{=}}|nagłówek{{=}}|bieżąca{{=}}|za{{=}}|po{{=}}}}}} ---- ; Pełne skrótowe pierwsze wywołanie w przypadku podania strony URL {{Pre|{{s|lz|s{{=}}|w{{=}}|n{{=}}|z{{=}}|p{{=}}}}}} ; Pełne nieskrótowe pierwsze wywołanie w przypadku podania strony URL {{Pre|{{s|LinkURL|strona{{=}}|wersja linku{{=}}|nazwa{{=}}|za{{=}}|po{{=}}}}}} ---- ; Pełne skrótowe drugie wywołanie, gdy strona nie jest adresem URL {{Pre|{{s|lz|f{{=}}|s{{=}}|c{{=}}|g{{=}}|k{{=}}|w{{=}}|n{{=}}|z{{=}}|p{{=}}}}}} ; Pełne nieskrótowe drugie wywołanie, gdy strona nie jest adresem URL {{Pre|{{s|LinkURL|{{!(}}miano przestrzeni nazw{{!}}przestrzeń{{)!}}{{=}}|strona{{=}}|parametry{{=}}|nagłówek{{=}}|klucz projektu{{=}}|wersja linku{{=}}|nazwa{{=}}|za{{=}}|po{{=}}}}}} ---- ;Pełne skrótowe trzecie wywołanie, gdy strona nie jest adresem URL {{Pre|{{s|lz|f{{=}}|s{{=}}|c{{=}}|g{{=}}|kj{{=}}|kp{{=}}|w{{=}}|n{{=}}|z{{=}}|p{{=}}}}}} ;Pełne nieskrótowe trzecie wywołanie, gdy strona nie jest adresem URL {{Pre|{{s|LinkURL|{{!(}}miano przestrzeni nazw{{!}}przestrzeń{{)!}}{{=}}|strona{{=}}|parametry{{=}}|nagłówek{{=}}|kod języka{{=}}|kod projektu{{=}}|wersja linku{{=}}|nazwa{{=}}|za{{=}}|po{{=}}}}}} ---- ; Parametry, strona URL może wskazywać na jakąś wiki lub być zewnętrznym adresem do zupełnie innej wiki lub jakieś innej strony nienależącej do żadnego wiki * {{Code|f}} (przestarzałe), {{Code|przestrzeń}} lub {{Code|miano przestrzeni nazw}} - nazwa przestrzeni nazw, do której należy strona * {{Code|s}} (przestarzałe) lub {{Code|strona}} - nazwa strony, z przestrzenią nazw, kodami języka lub projektu albo nie lub nazwą strony zaczynający się od {{Code|/wiki/}} lub {{Code|/w/}}, albo jest URL (z nazwą protokołu lub nie) strony, a na projektach MediaWiki z nazwą strony z tymi pierwszymi opcjami (nazwy przestrzeni i kody), co tutaj są wymienione. * {{Code|c}} (przestarzałe) lub {{Code|parametry}} - parametry strony, * {{Code|g}} (przestarzałe) lub {{Code|nagłówek}} - nagłówek strony następujący po znaku: {{Code|#}}, * {{Code|k}} (przestarzałe) lub {{Code|klucz projektu}} - klucz projektu, używany zamiast zmiennych: {{Code|kod języka}} i {{Code|kod projektu}}, * {{Code|kj}} (przestarzałe) lub {{Code|kod języka}} - kod języka, używany zamiast zmiennej {{Code|klucz projektu}}, * {{Code|kp}} (przestarzałe) lub {{Code|kod projektu}} - kod projektu, używany zamiast zmiennej {{Code|klucz projektu}}, * {{Code|w}} (przestarzałe) lub {{Code|wersja linku}} - generuje link zewnętrzny, gdy: {{Parametr|wersja linku|w}}, w postaci: {{Code|../w/..}}, zamiast: {{Code|../wiki/..}} dla {{Parametr|wersja linku|wiki}}, a gdy {{Parametr|wersja linku}}, to generuje normalny link wewnętrzny, jeżeli nie ma on parametrów i nie jest URL, * {{Code|n}} (przestarzałe) lub {{Code|nazwa}} - nazwa wyświetlana linku, * {{Code|b) (przestarzałe) lub {{Code|bieżąca}} - czy ma powtarzać nazwę nagłówka w nazwie linku, gdy nazwa linku jest niepodana, * {{Code|z}} (przestarzałe) lub {{Code|za}} - dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku, * {{Code|p}} (przestarzałe) lub {{Code|po}} - dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku, * {{Code|u}} (pzestarzałe) lub {{Code|uri}} - jeśli niepuste, wtedy traktuj adres w linku wewnętrznym, jako adres URL, czyli on jest tak kodowany. ---- Parametry w wersji skróconej są jedynie przestarzałe dla nazwy wersji pełnej szablonu {{s|LinkURL}}, a nie są, gdy używamy przekierowania do tego szablonu w postaci {{s|Lz}}. ---- ---- Jeżeli parametr {{Code|strona}} jest adresem URL, to należy ewentualnie go używać jedynie z argumentem {{Code|nazwa}}. W przypadku linków zewnętrznych nazwa linku jest tworzona automatycznie na podstawie parametru {{Code|strona}}, gdy nie podano zmiennej {{Code|nazwa}}. Jeżeli ona jest pusta, to link wyświetla automatyczny numerek, tak jak przy zwykłych tych linkach. A dla linku wewnętrznego, parametr {{Code|nazwa}}, czy jest pusty, czy nie podany, to i tak wyświetla się nazwa linku (bez numerka). ---- Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} i {{Parametr|bez przetwarzania|tak}}, które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego, a także parametr: {{Parametr|analiza|tak}} ({{Parametr|a}}), do głębszego przetwarzania linkowego, ważniejszym od tego jest wcześniejszy ostatni parametr. == Przykłady == ; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać.{{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna}} → Wynik: {{lz|s=Fizyka teoretyczna}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|n=Dział fizyki}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}w}} → Wynik: {{lz|s=Fizyka teoretyczna|w=w}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=w}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}wiki|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny?action{{=}}edit#Obsługa|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|n=Szablon Link wewnętrzny}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}w|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|w=w|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=w|n=Dział fizyki}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny?action{{=}}edit#Obsługa|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}wiki|w{{=}}wiki|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny?action{{=}}edit#Obsługa|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|klucz projektu{{=}}en:w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|kj{{=}}en|kp{{=}}w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|g{{=}}What is Wikipedia?|klucz projektu{{=}}en:w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|g{{=}}What is Wikipedia?|kj{{=}}en|kp{{=}}w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|c{{=}}action{{=}}edit|g{{=}}What is Wikipedia?|klucz projektu{{=}}en:w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|c{{=}}action{{=}}edit|g{{=}}What is Wikipedia?|kj{{=}}en|kp{{=}}w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers |n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action=edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers |n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers&action{{=}}edit|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action{{=}}edit|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action=edit|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers&action{{=}}edit#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action=edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action=edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea|n{{=}}Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea#Taksonawigacja|n{{=}}Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea?action{{=}}edit|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea?action{{=}}edit#Taksonawigacja|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea#Taksonawigacja|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea&action{{=}}edit|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea&action{{=}}edit#Taksonawigacja|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}//lua.org.pl/5.2/manual.html|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=//lua.org.pl/5.2/manual.html|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//lua.org.pl/5.2/manual.html|n=Język Lua 5.2}}}}}} * Wikikod: {{s|lz|s{{=}}//lua.org.pl/5.2/manual.html#8.3|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=//lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://lua.org.pl/5.2/manual.html</nowiki>|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=http://lua.org.pl/5.2/manual.html|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://lua.org.pl/5.2/manual.html|n=Język Lua 5.2}}}}}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://lua.org.pl/5.2/manual.html#8.3</nowiki>|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=http://lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea&action=edit</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "miano przestrzeni nazw": { "aliases": [ "przestrzeń" ], "description": "Przestrzeń nazw, do której ma zaliczyć stronę.", "type": "string", "suggested": true }, "strona": { "description": "Nazwa strony, bez przestrzeni nazw. Jeżeli parametr \"strona\" jest adresem URL, to należy ewentualnie go używać jedynie z argumentem \"nazwa\". ", "type": "wiki-page-name", "required": true }, "nagłówek": { "description": "Nagłówek strony.", "type": "string" }, "klucz projektu": { "description": "Klucz projektu, używany zamiast: \"kod języka\" i \"kod projektu\"." }, "kod języka": { "description": "Kod języka, używany zamiast \"Klucz projektu\"." }, "kod projektu": { "description": "Kod projektu, używany zamiast \"klucz projektu\"." }, "nazwa": { "description": "Nazwa wyświetlana linku.", "type": "string", "suggested": true }, "parametry": { "description": "Parametry strony.", "type": "line", "suggested": true }, "za": { "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku.", "type": "string" }, "po": { "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku.", "type": "string" } }, "description": "Szablon tworzy adres strony URL i tworzy z niego link o podanej nazwie wyświetlanej przez szablon. Też można bezpośrednio wsadzić do tego sam adres URL, nie za pomocą jego elementów. Jest to szablon linków inteligentnych kolorujących linki w zależności do jakiej kategorii one należą, do tego celu używa Wikidane.\n\nSzablon tworzy link wewnętrzny, gdy podano adres projektu siostrzanego lub językowego Wikibooks, bez parametrów, a link zewnętrzny, gdy są parametry, lub URL.\n\nW przypadku projektów MediaWiki, gdy podano parametr z wartością | wersja linku = w lub | wersja linku = wiki, to szablon generuje link zewnętrzny kolejno w postaci ../w/.., i ../wiki/... ", "paramOrder": [ "miano przestrzeni nazw", "strona", "parametry", "nagłówek", "klucz projektu", "kod języka", "kod projektu", "nazwa", "za", "po" ] } </templatedata> == Zobacz też == {{Link wewnętrzny/opis/Zobacz też}} {{Szablony linków wewnątrz- i między-serwisowych}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Linki z opcją do zewnętrznych serwisów}} </includeonly> slo1l5avv06j2ven9n2rz0y5ppkxt73 558099 558098 2026-09-30T12:58:46Z Persino 2851 /* Użycie */ 558099 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Module:Linki}} {{Skomplikowany}} {{#switch:{{ROOTPAGENAME}}|LinkURL={{Skrót szablonu|Lz}}|#default={{DivLinia}}}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Opis szablonu == Jest to specjalistyczny szablon linków inteligentnych (tzw. linki inteligentne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie: {{s|Link wewnętrzny|z przestrzenią=tak}}, który się znajduje pod tabelą wywołania szablonowego: {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów {{lpg|CSS}}, które są od nadawania barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody, a do tego celu używa {{NS|k=d|l=tak|pk=d}}. Szablon {{s|LinkURL}} posiada wersję skróconą w postaci skrótu podanego w prawym górnym rogu strony w podwójnych nawiasach klamrowych. == Użycie == Szablon wykorzystuje adres strony URL, protokolarny lub nie, albo adres linku wewnętrznego, i tworzy z niego link, niekoniecznie zewnętrzny, o podanej nazwie, lub nie, wyświetlanej przez szablon. Szablon tworzy link wewnętrzny, gdy podano adres projektu siostrzanego lub językowego {{NAZWASERWISU|link=w}}, bez parametrów, a link zewnętrzny, gdy są parametry, lub URL. W przypadku projektów {{NAZWASERWISU|klucz projektu=mw|link=tak}}, gdy podano parametr z wartością: {{Parametr|wersja linku|w}} (skrót: {{Parametr|w|w}}), lub {{Parametr|wersja linku|wiki}} (skrót: {{Parametr|w|wiki}}), to szablon generuje link zewnętrzny kolejno w postaci {{Code|../w/..}}, i {{Code|../wiki/..}}. == Skrót do szablonu == Skrót do szablonu {{s|LinkURL}} jest {{s|lz}}. == Opis parametrów == ; Pełne skrótowe pierwsze wywołanie w przypadku podania strony URL {{Pre|{{s|lz|s{{=}}|w{{=}}|g{{=}}|b{{=}}|z{{=}}|p{{=}}}}}} ; Pełne nieskrótowe pierwsze wywołanie w przypadku podania strony URL {{Pre|{{s|LinkURL|strona{{=}}|wersja linku{{=}}|nagłówek{{=}}|bieżąca{{=}}|za{{=}}|po{{=}}}}}} ---- ; Pełne skrótowe pierwsze wywołanie w przypadku podania strony URL {{Pre|{{s|lz|s{{=}}|w{{=}}|n{{=}}|z{{=}}|p{{=}}}}}} ; Pełne nieskrótowe pierwsze wywołanie w przypadku podania strony URL {{Pre|{{s|LinkURL|strona{{=}}|wersja linku{{=}}|nazwa{{=}}|za{{=}}|po{{=}}}}}} ---- ; Pełne skrótowe drugie wywołanie, gdy strona nie jest adresem URL {{Pre|{{s|lz|f{{=}}|s{{=}}|c{{=}}|g{{=}}|k{{=}}|w{{=}}|n{{=}}|z{{=}}|p{{=}}}}}} ; Pełne nieskrótowe drugie wywołanie, gdy strona nie jest adresem URL {{Pre|{{s|LinkURL|{{!(}}miano przestrzeni nazw{{!}}przestrzeń{{)!}}{{=}}|strona{{=}}|parametry{{=}}|nagłówek{{=}}|klucz projektu{{=}}|wersja linku{{=}}|nazwa{{=}}|za{{=}}|po{{=}}}}}} ---- ;Pełne skrótowe trzecie wywołanie, gdy strona nie jest adresem URL {{Pre|{{s|lz|f{{=}}|s{{=}}|c{{=}}|g{{=}}|kj{{=}}|kp{{=}}|w{{=}}|n{{=}}|z{{=}}|p{{=}}}}}} ;Pełne nieskrótowe trzecie wywołanie, gdy strona nie jest adresem URL {{Pre|{{s|LinkURL|{{!(}}miano przestrzeni nazw{{!}}przestrzeń{{)!}}{{=}}|strona{{=}}|parametry{{=}}|nagłówek{{=}}|kod języka{{=}}|kod projektu{{=}}|wersja linku{{=}}|nazwa{{=}}|za{{=}}|po{{=}}}}}} ---- ; Parametry, strona URL może wskazywać na jakąś wiki lub być zewnętrznym adresem do zupełnie innej wiki lub jakieś innej strony nienależącej do żadnego wiki * {{Code|f}} (przestarzałe), {{Code|przestrzeń}} lub {{Code|miano przestrzeni nazw}} - nazwa przestrzeni nazw, do której należy strona * {{Code|s}} (przestarzałe) lub {{Code|strona}} - nazwa strony, z przestrzenią nazw, kodami języka lub projektu albo nie lub nazwą strony zaczynający się od {{Code|/wiki/}} lub {{Code|/w/}}, albo jest URL (z nazwą protokołu lub nie) strony, a na projektach MediaWiki z nazwą strony z tymi pierwszymi opcjami (nazwy przestrzeni i kody), co tutaj są wymienione. * {{Code|c}} (przestarzałe) lub {{Code|parametry}} - parametry strony, * {{Code|g}} (przestarzałe) lub {{Code|nagłówek}} - nagłówek strony następujący po znaku: {{Code|#}}, * {{Code|k}} (przestarzałe) lub {{Code|klucz projektu}} - klucz projektu, używany zamiast zmiennych: {{Code|kod języka}} i {{Code|kod projektu}}, * {{Code|kj}} (przestarzałe) lub {{Code|kod języka}} - kod języka, używany zamiast zmiennej {{Code|klucz projektu}}, * {{Code|kp}} (przestarzałe) lub {{Code|kod projektu}} - kod projektu, używany zamiast zmiennej {{Code|klucz projektu}}, * {{Code|w}} (przestarzałe) lub {{Code|wersja linku}} - generuje link zewnętrzny, gdy: {{Parametr|wersja linku|w}}, w postaci: {{Code|../w/..}}, zamiast: {{Code|../wiki/..}} dla {{Parametr|wersja linku|wiki}}, a gdy {{Parametr|wersja linku}}, to generuje normalny link wewnętrzny, jeżeli nie ma on parametrów i nie jest URL, * {{Code|n}} (przestarzałe) lub {{Code|nazwa}} - nazwa wyświetlana linku, * {{Code|b) (przestarzałe) lub {{Code|bieżąca}} - czy ma powtarzać nazwę nagłówka w nazwie linku, gdy nazwa linku jest niepodana, * {{Code|z}} (przestarzałe) lub {{Code|za}} - dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku, * {{Code|p}} (przestarzałe) lub {{Code|po}} - dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku, * {{Code|u}} (pzestarzałe) lub {{Code|uri}} - jeśli niepuste, wtedy traktuj adres w linku wewnętrznym, jako adres URL, czyli on jest tak kodowany. ---- Parametry w wersji skróconej są jedynie przestarzałe dla nazwy wersji pełnej szablonu {{s|LinkURL}}, a nie są, gdy używamy przekierowania do tego szablonu w postaci {{s|Lz}}. ---- ---- Jeżeli parametr {{Code|strona}} jest adresem URL, to należy ewentualnie go używać jedynie z argumentem {{Code|nazwa}}. W przypadku linków zewnętrznych nazwa linku jest tworzona automatycznie na podstawie parametru {{Code|strona}}, gdy nie podano zmiennej {{Code|nazwa}}. Jeżeli ona jest pusta, to link wyświetla automatyczny numerek, tak jak przy zwykłych tych linkach. A dla linku wewnętrznego, parametr {{Code|nazwa}}, czy jest pusty, czy nie podany, to i tak wyświetla się nazwa linku (bez numerka). ---- Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} i {{Parametr|bez przetwarzania|tak}}, które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego, a także parametr: {{Parametr|analiza|tak}} ({{Parametr|a}}), do głębszego przetwarzania linkowego, ważniejszym od tego jest wcześniejszy ostatni parametr. == Przykłady == ; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać.{{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna}} → Wynik: {{lz|s=Fizyka teoretyczna}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|n=Dział fizyki}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}w}} → Wynik: {{lz|s=Fizyka teoretyczna|w=w}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=w}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}wiki|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny?action{{=}}edit#Obsługa|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|n=Szablon Link wewnętrzny}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}w|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|w=w|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=w|n=Dział fizyki}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny?action{{=}}edit#Obsługa|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}wiki|w{{=}}wiki|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny?action{{=}}edit#Obsługa|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|klucz projektu{{=}}en:w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|kj{{=}}en|kp{{=}}w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|g{{=}}What is Wikipedia?|klucz projektu{{=}}en:w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|g{{=}}What is Wikipedia?|kj{{=}}en|kp{{=}}w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|c{{=}}action{{=}}edit|g{{=}}What is Wikipedia?|klucz projektu{{=}}en:w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|c{{=}}action{{=}}edit|g{{=}}What is Wikipedia?|kj{{=}}en|kp{{=}}w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers |n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action=edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers |n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers&action{{=}}edit|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action{{=}}edit|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action=edit|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers&action{{=}}edit#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action=edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action=edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea|n{{=}}Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea#Taksonawigacja|n{{=}}Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea?action{{=}}edit|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea?action{{=}}edit#Taksonawigacja|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea#Taksonawigacja|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea&action{{=}}edit|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea&action{{=}}edit#Taksonawigacja|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}//lua.org.pl/5.2/manual.html|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=//lua.org.pl/5.2/manual.html|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//lua.org.pl/5.2/manual.html|n=Język Lua 5.2}}}}}} * Wikikod: {{s|lz|s{{=}}//lua.org.pl/5.2/manual.html#8.3|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=//lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://lua.org.pl/5.2/manual.html</nowiki>|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=http://lua.org.pl/5.2/manual.html|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://lua.org.pl/5.2/manual.html|n=Język Lua 5.2}}}}}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://lua.org.pl/5.2/manual.html#8.3</nowiki>|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=http://lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea&action=edit</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "miano przestrzeni nazw": { "aliases": [ "przestrzeń" ], "description": "Przestrzeń nazw, do której ma zaliczyć stronę.", "type": "string", "suggested": true }, "strona": { "description": "Nazwa strony, bez przestrzeni nazw. Jeżeli parametr \"strona\" jest adresem URL, to należy ewentualnie go używać jedynie z argumentem \"nazwa\". ", "type": "wiki-page-name", "required": true }, "nagłówek": { "description": "Nagłówek strony.", "type": "string" }, "klucz projektu": { "description": "Klucz projektu, używany zamiast: \"kod języka\" i \"kod projektu\"." }, "kod języka": { "description": "Kod języka, używany zamiast \"Klucz projektu\"." }, "kod projektu": { "description": "Kod projektu, używany zamiast \"klucz projektu\"." }, "nazwa": { "description": "Nazwa wyświetlana linku.", "type": "string", "suggested": true }, "parametry": { "description": "Parametry strony.", "type": "line", "suggested": true }, "za": { "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku.", "type": "string" }, "po": { "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku.", "type": "string" } }, "description": "Szablon tworzy adres strony URL i tworzy z niego link o podanej nazwie wyświetlanej przez szablon. Też można bezpośrednio wsadzić do tego sam adres URL, nie za pomocą jego elementów. Jest to szablon linków inteligentnych kolorujących linki w zależności do jakiej kategorii one należą, do tego celu używa Wikidane.\n\nSzablon tworzy link wewnętrzny, gdy podano adres projektu siostrzanego lub językowego Wikibooks, bez parametrów, a link zewnętrzny, gdy są parametry, lub URL.\n\nW przypadku projektów MediaWiki, gdy podano parametr z wartością | wersja linku = w lub | wersja linku = wiki, to szablon generuje link zewnętrzny kolejno w postaci ../w/.., i ../wiki/... ", "paramOrder": [ "miano przestrzeni nazw", "strona", "parametry", "nagłówek", "klucz projektu", "kod języka", "kod projektu", "nazwa", "za", "po" ] } </templatedata> == Zobacz też == {{Link wewnętrzny/opis/Zobacz też}} {{Szablony linków wewnątrz- i między-serwisowych}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Linki z opcją do zewnętrznych serwisów}} </includeonly> e1t8zgbkv0zqcln1nwnah5q5s36r3u3 558100 558099 2026-09-30T13:00:04Z Persino 2851 /* Użycie */ 558100 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Module:Linki}} {{Skomplikowany}} {{#switch:{{ROOTPAGENAME}}|LinkURL={{Skrót szablonu|Lz}}|#default={{DivLinia}}}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Opis szablonu == Jest to specjalistyczny szablon linków inteligentnych (tzw. linki inteligentne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie: {{s|Link wewnętrzny|z przestrzenią=tak}}, który się znajduje pod tabelą wywołania szablonowego: {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów {{lpg|CSS}}, które są od nadawania barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody, a do tego celu używa {{NS|k=d|l=tak|pk=d}}. Szablon {{s|LinkURL}} posiada wersję skróconą w postaci skrótu podanego w prawym górnym rogu strony w podwójnych nawiasach klamrowych. == Użycie == Szablon wykorzystuje adres strony URL, protokolarny lub nie, albo adres linku wewnętrznego, i tworzy z niego link, niekoniecznie zewnętrzny, o podanej nazwie, lub nie, wyświetlanej przez szablon. Szablon tworzy link wewnętrzny, gdy podano adres projektu siostrzanego lub językowego {{NS|link=w}}, bez parametrów, a link zewnętrzny, gdy są parametry, lub URL. W przypadku projektów {{NAZWASERWISU|klucz projektu=mw|link=tak}}, gdy podano parametr z wartością: {{Parametr|wersja linku|w}} (skrót: {{Parametr|w|w}}), lub {{Parametr|wersja linku|wiki}} (skrót: {{Parametr|w|wiki}}), to szablon generuje link zewnętrzny kolejno w postaci {{Code|../w/..}}, i {{Code|../wiki/..}}. == Skrót do szablonu == Skrót do szablonu {{s|LinkURL}} jest {{s|lz}}. == Opis parametrów == ; Pełne skrótowe pierwsze wywołanie w przypadku podania strony URL {{Pre|{{s|lz|s{{=}}|w{{=}}|g{{=}}|b{{=}}|z{{=}}|p{{=}}}}}} ; Pełne nieskrótowe pierwsze wywołanie w przypadku podania strony URL {{Pre|{{s|LinkURL|strona{{=}}|wersja linku{{=}}|nagłówek{{=}}|bieżąca{{=}}|za{{=}}|po{{=}}}}}} ---- ; Pełne skrótowe pierwsze wywołanie w przypadku podania strony URL {{Pre|{{s|lz|s{{=}}|w{{=}}|n{{=}}|z{{=}}|p{{=}}}}}} ; Pełne nieskrótowe pierwsze wywołanie w przypadku podania strony URL {{Pre|{{s|LinkURL|strona{{=}}|wersja linku{{=}}|nazwa{{=}}|za{{=}}|po{{=}}}}}} ---- ; Pełne skrótowe drugie wywołanie, gdy strona nie jest adresem URL {{Pre|{{s|lz|f{{=}}|s{{=}}|c{{=}}|g{{=}}|k{{=}}|w{{=}}|n{{=}}|z{{=}}|p{{=}}}}}} ; Pełne nieskrótowe drugie wywołanie, gdy strona nie jest adresem URL {{Pre|{{s|LinkURL|{{!(}}miano przestrzeni nazw{{!}}przestrzeń{{)!}}{{=}}|strona{{=}}|parametry{{=}}|nagłówek{{=}}|klucz projektu{{=}}|wersja linku{{=}}|nazwa{{=}}|za{{=}}|po{{=}}}}}} ---- ;Pełne skrótowe trzecie wywołanie, gdy strona nie jest adresem URL {{Pre|{{s|lz|f{{=}}|s{{=}}|c{{=}}|g{{=}}|kj{{=}}|kp{{=}}|w{{=}}|n{{=}}|z{{=}}|p{{=}}}}}} ;Pełne nieskrótowe trzecie wywołanie, gdy strona nie jest adresem URL {{Pre|{{s|LinkURL|{{!(}}miano przestrzeni nazw{{!}}przestrzeń{{)!}}{{=}}|strona{{=}}|parametry{{=}}|nagłówek{{=}}|kod języka{{=}}|kod projektu{{=}}|wersja linku{{=}}|nazwa{{=}}|za{{=}}|po{{=}}}}}} ---- ; Parametry, strona URL może wskazywać na jakąś wiki lub być zewnętrznym adresem do zupełnie innej wiki lub jakieś innej strony nienależącej do żadnego wiki * {{Code|f}} (przestarzałe), {{Code|przestrzeń}} lub {{Code|miano przestrzeni nazw}} - nazwa przestrzeni nazw, do której należy strona * {{Code|s}} (przestarzałe) lub {{Code|strona}} - nazwa strony, z przestrzenią nazw, kodami języka lub projektu albo nie lub nazwą strony zaczynający się od {{Code|/wiki/}} lub {{Code|/w/}}, albo jest URL (z nazwą protokołu lub nie) strony, a na projektach MediaWiki z nazwą strony z tymi pierwszymi opcjami (nazwy przestrzeni i kody), co tutaj są wymienione. * {{Code|c}} (przestarzałe) lub {{Code|parametry}} - parametry strony, * {{Code|g}} (przestarzałe) lub {{Code|nagłówek}} - nagłówek strony następujący po znaku: {{Code|#}}, * {{Code|k}} (przestarzałe) lub {{Code|klucz projektu}} - klucz projektu, używany zamiast zmiennych: {{Code|kod języka}} i {{Code|kod projektu}}, * {{Code|kj}} (przestarzałe) lub {{Code|kod języka}} - kod języka, używany zamiast zmiennej {{Code|klucz projektu}}, * {{Code|kp}} (przestarzałe) lub {{Code|kod projektu}} - kod projektu, używany zamiast zmiennej {{Code|klucz projektu}}, * {{Code|w}} (przestarzałe) lub {{Code|wersja linku}} - generuje link zewnętrzny, gdy: {{Parametr|wersja linku|w}}, w postaci: {{Code|../w/..}}, zamiast: {{Code|../wiki/..}} dla {{Parametr|wersja linku|wiki}}, a gdy {{Parametr|wersja linku}}, to generuje normalny link wewnętrzny, jeżeli nie ma on parametrów i nie jest URL, * {{Code|n}} (przestarzałe) lub {{Code|nazwa}} - nazwa wyświetlana linku, * {{Code|b) (przestarzałe) lub {{Code|bieżąca}} - czy ma powtarzać nazwę nagłówka w nazwie linku, gdy nazwa linku jest niepodana, * {{Code|z}} (przestarzałe) lub {{Code|za}} - dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku, * {{Code|p}} (przestarzałe) lub {{Code|po}} - dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku, * {{Code|u}} (pzestarzałe) lub {{Code|uri}} - jeśli niepuste, wtedy traktuj adres w linku wewnętrznym, jako adres URL, czyli on jest tak kodowany. ---- Parametry w wersji skróconej są jedynie przestarzałe dla nazwy wersji pełnej szablonu {{s|LinkURL}}, a nie są, gdy używamy przekierowania do tego szablonu w postaci {{s|Lz}}. ---- ---- Jeżeli parametr {{Code|strona}} jest adresem URL, to należy ewentualnie go używać jedynie z argumentem {{Code|nazwa}}. W przypadku linków zewnętrznych nazwa linku jest tworzona automatycznie na podstawie parametru {{Code|strona}}, gdy nie podano zmiennej {{Code|nazwa}}. Jeżeli ona jest pusta, to link wyświetla automatyczny numerek, tak jak przy zwykłych tych linkach. A dla linku wewnętrznego, parametr {{Code|nazwa}}, czy jest pusty, czy nie podany, to i tak wyświetla się nazwa linku (bez numerka). ---- Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} i {{Parametr|bez przetwarzania|tak}}, które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego, a także parametr: {{Parametr|analiza|tak}} ({{Parametr|a}}), do głębszego przetwarzania linkowego, ważniejszym od tego jest wcześniejszy ostatni parametr. == Przykłady == ; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać.{{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna}} → Wynik: {{lz|s=Fizyka teoretyczna}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|n=Dział fizyki}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}w}} → Wynik: {{lz|s=Fizyka teoretyczna|w=w}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=w}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}wiki|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny?action{{=}}edit#Obsługa|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|n=Szablon Link wewnętrzny}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}w|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|w=w|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=w|n=Dział fizyki}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny?action{{=}}edit#Obsługa|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}wiki|w{{=}}wiki|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny?action{{=}}edit#Obsługa|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|klucz projektu{{=}}en:w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|kj{{=}}en|kp{{=}}w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|g{{=}}What is Wikipedia?|klucz projektu{{=}}en:w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|g{{=}}What is Wikipedia?|kj{{=}}en|kp{{=}}w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|c{{=}}action{{=}}edit|g{{=}}What is Wikipedia?|klucz projektu{{=}}en:w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|c{{=}}action{{=}}edit|g{{=}}What is Wikipedia?|kj{{=}}en|kp{{=}}w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers |n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action=edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers |n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers&action{{=}}edit|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action{{=}}edit|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action=edit|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers&action{{=}}edit#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action=edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action=edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea|n{{=}}Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea#Taksonawigacja|n{{=}}Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea?action{{=}}edit|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea?action{{=}}edit#Taksonawigacja|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea#Taksonawigacja|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea&action{{=}}edit|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea&action{{=}}edit#Taksonawigacja|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}//lua.org.pl/5.2/manual.html|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=//lua.org.pl/5.2/manual.html|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//lua.org.pl/5.2/manual.html|n=Język Lua 5.2}}}}}} * Wikikod: {{s|lz|s{{=}}//lua.org.pl/5.2/manual.html#8.3|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=//lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://lua.org.pl/5.2/manual.html</nowiki>|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=http://lua.org.pl/5.2/manual.html|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://lua.org.pl/5.2/manual.html|n=Język Lua 5.2}}}}}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://lua.org.pl/5.2/manual.html#8.3</nowiki>|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=http://lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea&action=edit</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "miano przestrzeni nazw": { "aliases": [ "przestrzeń" ], "description": "Przestrzeń nazw, do której ma zaliczyć stronę.", "type": "string", "suggested": true }, "strona": { "description": "Nazwa strony, bez przestrzeni nazw. Jeżeli parametr \"strona\" jest adresem URL, to należy ewentualnie go używać jedynie z argumentem \"nazwa\". ", "type": "wiki-page-name", "required": true }, "nagłówek": { "description": "Nagłówek strony.", "type": "string" }, "klucz projektu": { "description": "Klucz projektu, używany zamiast: \"kod języka\" i \"kod projektu\"." }, "kod języka": { "description": "Kod języka, używany zamiast \"Klucz projektu\"." }, "kod projektu": { "description": "Kod projektu, używany zamiast \"klucz projektu\"." }, "nazwa": { "description": "Nazwa wyświetlana linku.", "type": "string", "suggested": true }, "parametry": { "description": "Parametry strony.", "type": "line", "suggested": true }, "za": { "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku.", "type": "string" }, "po": { "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku.", "type": "string" } }, "description": "Szablon tworzy adres strony URL i tworzy z niego link o podanej nazwie wyświetlanej przez szablon. Też można bezpośrednio wsadzić do tego sam adres URL, nie za pomocą jego elementów. Jest to szablon linków inteligentnych kolorujących linki w zależności do jakiej kategorii one należą, do tego celu używa Wikidane.\n\nSzablon tworzy link wewnętrzny, gdy podano adres projektu siostrzanego lub językowego Wikibooks, bez parametrów, a link zewnętrzny, gdy są parametry, lub URL.\n\nW przypadku projektów MediaWiki, gdy podano parametr z wartością | wersja linku = w lub | wersja linku = wiki, to szablon generuje link zewnętrzny kolejno w postaci ../w/.., i ../wiki/... ", "paramOrder": [ "miano przestrzeni nazw", "strona", "parametry", "nagłówek", "klucz projektu", "kod języka", "kod projektu", "nazwa", "za", "po" ] } </templatedata> == Zobacz też == {{Link wewnętrzny/opis/Zobacz też}} {{Szablony linków wewnątrz- i między-serwisowych}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Linki z opcją do zewnętrznych serwisów}} </includeonly> 0ljxtmtlxic0sgj02y8hqrsoanxs9a6 558101 558100 2026-09-30T13:01:29Z Persino 2851 /* Użycie */ 558101 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Module:Linki}} {{Skomplikowany}} {{#switch:{{ROOTPAGENAME}}|LinkURL={{Skrót szablonu|Lz}}|#default={{DivLinia}}}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Opis szablonu == Jest to specjalistyczny szablon linków inteligentnych (tzw. linki inteligentne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie: {{s|Link wewnętrzny|z przestrzenią=tak}}, który się znajduje pod tabelą wywołania szablonowego: {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów {{lpg|CSS}}, które są od nadawania barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody, a do tego celu używa {{NS|k=d|l=tak|pk=d}}. Szablon {{s|LinkURL}} posiada wersję skróconą w postaci skrótu podanego w prawym górnym rogu strony w podwójnych nawiasach klamrowych. == Użycie == Szablon wykorzystuje adres strony URL, protokolarny lub nie, albo adres linku wewnętrznego, i tworzy z niego link, niekoniecznie zewnętrzny, o podanej nazwie, lub nie, wyświetlanej przez szablon. Szablon tworzy link wewnętrzny, gdy podano adres projektu siostrzanego lub językowego {{NS|link=w}}, bez parametrów, a link zewnętrzny, gdy są parametry, lub '''{{lpg|URL}}'''. W przypadku projektów {{NS|k=mw|l=tak}}, gdy podano parametr z wartością: {{Parametr|wersja linku|w}} (skrót: {{Parametr|w|w}}), lub {{Parametr|wersja linku|wiki}} (skrót: {{Parametr|w|wiki}}), to szablon generuje link zewnętrzny kolejno w postaci {{Code|../w/..}}, i {{Code|../wiki/..}}. == Skrót do szablonu == Skrót do szablonu {{s|LinkURL}} jest {{s|lz}}. == Opis parametrów == ; Pełne skrótowe pierwsze wywołanie w przypadku podania strony URL {{Pre|{{s|lz|s{{=}}|w{{=}}|g{{=}}|b{{=}}|z{{=}}|p{{=}}}}}} ; Pełne nieskrótowe pierwsze wywołanie w przypadku podania strony URL {{Pre|{{s|LinkURL|strona{{=}}|wersja linku{{=}}|nagłówek{{=}}|bieżąca{{=}}|za{{=}}|po{{=}}}}}} ---- ; Pełne skrótowe pierwsze wywołanie w przypadku podania strony URL {{Pre|{{s|lz|s{{=}}|w{{=}}|n{{=}}|z{{=}}|p{{=}}}}}} ; Pełne nieskrótowe pierwsze wywołanie w przypadku podania strony URL {{Pre|{{s|LinkURL|strona{{=}}|wersja linku{{=}}|nazwa{{=}}|za{{=}}|po{{=}}}}}} ---- ; Pełne skrótowe drugie wywołanie, gdy strona nie jest adresem URL {{Pre|{{s|lz|f{{=}}|s{{=}}|c{{=}}|g{{=}}|k{{=}}|w{{=}}|n{{=}}|z{{=}}|p{{=}}}}}} ; Pełne nieskrótowe drugie wywołanie, gdy strona nie jest adresem URL {{Pre|{{s|LinkURL|{{!(}}miano przestrzeni nazw{{!}}przestrzeń{{)!}}{{=}}|strona{{=}}|parametry{{=}}|nagłówek{{=}}|klucz projektu{{=}}|wersja linku{{=}}|nazwa{{=}}|za{{=}}|po{{=}}}}}} ---- ;Pełne skrótowe trzecie wywołanie, gdy strona nie jest adresem URL {{Pre|{{s|lz|f{{=}}|s{{=}}|c{{=}}|g{{=}}|kj{{=}}|kp{{=}}|w{{=}}|n{{=}}|z{{=}}|p{{=}}}}}} ;Pełne nieskrótowe trzecie wywołanie, gdy strona nie jest adresem URL {{Pre|{{s|LinkURL|{{!(}}miano przestrzeni nazw{{!}}przestrzeń{{)!}}{{=}}|strona{{=}}|parametry{{=}}|nagłówek{{=}}|kod języka{{=}}|kod projektu{{=}}|wersja linku{{=}}|nazwa{{=}}|za{{=}}|po{{=}}}}}} ---- ; Parametry, strona URL może wskazywać na jakąś wiki lub być zewnętrznym adresem do zupełnie innej wiki lub jakieś innej strony nienależącej do żadnego wiki * {{Code|f}} (przestarzałe), {{Code|przestrzeń}} lub {{Code|miano przestrzeni nazw}} - nazwa przestrzeni nazw, do której należy strona * {{Code|s}} (przestarzałe) lub {{Code|strona}} - nazwa strony, z przestrzenią nazw, kodami języka lub projektu albo nie lub nazwą strony zaczynający się od {{Code|/wiki/}} lub {{Code|/w/}}, albo jest URL (z nazwą protokołu lub nie) strony, a na projektach MediaWiki z nazwą strony z tymi pierwszymi opcjami (nazwy przestrzeni i kody), co tutaj są wymienione. * {{Code|c}} (przestarzałe) lub {{Code|parametry}} - parametry strony, * {{Code|g}} (przestarzałe) lub {{Code|nagłówek}} - nagłówek strony następujący po znaku: {{Code|#}}, * {{Code|k}} (przestarzałe) lub {{Code|klucz projektu}} - klucz projektu, używany zamiast zmiennych: {{Code|kod języka}} i {{Code|kod projektu}}, * {{Code|kj}} (przestarzałe) lub {{Code|kod języka}} - kod języka, używany zamiast zmiennej {{Code|klucz projektu}}, * {{Code|kp}} (przestarzałe) lub {{Code|kod projektu}} - kod projektu, używany zamiast zmiennej {{Code|klucz projektu}}, * {{Code|w}} (przestarzałe) lub {{Code|wersja linku}} - generuje link zewnętrzny, gdy: {{Parametr|wersja linku|w}}, w postaci: {{Code|../w/..}}, zamiast: {{Code|../wiki/..}} dla {{Parametr|wersja linku|wiki}}, a gdy {{Parametr|wersja linku}}, to generuje normalny link wewnętrzny, jeżeli nie ma on parametrów i nie jest URL, * {{Code|n}} (przestarzałe) lub {{Code|nazwa}} - nazwa wyświetlana linku, * {{Code|b) (przestarzałe) lub {{Code|bieżąca}} - czy ma powtarzać nazwę nagłówka w nazwie linku, gdy nazwa linku jest niepodana, * {{Code|z}} (przestarzałe) lub {{Code|za}} - dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku, * {{Code|p}} (przestarzałe) lub {{Code|po}} - dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku, * {{Code|u}} (pzestarzałe) lub {{Code|uri}} - jeśli niepuste, wtedy traktuj adres w linku wewnętrznym, jako adres URL, czyli on jest tak kodowany. ---- Parametry w wersji skróconej są jedynie przestarzałe dla nazwy wersji pełnej szablonu {{s|LinkURL}}, a nie są, gdy używamy przekierowania do tego szablonu w postaci {{s|Lz}}. ---- ---- Jeżeli parametr {{Code|strona}} jest adresem URL, to należy ewentualnie go używać jedynie z argumentem {{Code|nazwa}}. W przypadku linków zewnętrznych nazwa linku jest tworzona automatycznie na podstawie parametru {{Code|strona}}, gdy nie podano zmiennej {{Code|nazwa}}. Jeżeli ona jest pusta, to link wyświetla automatyczny numerek, tak jak przy zwykłych tych linkach. A dla linku wewnętrznego, parametr {{Code|nazwa}}, czy jest pusty, czy nie podany, to i tak wyświetla się nazwa linku (bez numerka). ---- Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} i {{Parametr|bez przetwarzania|tak}}, które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego, a także parametr: {{Parametr|analiza|tak}} ({{Parametr|a}}), do głębszego przetwarzania linkowego, ważniejszym od tego jest wcześniejszy ostatni parametr. == Przykłady == ; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać.{{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna}} → Wynik: {{lz|s=Fizyka teoretyczna}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|n=Dział fizyki}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}w}} → Wynik: {{lz|s=Fizyka teoretyczna|w=w}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=w}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}wiki|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny?action{{=}}edit#Obsługa|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|n=Szablon Link wewnętrzny}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}w|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|w=w|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=w|n=Dział fizyki}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny?action{{=}}edit#Obsługa|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}wiki|w{{=}}wiki|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny?action{{=}}edit#Obsługa|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|klucz projektu{{=}}en:w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|kj{{=}}en|kp{{=}}w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|g{{=}}What is Wikipedia?|klucz projektu{{=}}en:w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|g{{=}}What is Wikipedia?|kj{{=}}en|kp{{=}}w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|c{{=}}action{{=}}edit|g{{=}}What is Wikipedia?|klucz projektu{{=}}en:w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|c{{=}}action{{=}}edit|g{{=}}What is Wikipedia?|kj{{=}}en|kp{{=}}w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers |n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action=edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers |n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers&action{{=}}edit|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action{{=}}edit|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action=edit|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} * Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers&action{{=}}edit#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action=edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action=edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea|n{{=}}Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea#Taksonawigacja|n{{=}}Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea?action{{=}}edit|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea?action{{=}}edit#Taksonawigacja|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea#Taksonawigacja|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea&action{{=}}edit|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea&action{{=}}edit#Taksonawigacja|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}//lua.org.pl/5.2/manual.html|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=//lua.org.pl/5.2/manual.html|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//lua.org.pl/5.2/manual.html|n=Język Lua 5.2}}}}}} * Wikikod: {{s|lz|s{{=}}//lua.org.pl/5.2/manual.html#8.3|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=//lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://lua.org.pl/5.2/manual.html</nowiki>|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=http://lua.org.pl/5.2/manual.html|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://lua.org.pl/5.2/manual.html|n=Język Lua 5.2}}}}}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://lua.org.pl/5.2/manual.html#8.3</nowiki>|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=http://lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}}}}}} {{Hr}}{{Hr}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} {{Hr}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea&action=edit</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}}}}}} * Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "miano przestrzeni nazw": { "aliases": [ "przestrzeń" ], "description": "Przestrzeń nazw, do której ma zaliczyć stronę.", "type": "string", "suggested": true }, "strona": { "description": "Nazwa strony, bez przestrzeni nazw. Jeżeli parametr \"strona\" jest adresem URL, to należy ewentualnie go używać jedynie z argumentem \"nazwa\". ", "type": "wiki-page-name", "required": true }, "nagłówek": { "description": "Nagłówek strony.", "type": "string" }, "klucz projektu": { "description": "Klucz projektu, używany zamiast: \"kod języka\" i \"kod projektu\"." }, "kod języka": { "description": "Kod języka, używany zamiast \"Klucz projektu\"." }, "kod projektu": { "description": "Kod projektu, używany zamiast \"klucz projektu\"." }, "nazwa": { "description": "Nazwa wyświetlana linku.", "type": "string", "suggested": true }, "parametry": { "description": "Parametry strony.", "type": "line", "suggested": true }, "za": { "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku.", "type": "string" }, "po": { "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku.", "type": "string" } }, "description": "Szablon tworzy adres strony URL i tworzy z niego link o podanej nazwie wyświetlanej przez szablon. Też można bezpośrednio wsadzić do tego sam adres URL, nie za pomocą jego elementów. Jest to szablon linków inteligentnych kolorujących linki w zależności do jakiej kategorii one należą, do tego celu używa Wikidane.\n\nSzablon tworzy link wewnętrzny, gdy podano adres projektu siostrzanego lub językowego Wikibooks, bez parametrów, a link zewnętrzny, gdy są parametry, lub URL.\n\nW przypadku projektów MediaWiki, gdy podano parametr z wartością | wersja linku = w lub | wersja linku = wiki, to szablon generuje link zewnętrzny kolejno w postaci ../w/.., i ../wiki/... ", "paramOrder": [ "miano przestrzeni nazw", "strona", "parametry", "nagłówek", "klucz projektu", "kod języka", "kod projektu", "nazwa", "za", "po" ] } </templatedata> == Zobacz też == {{Link wewnętrzny/opis/Zobacz też}} {{Szablony linków wewnątrz- i między-serwisowych}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Linki z opcją do zewnętrznych serwisów}} </includeonly> 1ae4nxjq8hbzasl2g20xjr449i3icv4 Moduł:Rozmieniarka/opis 828 60081 558128 539874 2026-09-30T18:54:29Z Persino 2851 558128 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Moduł jest wykorzystywany przez szablon: {{s|Rozmieniarka}}, lub do wykorzystania bezpośredniego w postaci ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, albo jako funkcja biblioteczzna. == Opis parametrów == == Przykład == Przykładowe użycie w wikikodzie, używając pierwszy parametr jako {{Code|kwota}}, a następny, ile jest danego nominału dla danego numerka: <syntaxhighlight lang=mediawiki> {{#invoke:Rozmieniarka|calculateNominals|1=123.45|7=2<!-- nominał 10-->|12=5<!--nominał 0.2-->|wyspecjalizowana=tak}} </syntaxhighlight> * Wynik: {{#invoke:Rozmieniarka|calculateNominals|1=123.45|7=2<!-- nominał 10-->|12=5<!--nominał 0.2-->|wyspecjalizowana=tak}} lub bezpośrednio używając parametry {{Code|kwota}} i nominałów: <syntaxhighlight lang=mediawiki> {{#invoke:Rozmieniarka|calculateNominals|kwota=123.45|10zł=2|0.2zł=5|wyspecjalizowana=tak}} </syntaxhighlight> * Wynik: {{#invoke:Rozmieniarka|calculateNominals|kwota=123.45|10zł=2|0.2zł=5|wyspecjalizowana=tak}} lub inaczej: <syntaxhighlight lang=mediawiki> {{#invoke:Rozmieniarka|calculateNominals|kwota=123.45|10zł=2|20gr=5|wyspecjalizowana=tak}} </syntaxhighlight> * Wynik: {{#invoke:Rozmieniarka|calculateNominals|kwota=123.45|10zł=2|20gr=5|wyspecjalizowana=tak}} Przykładowe użycie w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="lua"> local rozmieniarka_modul=require("Module:Rozmieniarka"); -- local amount = 123.45; -- kwota: 123.45zł -- Parametr 1 -- local limits = { -- [10] = 2, -- limit dla nominału 10zł -- Parametr 7; -- [0.2] = 5, -- limit dla nominału 0.2zł -- Parametr 12; -- }; local wynik=rozmieniarka_modul.calculateNominals{ [1] = 123.45, -- kwota; [7] = 2, -- nominał 10zł; [12] = 5, -- nominał 0.2zł; }; </syntaxhighlight> lub inny przykład inaczej licząca liczbę nominałów: <syntaxhighlight lang="lua"> local rozmieniarka_modul=require("Module:Rozmieniarka"); local amount = 123.45; -- kwota: 123.45zł -- Parametr 1 local nominals = { [10] = 2, -- limit dla nominału 10zł -- Parametr 7; [0.2] = 5, -- limit dla nominału 0.2zł -- Parametr 12; }; local frame=rozmieniarka_modul.createNominals(nominals,amount); local wynik=rozmieniarka_modul.calculateNominals(frame); </syntaxhighlight> lub inaczej: <syntaxhighlight lang="lua"> local rozmieniarka_modul=require("Module:Rozmieniarka"); local amount = 123.45; -- kwota: 123.45zł -- Parametr 1 local nominals = { ["kwota"] = amount, -- Parametr 1; ["10zł"] = 2, -- limit dla nominału 10zł -- Parametr 7; ["0.2zł"] = 5, -- limit dla nominału 0.2zł -- Parametr 12; }; local frame=rozmieniarka_modul.createNominals(nominals); local wynik=rozmieniarka_modul.calculateNominals(frame); </syntaxhighlight> albo bezpośrednio: <syntaxhighlight lang="lua"> local rozmieniarka_modul=require("Module:Rozmieniarka"); local amount = 123.45; -- kwota: 123.45zł -- Parametr 1 local frame = { ["kwota"] = amount, -- kwota -- Parametr 1; ["10zł"] = 2, -- limit dla nominału 10zł -- Parametr 7; ["0.2zł"] = 5, -- limit dla nominału 0.2zł -- Parametr 12; }; local wynik=rozmieniarka_modul.calculateNominals(frame); </syntaxhighlight> lub inaczej: <syntaxhighlight lang="lua"> local rozmieniarka_modul=require("Module:Rozmieniarka"); local amount = 123.45; -- kwota: 123.45zł -- Parametr 1 local frame = { ["kwota"] = amount, -- kwota -- Parametr 1; ["10zł"] = 2, -- limit dla nominału 10zł -- Parametr 7; ["20gr"] = 5, -- limit dla nominału 0.2zł -- Parametr 12; }; local wynik=rozmieniarka_modul.calculateNominals(frame); </syntaxhighlight> == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> </includeonly> o70gd063pcl07peru2m5dz1r9ms7msk 558129 558128 2026-09-30T18:55:16Z Persino 2851 558129 wikitext text/x-wiki <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Moduł jest wykorzystywany przez szablon: {{s|Rozmieniarka}}, lub do wykorzystania bezpośredniego w postaci ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, albo jako funkcja biblioteczzna. == Opis parametrów == == Przykład == Przykładowe użycie w wikikodzie, używając pierwszy parametr jako {{Code|kwota}}, a następny, ile jest danego nominału dla danego numerka: <syntaxhighlight lang=mediawiki> {{#invoke:Rozmieniarka|calculateNominals|1=123.45|7=2<!-- nominał 10-->|12=5<!--nominał 0.2-->|wyspecjalizowana=tak}} </syntaxhighlight> * Wynik: {{#invoke:Rozmieniarka|calculateNominals|1=123.45|7=2<!-- nominał 10-->|12=5<!--nominał 0.2-->|wyspecjalizowana=tak}} lub bezpośrednio używając parametry {{Code|kwota}} i nominałów: <syntaxhighlight lang=mediawiki> {{#invoke:Rozmieniarka|calculateNominals|kwota=123.45|10zł=2|0.2zł=5|wyspecjalizowana=tak}} </syntaxhighlight> * Wynik: {{#invoke:Rozmieniarka|calculateNominals|kwota=123.45|10zł=2|0.2zł=5|wyspecjalizowana=tak}} lub inaczej: <syntaxhighlight lang=mediawiki> {{#invoke:Rozmieniarka|calculateNominals|kwota=123.45|10zł=2|20gr=5|wyspecjalizowana=tak}} </syntaxhighlight> * Wynik: {{#invoke:Rozmieniarka|calculateNominals|kwota=123.45|10zł=2|20gr=5|wyspecjalizowana=tak}} Przykładowe użycie w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="lua"> local rozmieniarka_modul=require("Module:Rozmieniarka"); -- local amount = 123.45; -- kwota: 123.45zł -- Parametr 1 -- local limits = { -- [10] = 2, -- limit dla nominału 10zł -- Parametr 7; -- [0.2] = 5, -- limit dla nominału 0.2zł -- Parametr 12; -- }; local wynik=rozmieniarka_modul.calculateNominals{ [1] = 123.45, -- kwota; [7] = 2, -- nominał 10zł; [12] = 5, -- nominał 0.2zł; }; </syntaxhighlight> lub inny przykład inaczej licząca liczbę nominałów: <syntaxhighlight lang="lua"> local rozmieniarka_modul=require("Module:Rozmieniarka"); local amount = 123.45; -- kwota: 123.45zł -- Parametr 1 local nominals = { [10] = 2, -- limit dla nominału 10zł -- Parametr 7; [0.2] = 5, -- limit dla nominału 0.2zł -- Parametr 12; }; local frame=rozmieniarka_modul.createNominals(nominals,amount); local wynik=rozmieniarka_modul.calculateNominals(frame); </syntaxhighlight> lub inaczej: <syntaxhighlight lang="lua"> local rozmieniarka_modul=require("Module:Rozmieniarka"); local amount = 123.45; -- kwota: 123.45zł -- Parametr 1 local nominals = { ["kwota"] = amount, -- Parametr 1; ["10zł"] = 2, -- limit dla nominału 10zł -- Parametr 7; ["0.2zł"] = 5, -- limit dla nominału 0.2zł -- Parametr 12; }; local frame=rozmieniarka_modul.createNominals(nominals); local wynik=rozmieniarka_modul.calculateNominals(frame); </syntaxhighlight> albo bezpośrednio: <syntaxhighlight lang="lua"> local rozmieniarka_modul=require("Module:Rozmieniarka"); local amount = 123.45; -- kwota: 123.45zł -- Parametr 1 local frame = { ["kwota"] = amount, -- kwota -- Parametr 1; ["10zł"] = 2, -- limit dla nominału 10zł -- Parametr 7; ["0.2zł"] = 5, -- limit dla nominału 0.2zł -- Parametr 12; }; local wynik=rozmieniarka_modul.calculateNominals(frame); </syntaxhighlight> lub inaczej: <syntaxhighlight lang="lua"> local rozmieniarka_modul=require("Module:Rozmieniarka"); local amount = 123.45; -- kwota: 123.45zł -- Parametr 1 local frame = { ["kwota"] = amount, -- kwota -- Parametr 1; ["10zł"] = 2, -- limit dla nominału 10zł -- Parametr 7; ["20gr"] = 5, -- limit dla nominału 0.2zł -- Parametr 12; }; local wynik=rozmieniarka_modul.calculateNominals(frame); </syntaxhighlight> == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> </includeonly> toap4dkp4woj15q3h8k4lc5ouy757qr 558131 558129 2026-09-30T19:02:10Z Persino 2851 558131 wikitext text/x-wiki <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Moduł jest wykorzystywany przez szablon: {{s|Rozmieniarka}}, lub do wykorzystania bezpośredniego w postaci ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, albo jako funkcja biblioteczzna. == Opis parametrów == == Przykład == Przykładowe użycie w wikikodzie, używając pierwszy parametr jako {{Code|kwota}}, a następny, ile jest danego nominału dla danego numerka: <syntaxhighlight lang=mediawiki> {{#invoke:Rozmieniarka|calculateNominals|1=123.45|7=2<!-- nominał 10-->|12=5<!--nominał 0.2-->|wyspecjalizowana=tak}} </syntaxhighlight> * Wynik: {{#invoke:Rozmieniarka|calculateNominals|1=123.45|7=2<!-- nominał 10-->|12=5<!--nominał 0.2-->|wyspecjalizowana=tak}}. lub bezpośrednio używając parametry {{Code|kwota}} i nominałów: <syntaxhighlight lang=mediawiki> {{#invoke:Rozmieniarka|calculateNominals|kwota=123.45|10zł=2|0.2zł=5|wyspecjalizowana=tak}} </syntaxhighlight> * Wynik: {{#invoke:Rozmieniarka|calculateNominals|kwota=123.45|10zł=2|0.2zł=5|wyspecjalizowana=tak}}. lub inaczej: <syntaxhighlight lang=mediawiki> {{#invoke:Rozmieniarka|calculateNominals|kwota=123.45|10zł=2|20gr=5|wyspecjalizowana=tak}} </syntaxhighlight> * Wynik: {{#invoke:Rozmieniarka|calculateNominals|kwota=123.45|10zł=2|20gr=5|wyspecjalizowana=tak}}. Przykładowe użycie w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="lua"> local rozmieniarka_modul=require("Module:Rozmieniarka"); -- local amount = 123.45; -- kwota: 123.45zł -- Parametr 1 -- local limits = { -- [10] = 2, -- limit dla nominału 10zł -- Parametr 7; -- [0.2] = 5, -- limit dla nominału 0.2zł -- Parametr 12; -- }; local wynik=rozmieniarka_modul.calculateNominals{ [1] = 123.45, -- kwota; [7] = 2, -- nominał 10zł; [12] = 5, -- nominał 0.2zł; }; </syntaxhighlight> lub inny przykład inaczej licząca liczbę nominałów: <syntaxhighlight lang="lua"> local rozmieniarka_modul=require("Module:Rozmieniarka"); local amount = 123.45; -- kwota: 123.45zł -- Parametr 1 local nominals = { [10] = 2, -- limit dla nominału 10zł -- Parametr 7; [0.2] = 5, -- limit dla nominału 0.2zł -- Parametr 12; }; local frame=rozmieniarka_modul.createNominals(nominals,amount); local wynik=rozmieniarka_modul.calculateNominals(frame); </syntaxhighlight> lub inaczej: <syntaxhighlight lang="lua"> local rozmieniarka_modul=require("Module:Rozmieniarka"); local amount = 123.45; -- kwota: 123.45zł -- Parametr 1 local nominals = { ["kwota"] = amount, -- Parametr 1; ["10zł"] = 2, -- limit dla nominału 10zł -- Parametr 7; ["0.2zł"] = 5, -- limit dla nominału 0.2zł -- Parametr 12; }; local frame=rozmieniarka_modul.createNominals(nominals); local wynik=rozmieniarka_modul.calculateNominals(frame); </syntaxhighlight> albo bezpośrednio: <syntaxhighlight lang="lua"> local rozmieniarka_modul=require("Module:Rozmieniarka"); local amount = 123.45; -- kwota: 123.45zł -- Parametr 1 local frame = { ["kwota"] = amount, -- kwota -- Parametr 1; ["10zł"] = 2, -- limit dla nominału 10zł -- Parametr 7; ["0.2zł"] = 5, -- limit dla nominału 0.2zł -- Parametr 12; }; local wynik=rozmieniarka_modul.calculateNominals(frame); </syntaxhighlight> lub inaczej: <syntaxhighlight lang="lua"> local rozmieniarka_modul=require("Module:Rozmieniarka"); local amount = 123.45; -- kwota: 123.45zł -- Parametr 1 local frame = { ["kwota"] = amount, -- kwota -- Parametr 1; ["10zł"] = 2, -- limit dla nominału 10zł -- Parametr 7; ["20gr"] = 5, -- limit dla nominału 0.2zł -- Parametr 12; }; local wynik=rozmieniarka_modul.calculateNominals(frame); </syntaxhighlight> == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> </includeonly> bhw0xkqvobv1y3kksopu7vdft7fymh2 Szablon:Rozmieniarka 10 60086 558126 539860 2026-09-30T18:50:49Z Persino 2851 558126 wikitext text/x-wiki {{#invoke:Rozmieniarka|calculateNominals}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> 5kq5kdl95w61fwnhipxinuadkvkbnhp Moduł:StronicowyParser/AnalizaSpisuRzeczy 828 60192 558122 557789 2026-09-30T18:10:09Z Persino 2851 558122 Scribunto text/plain local p={}; function p.SzukanieNaPodstawieWzoru(tekst,wzor,liczba_od,liczba_do,czy_od_tylu,jak) if(not czy_od_tylu)then if((liczba_od)and(liczba_do)and(liczba_od>liczba_do))then return;end; local a,b,c,d,e,f,g,h,i,j,k=mw.ustring.find(tekst,wzor,liczba_od); if((a)and(b)and(a>b))then return;end; if((not liczba_do)or((b)and(b<=liczba_do)))then return a,b,c,d,e,f,g,h,i,j,k; end; return nil; else if((liczba_od)and(liczba_do)and(liczba_od<liczba_do))then return;end; local liczba_start=liczba_do or 1; local a,b,c,d,e,f,g,h,i,j,k=nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil; while(true)do local a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1=mw.ustring.find(tekst,wzor,liczba_start); if((a1)and(b1)and(a1>b1))then return;end; if((not b1)or((b1)and(b1>liczba_od)))then return a,b,c,d,e,f,g,h,i,j,k; elseif((b1)and(b1==liczba_od))then return a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1; end; a,b,c,d,e,f,g,h,i,j,k=a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1; if(not jak)then if(a1==b1)then liczba_start=b1+1; else liczba_start=b1; end; else liczba_start=b1+1; end; end; end; end; function p.SzukanieNaPodstawieWzoruElementuLinii(tekst,wzor_linia,liczba_od,liczba_do,czy_od_tylu) local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=nil,nil,nil; local a1;local a2;local a3;local a4;local a5;local a6;local a7;local a8;local a9; local dlugosc_tekstu_wyszukiwanego=#tekst; if(not czy_od_tylu)then if((not liczba_od)or(liczba_od==1))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9=p.SzukanieNaPodstawieWzoru(tekst,"^"..wzor_linia.."[^%S\n]*\n",liczba_od,liczba_do,false); end; if(not liczba_start_rozdzial)then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9=p.SzukanieNaPodstawieWzoru(tekst,"\n"..wzor_linia.."[^%S\n]*\n",liczba_od,liczba_do,false); if(not liczba_start_rozdzial)then if((not liczba_do)or(liczba_do==dlugosc_tekstu_wyszukiwanego))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9=p.SzukanieNaPodstawieWzoru(tekst,"\n"..wzor_linia.."[^%S\n]*$",liczba_od,liczba_do,false); end; if(not liczba_start_rozdzial)then if(((not liczba_od)or(liczba_od==1))and((not liczba_do)or(liczba_do==dlugosc_tekstu_wyszukiwanego)))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9=p.SzukanieNaPodstawieWzoru(tekst,"^"..wzor_linia.."[^%S\n]*$",liczba_od,liczba_do,false); end; end; end; end; else if(liczba_od==dlugosc_tekstu_wyszukiwanego)then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9=p.SzukanieNaPodstawieWzoru(tekst,"\n"..wzor_linia.."[^%S\n]*$",liczba_od,liczba_do,true); end; if(not liczba_start_rozdzial)then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9=p.SzukanieNaPodstawieWzoru(tekst,"\n"..wzor_linia.."[^%S\n]*\n",liczba_od,liczba_do,true); if(not liczba_start_rozdzial)then if((not liczba_do)or(liczba_do==1))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9=p.SzukanieNaPodstawieWzoru(tekst,"^"..wzor_linia.."[^%S\n]*\n",liczba_od,liczba_do,true); end; if(not liczba_start_rozdzial)then if(((not liczba_od)or(liczba_od==dlugosc_tekstu_wyszukiwanego))and((not liczba_do)or(liczba_do==1)))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9=p.SzukanieNaPodstawieWzoru(tekst,"^"..wzor_linia.."[^%S\n]*$",liczba_od,liczba_do,true); end; end; end; end; end; return liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9; end; function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local tab_2,numer_rodzaju_artykulu,id,parametry,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,stronicowyparser_rozdzialy_modul.__FUNKCJA_KOMPLETOWANIA); if(not kom)then local tab=((tab_2 and tab_2[1]) and tab_2 or nil); if(tab)then if(numer_rodzaju_artykulu==1)then local artykul=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab[1],false); local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s")))) local function StronyWstepu(artykul) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tak=true; for _,wzor in ipairs(stronicowyparser_obiekty_modul.artykularne_niespisowe) do tak=tak and (not mw.ustring.match(artykul,wzor)); if(not tak)then return tak;end; end; return tak; end; if((czy_glowny_spis_tresci)and(artykul==""))then return false,numer_rodzaju_artykulu,czy_podrecznik,false; else if((czy_usun_okladka)--[[or(numer_rodzaju_artykulu>1)]]or(--[[(numer_rodzaju_artykulu==1)and]](artykul~="")and(StronyWstepu(artykul))))then return true,numer_rodzaju_artykulu,czy_podrecznik,false; else return true,numer_rodzaju_artykulu,czy_podrecznik,true; end; end; else return true,numer_rodzaju_artykulu,--[[czy_podrecznik]]false,false; end; end; end; return false,nil; end; function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) if(obiekt=="SZABLON")then local szablonowe_modul=require("Module:Szablonowe"); local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) ---- if(nazwa_szablonu=="SpisTreści")then return true,1; else local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tabela_spisu=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]; if(tabela_spisu)then local parametr_linku; if(tabela_spisu[1]==true)then local numer_link=tabela_spisu["numer_link"]; parametr_linku=tabela_parametrow_szablonu[numer_link]; else local numer_link=tabela_spisu["link"]; parametr_linku=tabela_parametrow_szablonu[numer_link]; end; if(parametr_linku)then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(parametr_linku,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) if(czy_element_spisu)then return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka; end; end; end; end; end; end; end); if(czy_element_spisu)then return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka; end; end; return false; end; function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci); if((not czy_element_spisu)and(not numer_rodzaju_artykulu))then czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci); end; return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka; end; function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) local tak=false; local szablonowe_modul=require("Module:Szablonowe"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do --czy_w_petli=true; if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(not czy_okladka))then return true; elseif((not czy_element_spisu)and(numer_rodzaju_artykulu))then tak=true; break; elseif(czy_okladka)then tak=true; break; end; end; end; return (not tak); end; function p.SzukajObiektuArtykularnegoWeElemencieTekstowym(tekst,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych, czy_usun_okladka,czy_glowny_spis_tresci,czy_wszystkie_linki,bez_innych_stron) local start=1; while(true)do local start_szablon,koniec_szablon,obiekt_szablon,kod_szablon=p.SzukanieNaPodstawieWzoru(tekst,szablon_normy_kodowania_szablonu,start); local koniec_obiekt;local kod_obiekt;local obiekt=nil; if(start_szablon)then if((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ"))then local kod=kod_szablon; local obiekt=obiekt_szablon; local kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci); if((czy_element_spisu)and((czy_wszystkie_linki)or(((numer_rodzaju_artykulu==1)and(not czy_okladka))or((bez_innych_stron)and(numer_rodzaju_artykulu>1)))))then return true; end; end; start=koniec_szablon; else return false; end; end; end; function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tak=false; local techniczne_modul=require("Module:Techniczne"); linia=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(linia); for _,p_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci) do tak=tak or (((not spacje_na_poczatku) or (not mw.ustring.match(linia,"^%s+"))) and (mw.ustring.match(linia,"^"..p_wzor.."$"))); if(tak)then return true;end; end; return nil; end; function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,jak) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local techniczne_modul=require("Module:Techniczne"); while(true)do local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^\n]+)",liczba_od,liczba_do,jak); if(liczba_start_rozdzial)then local czy_zerowy_spis_rzeczy=p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(rozdzial,true); if(czy_zerowy_spis_rzeczy)then return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial; else liczba_od=jak and liczba_start_rozdzial or liczba_koniec_rozdzial; end; else return; end; end; return nil; end; function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) if(obiekt=="SZABLON")then return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) local czy_ce=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu]; if(not czy_ce)then return;end; local zawartosc=tabela_parametrow_szablonu[czy_ce]; if(not zawartosc)then return;end; return true; end); elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if((nazwa)and(zawartosc))then if(nazwa=="center")then return true; end; end; end; end; function p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst_rozwiniety_calego_artykulu,wzor,liczba_od,liczba_do,jak,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); while(true)do local liczba_start_rozdzial,liczba_koniec_rozdzial,linia=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"("..wzor..")",liczba_od,liczba_do,jak); if(liczba_start_rozdzial)then if((not mw.ustring.match(linia,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$"))and(not mw.ustring.match(linia,"^[%*#:;<>]")))then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul); local szablon,obiekt,kod,poziom_iteracji=iterator(); local wynik=((szablon)and(obiekt)and(kod))and p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nil; if(not wynik)then local rozdzial,czy_standardowe_rozdzialy=stronicowyparser_rozdzialy_modul.CzyZerowyNapisWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if((rozdzial)and(czy_standardowe_rozdzialy))then return liczba_start_rozdzial,liczba_koniec_rozdzial,linia; end; end; end; if(jak)then liczba_od=liczba_start_rozdzial;else liczba_od=liczba_koniec_rozdzial;end; else return; end; end; return nil; end; function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści") local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu; local function RozpatrywanieNapisoweWprowadzeniaTekstu(wzor,czy_rozdzial_rownaniowy_dodatni,__FUNKCJA1,__FUNKCJA2) local liczba_start;local liczba_koniec; local liczba_wys=liczba_od; local spis_naglowka; local spis_naglowka_stare; local spis_naglowka_poziom; while(true)do local __liczba_start,__liczba_koniec,wartosc_przechwycona; if(czy_rozdzial_rownaniowy_dodatni)then __liczba_start,__liczba_koniec,wartosc_przechwycona=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,wzor,liczba_wys,liczba_do,czy_od_tylu) else __liczba_start,__liczba_koniec,wartosc_przechwycona=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,wzor,liczba_wys,liczba_do,czy_od_tylu); end; if(__liczba_start)then if(not czy_od_tylu)then liczba_wys=__liczba_koniec;else liczba_wys=__liczba_start;end; local szablon,wartosc_przechwycona=__FUNKCJA1(wartosc_przechwycona); local wynik=__FUNKCJA2(szablon,wartosc_przechwycona,function(naglowek,poziom_naglowka) if(czy_spis_tresci)then spis_naglowka_stare=naglowek; spis_naglowka=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(naglowek,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka=parametry_modul["Odstępy"]{[1]=spis_naglowka,[2]="tak",}; if(poziom_naglowka)then spis_naglowka_poziom=poziom_naglowka;end; if(czy_spis_tresci(spis_naglowka))then liczba_start,liczba_koniec=__liczba_start,__liczba_koniec; return false; end; else spis_naglowka=naglowek; if(poziom_naglowka)then spis_naglowka_poziom=poziom_naglowka;end; liczba_start,liczba_koniec=__liczba_start,__liczba_koniec; return false; end; return true; end); if(not wynik)then break; end; else break; end; end; if(liczba_start)then return liczba_start,liczba_koniec,spis_naglowka_stare,spis_naglowka,spis_naglowka_poziom; end; end; local obiekt="SZABLON"; local norma_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt); local szablony_wprowadzenia_napisu_spisu_rzeczy=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy; local szablony_sztucznego_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_sztucznego_wprowadzenia_tekstu; local liczba_start_szablon,liczba_koniec_szablon,spis_naglowka_szablon_stare,spis_naglowka_szablon,spis_naglowka_szablon_poziom=RozpatrywanieNapisoweWprowadzeniaTekstu( norma_kodowania_szablonu, false, function(kod) kod=kod and tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; return szablon,kod; end, function(szablon,kod,__FUNKCJA) local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) local liczba_szablon_centrowany=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu]; if(liczba_szablon_centrowany)then local naglowek=tabela_parametrow_szablonu[liczba_szablon_centrowany]; if(naglowek)then if(not mw.ustring.match(naglowek,"^%s*%d+%s*/%s*%d+%s*$"))then return __FUNKCJA(naglowek,nil); end; end; else local liczba_szablon_napisowu_sztucznego_wprowadzenia_tekstu=szablony_sztucznego_wprowadzenia_tekstu[nazwa_szablonu]; if(liczba_szablon_napisowu_sztucznego_wprowadzenia_tekstu)then local naglowek=tabela_parametrow_szablonu[liczba_szablon_napisowu_sztucznego_wprowadzenia_tekstu]; if(naglowek)then local naglowek,poziom_naglowka=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(naglowek); if((naglowek)and(poziom_naglowka))then return __FUNKCJA(naglowek,poziom_naglowka); end; end; end; end; return true; end); return wynik; end); local obiekt="ZNACZNIK"; local norma_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt); local liczba_start_znacznik,liczba_koniec_znacznik,spis_naglowka_znacznik_stare,spis_naglowka_znacznik,spis_naglowka_znacznik_poziom=RozpatrywanieNapisoweWprowadzeniaTekstu( norma_kodowania_szablonu, false, function(kod) kod=kod and tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; return szablon,kod; end, function(szablon,kod,__FUNKCJA) local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(nazwa=="center")then if(zawartosc)then if(not mw.ustring.match(zawartosc,"^%s*%d+%s*/%s*%d+%s*$"))then return __FUNKCJA(zawartosc,nil); end; end; elseif(znaczniki_wprowadzenia_tekstu[nazwa])then if(zawartosc)then local numer_rozdzialu=stronicowyparser_rozdzialy_modul.HnNumerWprowadzeniaTekstu(nazwa,atrybuty); if(numer_rozdzialu)then return __FUNKCJA(zawartosc,numer_rozdzialu); end; end; end; return true; end); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local wzor_rozdzialu_dodatniego="(=+[^\n]*[^=\n][^\n]*=+)[^%S\n]*"; local liczba_start_dodatni,liczba_koniec_dodatni,spis_naglowka_dodatni_stare,spis_naglowka_dodatni,spis_naglowka_dodatni_poziom=RozpatrywanieNapisoweWprowadzeniaTekstu( wzor_rozdzialu_dodatniego, true, function(naglowek) return naglowek,naglowek; end, function(naglowek,_,__FUNKCJA) local naglowek,poziom_naglowka=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(naglowek); if(naglowek)then return __FUNKCJA(naglowek,poziom_naglowka); end; return true; end); if((liczba_start_szablon)or(liczba_start_znacznik)or(liczba_start_dodatni))then local _max_min; if(czy_od_tylu)then _max_min=math.max(math.max(liczba_start_szablon or 0,liczba_start_znacznik or 0),liczba_start_dodatni or 0); else _max_min=math.min(math.min(liczba_start_szablon or #tekst_rozwiniety_calego_artykulu,liczba_start_znacznik or #tekst_rozwiniety_calego_artykulu),liczba_start_dodatni or #tekst_rozwiniety_calego_artykulu); end; local function ParametryNapisuWprowadzeniaTekstu(liczba_start,liczba_koniec,spis_naglowka_stare,spis_naglowka,spis_naglowka_poziom) local spis_naglowka_stare=spis_naglowka_stare or spis_naglowka; if((not czy_spis_tresci)and(spis_naglowka))then spis_naglowka=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(spis_naglowka,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka=parametry_modul["Odstępy"]{[1]=spis_naglowka,[2]="tak",}; end; return liczba_start,liczba_koniec,spis_naglowka,spis_naglowka_stare,spis_naglowka_poziom; end; if((liczba_start_szablon)and(_max_min==liczba_start_szablon))then return ParametryNapisuWprowadzeniaTekstu(liczba_start_szablon,liczba_koniec_szablon,spis_naglowka_szablon_stare,spis_naglowka_szablon,spis_naglowka_szablon_poziom); elseif((liczba_start_znacznik)and(_max_min==liczba_start_znacznik))then return ParametryNapisuWprowadzeniaTekstu(liczba_start_znacznik,liczba_koniec_znacznik,spis_naglowka_znacznik_stare,spis_naglowka_znacznik,spis_naglowka_znacznik_poziom); elseif((liczba_start_dodatni)and(_max_min==liczba_start_dodatni))then return ParametryNapisuWprowadzeniaTekstu(liczba_start_dodatni,liczba_koniec_dodatni,spis_naglowka_dodatni_stare,spis_naglowka_dodatni,spis_naglowka_dodatni_poziom); end; end; return nil; end; function p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local szablony_wprowadzenia_napisu_spisu_rzeczy=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy; local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu; local szablony_sztucznego_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_sztucznego_wprowadzenia_tekstu; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local linki=function(zawartosc) local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(zawartosc,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if((obiekt=="LINKW")or(obiekt=="LINKZ"))then local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$"); return szablon,obiekt,kod,dalszy_tekst; elseif(obiekt=="SZABLON")then local szablon,obiekt,kod,dalszy_tekst=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if((stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]) or(stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]) )then local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$"); return szablon,obiekt,kod,dalszy_tekst; end; local tab_szablon_link_intelignetny=stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(tab_szablon_link_intelignetny)then local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$"); return szablon,obiekt,kod,dalszy_tekst; end; end); return szablon,obiekt,kod,dalszy_tekst; end; return nil; end; end; if(obiekt=="SZABLON")then local szablon,obiekt,kod=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) local czy_numer_parametru_naglowka=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu]; local zawartosc; if(not czy_numer_parametru_naglowka)then czy_numer_parametru_naglowka=szablony_sztucznego_wprowadzenia_tekstu[nazwa_szablonu]; if(not czy_numer_parametru_naglowka)then return nil;end; local zawartosc_szablonu=tabela_parametrow_szablonu[czy_numer_parametru_naglowka]; if(not zawartosc_szablonu)then return nil;end; zawartosc_szablonu=mw.text.trim(zawartosc_szablonu); local naglowek,poziom_naglowka=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(zawartosc_szablonu); if((not naglowek)or(not poziom_naglowka))then return nil;end; zawartosc=naglowek; else zawartosc=tabela_parametrow_szablonu[czy_numer_parametru_naglowka]; if(not zawartosc)then return nil;end; end; local szablon,obiekt,kod,dalszy_tekst=linki(zawartosc); if((szablon)and(obiekt)and(kod))then return szablon,obiekt,kod,dalszy_tekst; end; return nil; end); return szablon,obiekt,kod; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(zawartosc)then if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then local szablon,obiekt,kod,dalszy_tekst=linki(zawartosc); if((szablon)and(obiekt)and(kod))then return szablon,obiekt,kod,dalszy_tekst; end; return nil; end; end; return nil; end; end; function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe) if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek+1,liczba_obiekt_start_nowe-1); if((mw.ustring.match(str,"^%s*'+(.+)'+%s*$")) or(mw.ustring.match(str,"^[%*#:;<>]+.*$") or(mw.ustring.match(str,"^[%s%p%w]*$"))) )then return nil;end; local ile_punktowanych=0; local szablonowe_modul=require("Module:Szablonowe"); local _,ile=mw.ustring.gsub(str,"([^\n]+)",function(linia) if((mw.ustring.match(linia,"^[%*#;:<>]"))or(mw.ustring.match(linia,"^%s*$")))then ile_punktowanych=ile_punktowanych+1; else local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(numer_rodzaju_artykulu>2))then ile_punktowanych=ile_punktowanych+1; break; end; end; end; end); if(ile_punktowanych>=ile)then return nil; end; str=mw.ustring.gsub(str,szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"),""); if(not mw.ustring.match(str,"^%s*$"))then if(czy_zeruj)then tab_zmienne.liczba_nie_okladka_artykul=nil; tab_zmienne.liczba_pierwszy_rozdzialowy_artykul=nil; tab_zmienne.czy_ten_rozdzial=nil; --tab_zmienne={["liczba_nie_okladka_artykul"]=liczba_nie_okladka_artykul,["liczba_pierwszy_rozdzialowy_artykul"]=liczba_pierwszy_rozdzialowy_artykul,["czy_ten_rozdzial"]=czy_ten_rozdzial,} end; return true; end; end; return nil; end; end; function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe) local odtylu=liczba_obiekt_start_spac_par; local liczba_start_naglowek;local liczba_koniec_naglowek;local naglowek;local poziom_naglowka; local liczba_start_naglowek_dalej;local liczba_koniec_naglowek_dalej;local naglowek_dalej;local poziom_naglowka_dalej; local czy_fun=false; local czy_pierwszy=nil; local liczba_koniec_naglowek_poczt=nil; local szablonowe_modul=require("Module:Szablonowe"); while(true)do local liczba_start_naglowek_nowe;local liczba_koniec_naglowek_nowe;local naglowek_nowe;local poziom_naglowka_nowe; if(czy_dodatni==1)then local _; liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,_,poziom_naglowka_nowe=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true,false,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); elseif(czy_dodatni==2)then local str_lista_naglowek; liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,str_lista_naglowek,naglowek_nowe=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([%*#:;<>]+)[^%S\n]*([^\n]-)",odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); poziom_naglowka_nowe=liczba_start_naglowek_nowe and (-#str_lista_naglowek) or nil; else liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^%*#:;<>\n][^%S\n]*[^\n]-:)",odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); poziom_naglowka_nowe=liczba_start_naglowek_nowe and 0 or nil; end; if(not liczba_start_naglowek_nowe)then break; else poziom_naglowka_nowe=(czy_dodatni==1)and (poziom_naglowka_nowe or 2) or poziom_naglowka_nowe; local czy_tak_spisowe=(czy_dodatni==1) and true or p.CzyTamElementyNieSpisoweArtykularne(mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe),nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); if(czy_tak_spisowe)then if(not czy_pierwszy)then liczba_koniec_naglowek_poczt=liczba_koniec_naglowek_nowe; czy_pierwszy=true; end; if(liczba_start_naglowek)then if(liczba_koniec_naglowek_nowe<liczba_start_naglowek)then if(liczba_koniec_naglowek_nowe+1<=liczba_start_naglowek-1)then local pomiedzy_naglowkami=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe+1,liczba_start_naglowek-1); local czy_pomiedzy_naglowkami=(pomiedzy_naglowkami)and(not mw.ustring.match(pomiedzy_naglowkami,"^%s*$")); if(czy_pomiedzy_naglowkami and(((czy_dodatni==1) and( ((poziom_naglowka_nowe)and(not poziom_naglowka)) or( ((poziom_naglowka_nowe)and(poziom_naglowka)) and(poziom_naglowka_nowe>=poziom_naglowka) ) ) or( ((czy_dodatni==2)and(poziom_naglowka_nowe<=poziom_naglowka)) or((czy_dodatni~=1)and(czy_dodatni~=2)) ) )--[[or( not mw.ustring.match(pomiedzy_naglowkami,szablonowe_modul.NormaWzoruKodowaniaTekstu()) )]]) )then liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe; break; end; end; elseif(liczba_start_naglowek~=liczba_koniec_naglowek_nowe)then liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe; break; end; end; if(((czy_dodatni==1)or(czy_dodatni==2))and(AnalizowanieSekcjowe)and(not czy_fun))then local spis_tresci=p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(naglowek_nowe); if(not spis_tresci)then --local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe); local czy_wynik=AnalizowanieSekcjowe(liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe); if(czy_wynik)then return false;end; end; czy_fun=true; end; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe; end; end; odtylu=liczba_start_naglowek_nowe; end; return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej; end function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe) local liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka,liczba_start_naglowek_dalej=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,1,czy_bez_naglowka,AnalizowanieSekcjowe); ---- if((AnalizowanieSekcjowe)and(liczba_start_naglowek==false))then return nil;end; ---- local str_spacja_lub_zerowy_naglowek=function(tekst) local ile_znalezione_linie_wedlug_wzoru=0; local _,ile=mw.ustring.gsub(tekst,"([^\n]+)",function(linia) if((mw.ustring.match(linia,"^[^%*#:;<>\n].-:%s*$"))or(mw.ustring.match(linia,"^%s*$")))then ile_znalezione_linie_wedlug_wzoru=ile_znalezione_linie_wedlug_wzoru+1; end; return nil; end); if(ile==ile_znalezione_linie_wedlug_wzoru)then return true;end; return nil; end; if((not liczba_start_naglowek_dalej)and(liczba_start_naglowek))then local liczba_szukaj_odtylu_tekst=liczba_start_naglowek; local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+([^\n]+)''+",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); if(not liczba_start_rozdzial)then while(true)do local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_start_naglowek,2,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp,liczba_start_naglowek); if(not str_spacja_lub_zerowy_naglowek(str))then break; end; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; end; local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_start_naglowek,3,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp,liczba_start_naglowek); if(not str_spacja_lub_zerowy_naglowek(str))then break; end; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; end; if(not liczba_start_naglowek_temp)then break;end; end; end; elseif(not liczba_start_naglowek)then local liczba_szukaj_odtylu_tekst=liczba_obiekt_start_kolei_par; local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+([^\n]-[^'\n][^\n]-)''+",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); if(liczba_start_naglowek_temp)then local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści") local spis_naglowka_szablon=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(naglowek_temp,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not mw.ustring.match(spis_naglowka_szablon,"!%s*$")and(not mw.ustring.match(spis_naglowka_szablon,"%S!")))then ---- local tak=false; local czy_w_petli=false; local szablonowe_modul=require("Module:Szablonowe"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(naglowek_temp,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do czy_w_petli=true; if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(not czy_okladka))then if(numer_rodzaju_artykulu==1)then tak=true; break; end; end; end; end; if((tak)or(not czy_w_petli))then liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0; end; end; else local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp,liczba_start_naglowek_dalej_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,2,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then if(liczba_koniec_naglowek_temp+1<=liczba_obiekt_start_kolei_par-1)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp+1,liczba_obiekt_start_kolei_par-1); if(mw.ustring.match(str,"^%s*$"))then liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; liczba_obiekt_start_kolei_par=liczba_start_naglowek; end; else liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; liczba_obiekt_start_kolei_par=liczba_start_naglowek; end; end; local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp,liczba_start_naglowek_dalej_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,3,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then if(liczba_koniec_naglowek_temp+1<=liczba_obiekt_start_kolei_par-1)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp+1,liczba_obiekt_start_kolei_par-1); if(mw.ustring.match(str,"^%s*$"))then liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; end; else liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; end; end; end; end; return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka; end; function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul) local liczba_spac=0; if(liczba_start)then local liczba_start_tekst=liczba_start;local liczba_koniec_tekst;local linia; while(true)do local liczba_start_tekst_stare=liczba_start_tekst; linia=nil local liczba_szukaj_odtylu_tekst=liczba_start_tekst; liczba_start_tekst,liczba_koniec_tekst,linia=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^%*#:;<>\n][^\n]*)",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); local rozdzial_dodatki=linia and mw.ustring.match(linia,"^(=+([^\n]*[^=\n][^\n]*)=+)[^%S\n]*$") or nil; if(rozdzial_dodatki)then local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local naglowek=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(rozdzial_dodatki); if(naglowek)then return (czy_dalej_rozdzial)and liczba_start or liczba_koniec_tekst,liczba_spac; end; end; local spacja=linia and mw.ustring.match(linia,"^%s*$") or nil; if(spacja)then liczba_spac=liczba_spac+liczba_koniec_tekst-liczba_start_tekst+1; elseif((not spacja)and(linia))then local czy_spis=nil; local spis_tresci=p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,true); local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=nil,nil,nil; local czy_rozdzial_dwukropkowy; if(not spis_tresci)then liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_start_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); if(liczba_start_rozdzial)then liczba_start=liczba_start_rozdzial; else czy_rozdzial_dwukropkowy=mw.ustring.match(linia,"^[^\n]+:[^%S\n]*$"); liczba_start=czy_rozdzial_dwukropkowy and liczba_start_tekst or liczba_koniec_tekst; end; czy_spis=liczba_start_rozdzial and true or nil; else liczba_start=--[[spis_tresci and]] liczba_start_tekst--[[ or liczba_koniec_tekst]]; czy_spis=true; end; if(not liczba_start_rozdzial)then if(not spis_tresci)then local szablonowe_modul=require("Module:Szablonowe"); if(mw.ustring.match(linia,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then local tak=false; local czy_okladka=nil; local szablonowe_modul=require("Module:Szablonowe"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(not czy_okladka))then tak=true; break; end; end; end; liczba_start=tak and liczba_start_tekst or liczba_start; czy_spis=((czy_rozdzial_dwukropkowy)and(not tak))and true or nil; else liczba_start=czy_rozdzial_dwukropkowy and liczba_start_tekst or liczba_koniec_tekst; czy_spis=czy_rozdzial_dwukropkowy and true or nil; end; else liczba_start=--[[spis_tresci and ]]liczba_start_tekst--[[ or liczba_koniec_tekst]]; end; end; return liczba_start,liczba_spac,czy_spis; elseif(not liczba_start_tekst)then return (czy_dalej_rozdzial)and liczba_start or math.min(liczba_pierwszy_rozdzialowy_artykul or 1,liczba_start),liczba_spac,nil; end; end; end; return liczba_start,liczba_spac,nil; end; function p.SzukanieLinkuWeSzablonieOrazDalszymNapisie(obiekt,kod,linia,dalszy_tekst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_nieoddzielone,czy_wszystkie_linki) local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu,numer_rodzaju_artykulu,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); ---- ---- if((czy_element_spisu)and((czy_wszystkie_linki)or((numer_rodzaju_artykulu==1)and(not czy_okladka))or(numer_rodzaju_artykulu>1)))then return true; else local szablonowe_modul=require("Module:Szablonowe"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(dalszy_tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local szablon_obiekt_temp,szablon_kod_temp=obiekt_szablon,kod_szablon; for szablon,obiekt,kod in iterator do local czy_znajdz=mw.ustring.match(dalszy_tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)); if(czy_znajdz)then local czy_tekst=czy_nieoddzielone or mw.ustring.match(linia,szablonowe_modul.NormaWzoruKodowaniaTekstu(szablon_obiekt_temp,szablon_kod_temp).."[%p%s%d%.]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)); if(czy_tekst)then if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and((czy_wszystkie_linki)or((numer_rodzaju_artykulu==1)and(not czy_okladka))or(numer_rodzaju_artykulu>1)))then return true; end; end; else return false; end; szablon_obiekt_temp,szablon_kod_temp=obiekt,kod; end; end; return false; end; end; function p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa) local liczba_spisu=liczba_spisowa; local szablonowe_modul=require("Module:Szablonowe"); local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu() while(true)do local liczba_linki_nierozdzialowe_szablonu,_,linia,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*))",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); --- if((liczba_linki_nierozdzialowe_szablonu) and( (przed_tekst=="") or(mw.ustring.match(przed_tekst,"^[%p%s%d%.]*$")) ) )then liczba_spisu=liczba_linki_nierozdzialowe_szablonu; if((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ"))then local obiekt=obiekt_szablon; local kod=kod_szablon; kod=tonumber(kod) or nil; ---- local czy_znalezione=p.SzukanieLinkuWeSzablonieOrazDalszymNapisie(obiekt,kod,linia,dalszy_tekst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,false); if(czy_znalezione)then return liczba_linki_nierozdzialowe_szablonu,true;end; return liczba_spisowa,false; end; else return liczba_spisowa,false; end; end; end; function p.SzukanieSekcjiLinkowychLiniowychZakresowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_pierwszy_rozdzialowy_artykul,liczba_przed_rozdzialem,liczba_start_naglowek_przed,czy_znajdz) local liczba_start=liczba_przed_rozdzialem; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,true,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; return liczba_start,true; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; return liczba_start,true; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then if((not liczba_start_naglowek_przed)or(liczba_start_sugerowane>liczba_start_naglowek_przed))then liczba_start=liczba_start_sugerowane; local liczba_start_od_tylu=liczba_start; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,liczba_start_rozdzial,true); if(liczba_start_nowa)then if((not liczba_start_naglowek_przed)or(liczba_start_nowa>liczba_start_naglowek_przed))then liczba_start=liczba_start_nowa; end; else liczba_start=liczba_start_sugerowane; end; end; else liczba_start=liczba_start_sugerowane; end; return liczba_start,false; end; function p.PoliczKoniecZakodowanegoTekstuArtykularnego(tekst_rozwiniety_calego_artykulu,liczba_obiekt_koniec,liczba_koniec) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); while(true)do local poczatek_nierozdzalowe=liczba_obiekt_koniec; local liczba_start_nieszablon_nielink_nierozdzialowa,liczba_koniec_nieszablon_nielink_nierozdzialowa,linia=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^%*:;#<>'\n]+[^\n]*)",poczatek_nierozdzalowe,nil,false) if(liczba_start_nieszablon_nielink_nierozdzialowa)then local rozdzial_dodatki=mw.ustring.match(linia,"^(=+([^\n]*[^=\n][^\n]*)=+)[^%S\n]*$"); if(rozdzial_dodatki)then local naglowek=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(rozdzial_dodatki); if(naglowek)then liczba_koniec=liczba_start_nieszablon_nielink_nierozdzialowa; return liczba_koniec; end; end; local czy_spacje=mw.ustring.match(linia,"^%s*$"); if(not czy_spacje)then liczba_koniec=liczba_start_nieszablon_nielink_nierozdzialowa; return liczba_koniec; elseif(czy_spacje)then liczba_obiekt_koniec=liczba_koniec_nieszablon_nielink_nierozdzialowa; end; else liczba_koniec=#tekst_rozwiniety_calego_artykulu; return liczba_koniec; end; end; return liczba_koniec; end; function p.KoniecStronyLicencja(tekst_rozwiniety_calego_artykulu,liczba_start,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local liczba_obiekt_start_od_tylu=#tekst_rozwiniety_calego_artykulu; local szablonowe_modul=require("Module:Szablonowe"); local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"); while(true)do local liczba_start_szablon,liczba_koniec_szablon,kod_szablon=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,szablon_normy_kodowania_szablonu,liczba_obiekt_start_od_tylu,liczba_start,true); if(liczba_start_szablon)then liczba_obiekt_start_od_tylu=liczba_start_szablon; local obiekt="SZABLON"; local kod=kod_szablon and tonumber(kod_szablon) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; ---- local liczba_koniec_szablon,norma_wzoru=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if(nazwa_szablonu=="Licencja")then return liczba_koniec_szablon,szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end; end); if(liczba_koniec_szablon)then return liczba_koniec_szablon,norma_wzoru; end; elseif(not liczba_start_szablon)then return nil; end; end; end; function p.KorygowanieTekstuSpisuRzeczy(tekst,tab_wzor,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) local tak=nil; local techniczne_modul=require("Module:Techniczne"); local liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,1,nil,false,function(naglowek) naglowek=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(naglowek); if(mw.ustring.match(naglowek,"^"..tab_wzor[1].."$"))then return true; end; end,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not liczba_rozdzial_start)then liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial=p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst,"("..tab_wzor[1]..")",liczba_rozdzial_koniec,nil,false,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(liczba_rozdzial_start)then tak=true;end; end; if(liczba_rozdzial_start)then local liczba_rozdzial_start2,liczba_rozdzial_koniec2; if(not tak)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,liczba_rozdzial_koniec,nil,false,false,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); else local liczba_rozdzial_start3,liczba_rozdzial_koniec3=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,liczba_rozdzial_koniec,nil,false,false,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); local liczba_rozdzial_start4,liczba_rozdzial_koniec4=p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst,"[^%*#;:<>\n]+[^\n]+",liczba_rozdzial_koniec,nil,true,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- if((liczba_rozdzial_start3)and(liczba_rozdzial_start4))then if(liczba_rozdzial_start3<liczba_rozdzial_start4)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start3,liczba_rozdzial_koniec3; else liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start4,liczba_rozdzial_koniec4; end; elseif(liczba_rozdzial_start3)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start3,liczba_rozdzial_koniec3; elseif(liczba_rozdzial_start4)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start4,liczba_rozdzial_koniec4; else liczba_rozdzial_start2,liczba_rozdzial_koniec2=nil,nil; end; end; ----- local str_bibliografia=mw.ustring.sub(tekst,liczba_rozdzial_koniec+1,(liczba_rozdzial_start2 and (liczba_rozdzial_start2-1) or #tekst)); if((not str_bibliografia)or(str_bibliografia==""))then return tekst;end; local tekst1=mw.ustring.sub(tekst,1,liczba_rozdzial_koniec); local tekst2=liczba_rozdzial_start2 and mw.ustring.sub(tekst,liczba_rozdzial_start2,#tekst) or ""; ----- local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local szablonowe_modul=require("Module:Szablonowe"); local techniczne_modul=require("Module:Techniczne"); str_bibliografia=mw.ustring.gsub(str_bibliografia,"([^\n]+)",function(linia) local obiekt,kod,dalszy_tekst=mw.ustring.match(linia,"^[%*:;#<>]+%s*'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu().."([^\n]*)$"); if((obiekt)and(kod)and(dalszy_tekst))then kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((not czy_okladka)and(czy_element_spisu)and(numer_rodzaju_artykulu==1))then return linia; end; end; linia=dalszy_tekst or linia; local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if(((tab_wzor[2])and((obiekt=="LINKW")or(obiekt=="LINKZ")))or(obiekt=="SZABLON"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if(czy_element_spisu)then return linia; elseif(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if((stronicowyparser_obiekty_modul.szablony_przypisowe[nazwa_szablonu])or(stronicowyparser_obiekty_modul.szablony_licencji[nazwa_szablonu]))then return linia; else return ""; end; end,nil,nil,nil,nil,nil,nil,nil,nil, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) return ""; end); return wynik; end; end; end; return ""; end); tekst=tekst1..str_bibliografia..tekst2; end; return tekst; end; function p.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local czy_uruchomiony_analizator_spisu_rzeczy_strony=stronicowyparser_rozdzialy_modul.UruchamianieAnalizatoraSpisuRzeczyStrony(); if(not czy_uruchomiony_analizator_spisu_rzeczy_strony)then return nil;end; ---- local liczba_start=nil;local liczba_koniec=nil; ---- local szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); ----- local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu(); ---- local liczba_obiekt_koniec=1; local liczba_pierwszy_rozdzialowy_artykul=nil; local liczba_nie_okladka_artykul=nil; local tab_nazwa_spisow_przekierowaniowych={}; local liczba_start_rozdzial=1; local liczba_obiekt_start_poprz=nil; local liczba_obiekt_koniec_poprz=nil; local liczba_nie_okladka_artykul_koniec=nil; local wzor_szablonu_list="([%*:#;<>]*)([^%S\n]*)([^\n]-)[^%S\n]*[\'\"]*[^%S\n]*"..szablon_normy_kodowania_szablonu.."[^%S\n]*[\'\"]*[^%S\n]*([^\n]-)[^%S\n]*"; while(true)do local liczba_start_szablon,liczba_koniec_szablon,lista_szablon,odstepy_poczatku_rozdzialu,przerwa_szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,wzor_szablonu_list,liczba_obiekt_koniec,nil,false); if(liczba_start_szablon)then liczba_obiekt_koniec=liczba_koniec_szablon; --local czy_rozdzial_dodatni=((lista_szablon=="")and(odstepy_poczatku_rozdzialu=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$")))); local czy_rozdzial_dodatni; local czy_dobry_obiekt=((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ")); local czy_listy=((czy_dobry_obiekt)and( ( (lista_szablon~="")and( (przerwa_szablon=="") or((mw.ustring.match(lista_szablon,"^:"))and((przerwa_szablon==">")or(przerwa_szablon=="<"))) or(not mw.ustring.match(lista_szablon,"^:")) ) ) or((lista_szablon=="")and(przerwa_szablon=="")and(not mw.ustring.match(dalszy_tekst,"^>"))) )); czy_listy=czy_listy or ((czy_dobry_obiekt)and(lista_szablon=="")and(odstepy_poczatku_rozdzialu=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$")))); local szablon; if(not czy_listy)then local obiekt=obiekt_szablon;local kod=tonumber(kod_szablon) or nil; szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(szablon)then czy_listy=true;end; end; if(czy_listy)then local liczba_obiekt_start=liczba_start_szablon; local obiekt=obiekt_szablon; local kod=kod_szablon; kod=tonumber(kod) or nil; local szablon=szablon or tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((not czy_element_spisu)or(czy_okladka))then local iterator=mw.ustring.gmatch(dalszy_tekst,szablon_normy_kodowania_szablonu) local czy_element_spisu_temp;local numer_rodzaju_artykulu_temp;local czy_podrecznik_temp;local czy_okladka_temp; local tak=false; for obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; czy_element_spisu_temp,numer_rodzaju_artykulu_temp,czy_podrecznik_temp,czy_okladka_temp=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu_temp)and(not czy_okladka_temp))then if(numer_rodzaju_artykulu_temp==1)then tak=true; break; end; end; end; end; if(tak)then czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=czy_element_spisu_temp,numer_rodzaju_artykulu_temp,czy_podrecznik_temp,czy_okladka_temp; end; end; liczba_pierwszy_rozdzialowy_artykul=(not liczba_pierwszy_rozdzialowy_artykul)and(czy_element_spisu and liczba_obiekt_start or nil) or liczba_pierwszy_rozdzialowy_artykul; liczba_nie_okladka_artykul=((not liczba_nie_okladka_artykul)and((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or((numer_rodzaju_artykulu>=2)and((lista_szablon)and(lista_szablon~="") and (przerwa_szablon=="") and(dalszy_tekst=="")))))) and liczba_obiekt_start or liczba_nie_okladka_artykul; liczba_nie_okladka_artykul_koniec=((not liczba_nie_okladka_artykul)and((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or((numer_rodzaju_artykulu>=2)and((lista_szablon)and(lista_szablon~="") and (przerwa_szablon=="") and (dalszy_tekst=="")))))) and liczba_obiekt_koniec or liczba_nie_okladka_artykul_koniec; ---- if((czy_element_spisu)and(numer_rodzaju_artykulu==1)and(czy_podrecznik)and(not czy_okladka))then local czy_bez_naglowka=nil; local liczba_obiekt_start_nowe=liczba_nie_okladka_artykul or liczba_obiekt_start; local liczba_obiekt_koniec_nowe=liczba_nie_okladka_artykul_koniec or liczba_obiekt_koniec; local liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=nil,nil,nil,nil; local czy_ten_rozdzial=true; local liczba_obiekt_start_nowe_temp=liczba_obiekt_start_nowe; local liczba_spis_tresci_start,liczba_spis_tresci_koniec,spis_naglowka_dodatni_start,spis_naglowka_dodatni_stare_start,poziom_naglowka_start=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_obiekt_start_nowe,liczba_start_rozdzial,true,function(naglowek) if(p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(naglowek))then return true;end; end,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); local czy_zeruj=(not liczba_spis_tresci_start)and true or false; liczba_obiekt_start_nowe=liczba_spis_tresci_start or liczba_obiekt_start_nowe; local tab_zmienne={ liczba_nie_okladka_artykul=liczba_nie_okladka_artykul, liczba_pierwszy_rozdzialowy_artykul=liczba_pierwszy_rozdzialowy_artykul, czy_ten_rozdzial=czy_ten_rozdzial, }; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_nowe,czy_bez_naglowka,p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)); liczba_nie_okladka_artykul,liczba_pierwszy_rozdzialowy_artykul,czy_ten_rozdzial=tab_zmienne.liczba_nie_okladka_artykul,tab_zmienne.liczba_pierwszy_rozdzialowy_artykul,tab_zmienne.czy_ten_rozdzial; if(not czy_ten_rozdzial)then if(liczba_obiekt_start~=liczba_obiekt_start_nowe_temp)then liczba_start_rozdzial=liczba_obiekt_start_nowe_temp; liczba_obiekt_start_nowe=liczba_obiekt_start; czy_ten_rozdzial=true; tab_zmienne.czy_ten_rozdzial=czy_ten_rozdzial; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start,czy_bez_naglowka,p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)); liczba_nie_okladka_artykul,liczba_pierwszy_rozdzialowy_artykul,czy_ten_rozdzial=tab_zmienne.liczba_nie_okladka_artykul,tab_zmienne.liczba_pierwszy_rozdzialowy_artykul,tab_zmienne.czy_ten_rozdzial; end; end; ---- jest to pozycja nagłówka, która mówi, który nagłówek ma być pierwszy, czy ten od spisu treści, czy ten dalszy; liczba_start_naglowek=( (not liczba_spis_tresci_start) or((liczba_spis_tresci_start)and(not poziom_naglowka_start)) -- nagłówek spisu tresci centrowany; -- nagłówki oba dodatnie niecentrowane, oba ujemne lub ten pierwszy dodatni, a drugi ujemny, a pierwszy dodatni; or((poziom_naglowka_start)and(poziom_naglowka))and( ((poziom_naglowka_start>0)and(poziom_naglowka<=0)) or((poziom_naglowka_start<=0)and(poziom_naglowka<=0)and(poziom_naglowka_start>=poziom_naglowka)) or((poziom_naglowka_start>0)and(poziom_naglowka>0)and(poziom_naglowka_start<=poziom_naglowka)) ) ) and liczba_spis_tresci_start or liczba_start_naglowek; ---- if(((not czy_okladka)or((czy_okladka)and(lista_szablon~=""))or(liczba_start_naglowek))and(czy_ten_rozdzial))then ---- czy_bez_naglowka=((not liczba_start_naglowek)or((liczba_obiekt_koniec_poprz or 1)<=(liczba_start_rozdzial or 1))) and true or false; ---- if(liczba_start_naglowek)then local liczba_przed_rozdzialem;local czy_znajdz; liczba_przed_rozdzialem,czy_znajdz=p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start_naglowek); local odtylu_dalej=--[[liczba_spis_tresci or]] liczba_start_naglowek; local liczba_start_naglowek_przed=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,odtylu_dalej,liczba_start_rozdzial,true,false,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); local liczba_przed=((liczba_start_naglowek_przed)and((liczba_przed_rozdzialem>=liczba_start_naglowek_przed)and liczba_przed_rozdzialem or liczba_spis_tresci) or liczba_przed_rozdzialem); local czy_break; liczba_start,czy_break=p.SzukanieSekcjiLinkowychLiniowychZakresowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_pierwszy_rozdzialowy_artykul,liczba_przed,liczba_start_naglowek_przed,czy_znajdz); if(czy_break)then break;end; else local liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_nowe,2,czy_bez_naglowka,function(liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe) if((liczba_koniec_naglowek_nowe)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek_nowe+1<=liczba_obiekt_start_nowe-1))then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe+1,liczba_obiekt_start_nowe-1); str=mw.ustring.gsub(str,szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"),""); if(not mw.ustring.match(str,"^%s*$"))then return true; end; end; return nil; end); if(liczba_start_naglowek)then liczba_obiekt_start_nowe=liczba_start_naglowek; end; --[[]] local liczba_przed_rozdzialem,czy_znajdz=p.CzyJestZarejestrowanyLinkWeObiektachOddzielonychZnakamiWePozaSekcjowychLiniowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_obiekt_start_nowe); local czy_break; liczba_start,czy_break=p.SzukanieSekcjiLinkowychLiniowychZakresowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_pierwszy_rozdzialowy_artykul,liczba_przed_rozdzialem,nil,czy_znajdz); if(czy_break)then break;end; end; break; else liczba_start_rozdzial=liczba_obiekt_koniec_nowe; liczba_nie_okladka_artykul_koniec=nil; end; liczba_obiekt_koniec_poprz=((czy_element_spisu)and(numer_rodzaju_artykulu<=2)) and liczba_obiekt_koniec or liczba_obiekt_koniec_poprz; else liczba_obiekt_koniec_poprz=((czy_element_spisu)and(numer_rodzaju_artykulu<=2)) and liczba_obiekt_koniec or liczba_obiekt_koniec_poprz; end; end; else break; end; end; if(not liczba_start)then return "";end; local liczba_obiekt_start_od_tylu=#tekst_rozwiniety_calego_artykulu; while(true)do local liczba_start_szablon,liczba_koniec_szablon,linia,lista_szablon,przerwa_szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"(([%*:#;<>]?)([^\n]-)"..szablon_normy_kodowania_szablonu.."([^\n]*))",liczba_obiekt_start_od_tylu,liczba_start,true); ---- if(liczba_start_szablon)then liczba_obiekt_start_od_tylu=liczba_start_szablon; local czy_dobry_obiekt=((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ")); local czy_listy=(czy_dobry_obiekt)and((lista_szablon~="")or((lista_szablon=="")and(przerwa_szablon==""))); local czy_listy=czy_listy or (czy_dobry_obiekt)and((lista_szablon=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$")))); local szablon; if(not czy_listy)then local obiekt=obiekt_szablon;local kod=tonumber(kod_szablon) or nil; szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(szablon)then czy_listy=true;end; end; if(czy_listy)then local liczba_obiekt_koniec=liczba_koniec_szablon; local liczba_obiekt_start=liczba_start_szablon; local obiekt=obiekt_szablon; local kod=kod_szablon; kod=tonumber(kod) or nil; local szablon=szablon or tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_znalezione=nil; if(liczba_start<=liczba_obiekt_start)then czy_znalezione=p.SzukanieLinkuWeSzablonieOrazDalszymNapisie(obiekt,kod,linia,dalszy_tekst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); end; if(czy_znalezione)then liczba_koniec=p.PoliczKoniecZakodowanegoTekstuArtykularnego(tekst_rozwiniety_calego_artykulu,liczba_obiekt_koniec,liczba_koniec); break; end; end; else break; end; end; if(liczba_koniec)then local koniec_dodatnie_rozdzialy=#tekst_rozwiniety_calego_artykulu; while(true)do local liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial_nazwa,rozdzial=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,koniec_dodatnie_rozdzialy,liczba_start,true,false,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(liczba_rozdzial_start)and(liczba_rozdzial_start>=liczba_koniec)then koniec_dodatnie_rozdzialy=liczba_rozdzial_start; local czy_znalazles_linki=p.SzukajObiektuArtykularnegoWeElemencieTekstowym(rozdzial,szablon_normy_kodowania_szablonu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true,true,true); if(czy_znalazles_linki)then liczba_koniec=liczba_rozdzial_koniec;end; else break; end; end; end; if(not liczba_koniec)then return "";end; if(liczba_start>=liczba_koniec)then return "";end; --- Licencja ---- local licencja_koniec,szablon_licencja=p.KoniecStronyLicencja(tekst_rozwiniety_calego_artykulu,liczba_koniec,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if((licencja_koniec)and(licencja_koniec>=liczba_koniec))then liczba_koniec=licencja_koniec; end; ----- local tekst=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start,liczba_koniec); ----- for _,tab_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe)do tekst=p.KorygowanieTekstuSpisuRzeczy(tekst,tab_wzor,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); end; --mw.log(tekst) --- Licencja ---- --mw.log(liczba_start,liczba_koniec,"TYTANw",pelna_nazwa_spisu_tresci_szablonowa) --mw.log("TYTAN1",tekst,"TYTAN2") --return nil; --local tekst=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start,liczba_koniec); --mw.log(tekst,"TYTAN123") return tekst; end; return p; 8o6qq442j71gvgk9zbwzxhoswljaz2l Szablon:Rozmieniarka/opis 10 60707 558127 539868 2026-09-30T18:51:29Z Persino 2851 558127 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Rozmieniarka}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == == Opis parametrów == == Przykład == Przykładowe użycie w wikikodzie, używając pierwszy parametr jako {{Code|kwota}}, a następny, ile jest danego nominału dla danego numerka: <syntaxhighlight lang=mediawiki> {{Rozmieniarka|1=123.45|7=2<!-- nominał 10-->|12=5<!--nominał 0.2-->}} </syntaxhighlight> * Wynik: {{Rozmieniarka|1=123.45|7=2<!-- nominał 10-->|12=5<!--nominał 0.2-->}} lub bezpośrednio używając parametry {{Code|kwota}} i nominałów: <syntaxhighlight lang=mediawiki> {{Rozmieniarka|kwota=123.45|10zł=2|0.2zł=5}} </syntaxhighlight> * Wynik: {{Rozmieniarka|kwota=123.45|10zł=2|0.2zł=5}} lub inaczej: <syntaxhighlight lang=mediawiki> {{Rozmieniarka|kwota=123.45|10zł=2|20gr=5}} </syntaxhighlight> * Wynik: {{Rozmieniarka|kwota=123.45|10zł=2|20gr=5}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> </includeonly> imn7y3cu8top9ydwaauo8ramjvdt0ss 558130 558127 2026-09-30T18:57:22Z Persino 2851 558130 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Rozmieniarka}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == == Opis parametrów == == Przykład == Przykładowe użycie w wikikodzie, używając pierwszy parametr jako {{Code|kwota}}, a następny, ile jest danego nominału dla danego numerka: <syntaxhighlight lang=mediawiki> {{Rozmieniarka|1=123.45|7=2<!-- nominał 10-->|12=5<!--nominał 0.2-->}} </syntaxhighlight> * Wynik: {{Rozmieniarka|1=123.45|7=2<!-- nominał 10-->|12=5<!--nominał 0.2-->}} lub bezpośrednio używając parametry {{Code|kwota}} i nominałów: <syntaxhighlight lang=mediawiki> {{Rozmieniarka|kwota=123.45|10zł=2|0.2zł=5}} </syntaxhighlight> * Wynik: {{Rozmieniarka|kwota=123.45|10zł=2|0.2zł=5}} lub inaczej: <syntaxhighlight lang=mediawiki> {{Rozmieniarka|kwota=123.45|10zł=2|20gr=5}} </syntaxhighlight> * Wynik: {{Rozmieniarka|kwota=123.45|10zł=2|20gr=5}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony podręczników}} </includeonly> d8edw8w79hapjaa52pq1ivxhpxolwf7 Szablon:NawigacjaSpecjalna/Nawigacja/Pomoc:Spis treści 10 61114 558158 557596 2026-10-01T09:08:10Z Persino 2851 558158 wikitext text/x-wiki <includeonly>{{Układ autonawigacji|krok={{{1}}} |automat manualny=tak |spis treści=Pomoc:Spis treści |Pomoc:Spis treści|Pomoc - Spis treści |Pomoc:Spis treści/Wstęp|Wstęp |Wikibooks:Witamy nowicjuszy|Witamy nowicjuszy |Wikibooks:Zasady i wskazówki|Zasady i wskazówki |Wikibooks:Szybka pomoc|Szybka pomoc |Wikibooks:Czym jest Wikibooks|Czym jest Wikibooks? |Wikibooks:Różnice między Wikipedią i Wikibooks|Różnice między Wikipedią i Wikibooks |Wikibooks:Dlaczego warto rozpocząć współpracę|Dlaczego warto rozpocząć współpracę? |Wikibooks:Dlaczego używać wolnych podręczników|Dlaczego używać wolnych podręczników? |Wikibooks:Dlaczego nie pisać na Wikibooks|Dlaczego nie pisać na Wikibooks? |Wikibooks:Wikietykieta|Wikietykieta |Pomoc:Wikietykieta|Wikietykieta |Wikibooks:Neutralny punkt widzenia|Neutralny punkt widzenia |Pomoc:Żargon użytkowników|Żargon użytkowników |Wikibooks:Informacje prawne|Informacje prawne |Wikibooks:Prawa autorskie|Prawa autorskie |Pomoc:Spis treści/Edycja|Edycja |Wikibooks:Brudnopis|Brudnopis |Pomoc:Edycja kodu|Edycja kodu |Wikibooks:Import stron|Import stron |Wikibooks:Etapy rozwoju książek|Etapy rozwoju książek |Wikibooks:Ilustracja Wikibooks|Ilustracja Wikibooks |Pomoc:Jak edytować artykuły|Jak edytować artykuły? |Wikibooks:Nazewnictwo artykułów|Nazewnictwo artykułów |Pomoc:Podświetlanie składni|Podświetlanie składni |Pomoc:Problemy z polskimi znakami|Problemy z polskimi znakami |Pomoc:Quiz|Quiz |Pomoc:Tworzenie podręcznika|Tworzenie podręcznika |Wikibooks:Wandalizm|Wandalizm |Wikibooks:Podręczniki do druku|Podręczniki do druku |Pomoc:Tworzenie wersji do druku|Tworzenie wersji do druku |Pomoc:Tworzenie wersji PDF|Tworzenie wersji PDF |Pomoc:Tworzenie wersji PDF/javaLatex|Tworzenie wersji PDF/javaLatex |Pomoc:Książki|Książki |Pomoc:Spis treści/Wkład miesiąca|Wkład miesiąca |Wikibooks:Wkład miesiąca/Aktualne głosowanie|Aktualne głosowanie |Wikibooks:Wkład miesiąca/Wstęp|Wstęp |Wikibooks:Wkład miesiąca/Regulamin|Regulamin |Wikibooks:Wkład miesiąca/Nominacje|Nominacje |Pomoc:Spis treści/Komunikacja|Komunikacja |Wikibooks:Kanał IRC|Kanał IRC |Wikibooks:Kontakt|Kontakt |Wikibooks:Portal użytkowników|Portal użytkowników |Pomoc:Archiwizowanie strony dyskusji|Archiwizowanie strony dyskusji |Wikibooks:Przedstawicielstwo dyplomatyczne|Przedstawicielstwo dyplomatyczne |Pomoc:Spis treści/Korzystanie z Wikibooks|Korzystanie z Wikibooks |Wikibooks:Jak przeglądać Wikibooks|Jak przeglądać Wikibooks? |Wikibooks:Księgozbiór|Księgozbiór |Wikibooks:Księgozbiór/Wybrane|Księgozbiór - Wybrane |Wikibooks:Księgozbiór/Alfabetycznie|Księgozbiór - Alfabetycznie |Wikibooks:Księgozbiór/Tematycznie|Księgozbiór - Tematycznie |Kategoria:Kategorie podręcznikowe|Księgozbiór - Według kategorii |Wikibooks:Księgozbiór/Poziom|Księgozbiór - Według poziomu |Wikibooks:Księgozbiór/Status|Księgozbiór - Według rozwoju |Portal:Nauki ścisłe i przyrodnicze|Portal - Nauki ścisłe i przyrodnicze |Portal:Informatyka|Portal - Informatyka |Portal:Nauki techniczne|Portal - Nauki techniczne |Portal:Nauki społeczne i humanistyczne|Portal - Nauki społeczne i humanistyczne |Portal:Sport i rozrywka|Portal - Sport i rozrywka |Portal:Hobby, poradniki i książki różne|Portal - Hobby, poradniki i książki różne |Wikibooks:Promocja|Promocja |Pomoc:Tryb ciemny|Tryb ciemny |Pomoc:Spis treści/Historia Wikibooks|Historia Wikibooks |Wikibooks:Historia Wikibooks|Historia Wikibooks |Wikibooks:Piąte urodziny|Piąte urodziny |Wikibooks:6. urodziny polskich Wikibooks|6. urodziny polskich Wikibooks |Wikibooks:Wikikalendarz 2009|Wikikalendarz 2009 |Wikibooks:Sprzątanie Wikibooks|Sprzątanie Wikibooks |Wikibooks:Sprzątanie Wikibooks/2009|Sprzątanie Wikibooks - 2009 |Wikibooks:Sprzątanie Wikibooks/2011|Sprzątanie Wikibooks - 2011 |Wikibooks:Statystyki|Statystyki |Pomoc:Spis treści/Technikalia|Technikalia |Wikibooks:Przestrzenie nazw|Przestrzenie nazw |Wikibooks:Poczekalnia|Poczekalnia |Wikibooks:Poczekalnia/naprawa|Poczekalnia - Naprawa |Wikibooks:Poczekalnia/prowokacje|Poczekalnia - Prowokacje |Wikibooks:Poczekalnia/artykuły|Poczekalnia - Artykuły |Wikibooks:Poczekalnia/kwestie techniczne|Poczekalnia - Kwestie techniczne |Wikibooks:Poczekalnia/Zgłoszenia|Poczekalnia - Zgłoszenia |Wikibooks:Poczekalnia/Załatwione|Poczekalnia - Załatwione |Wikibooks:VisualEditor|VisualEditor |Pomoc:Nowa skórka – wektor|Nowa skórka – wektor |Wikibooks:Skróty|Skróty |Pomoc:Spis treści/Strona główna|Strona główna |Pomoc:Spis treści/Wybrane książki|Wybrane książki |Wikibooks:Mechanizm MediaWiki|Mechanizm MediaWiki |Wikibooks:Szablony|Mechanizm MediaWiki - Szablony |Wikibooks:Moduły|Mechanizm MediaWiki - Moduły |Wikibooks:Moduły/Parametry|Moduł:Parametry |Wikibooks:Moduły/Parametry/Tom I|Moduł:Parametry - Tom I |Wikibooks:Moduły/Parametry/Tom II|Moduł:Parametry - Tom II |Wikibooks:Moduły/Parametry/Tom III|Moduł:Parametry - Tom III |Wikibooks:Moduły/Parametry/Tom IV|Moduł:Parametry - Tom IV |Wikibooks:Moduły/Parametry/Tom V|Moduł:Parametry - Tom V |Wikibooks:Moduły/Parametry/Tom VI|Moduł:Parametry - Tom VI |Wikibooks:Moduły/Parametry/Tom VII|Moduł:Parametry - Tom VII |Wikibooks:Moduły/Parametry/Tom VIII|Moduł:Parametry - Tom VIII |Wikibooks:Moduły/Parametry/Tom IX|Moduł:Parametry - Tom IX |Wikibooks:Moduły/Parametry/Tom X|Moduł:Parametry - Tom X |Wikibooks:Moduły/Parametry/Tom XI|Moduł:Parametry - Tom XI |Wikibooks:Moduły/Parametry/Tom XII|Moduł:Parametry - Tom XII |Wikibooks:Moduły/Parametry/Tom XIII|Moduł:Parametry - Tom XIII |Wikibooks:Moduły/Parametry/Tom XIV|Moduł:Parametry - Tom XIV |Wikibooks:Moduły/Parametry/Tom XV|Moduł:Parametry - Tom XV |Wikibooks:Moduły/Parametry/Tom XVI|Moduł:Parametry - Tom XVI |Wikibooks:Moduły/Parametry/Tom XVII|Moduł:Parametry - Tom XVII |Wikibooks:Moduły/Parametry/Tom XVIII|Moduł:Parametry - Tom XVIII |Wikibooks:Moduły/Parametry/Tom XIX|Moduł:Parametry - Tom XIX |Wikibooks:Moduły/Parametry/Tom XX|Moduł:Parametry - Tom XX |Wikibooks:Moduły/Html|Moduł:Html |Wikibooks:Moduły/Książkowe|Moduł:Książkowe |Wikibooks:Moduły/Nazwy|Moduł:Nazwy |Wikibooks:Moduły/Nazwy/Tom I|Moduł:Nazwy - Tom I |Wikibooks:Moduły/Nazwy/Tom II|Moduł:Nazwy - Tom II |Wikibooks:Moduły/Nazwy/Tom III|Moduł:Nazwy - Tom III |Wikibooks:Moduły/Nazwy/Tom IV|Moduł:Nazwy - Tom IV |Wikibooks:Moduły/Nazwy/Np|Moduł:Nazwy - Np |Wikibooks:Moduły/Pudełko|Moduł:Pudełko |Wikibooks:Moduły/Pudełko/Tom I|Moduł:Pudełko - Tom I |Wikibooks:Moduły/Pudełko/Tom II|Moduł:Pudełko - Tom II |Wikibooks:Moduły/Pudełko/Tom III|Moduł:Pudełko - Tom III |Wikibooks:Moduły/Pudełko/Tom IV|Moduł:Pudełko - Tom IV |Wikibooks:Moduły/Pudełko/Tom V|Moduł:Pudełko - Tom V |Wikibooks:Moduły/Pudełko/Pomocne|Moduł:Pudełko - Pomocne |Wikibooks:Moduły/Pudełko/Potrzebne|Moduł:Pudełko - Potrzebne |Wikibooks:Moduły/Pudełko/ParametryCechy|Moduł:Pudełko - Parametry Cechy |Wikibooks:Moduły/Ramka|Moduł:Ramka |Wikibooks:Moduły/Specjalne|Moduł:Specjalne |Wikibooks:Moduły/StronicowyParser|StronicowyParser |Wikibooks:Moduły/StronicowyParser/Moduł główny|StronicowyParser - Moduł główny |Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy|StronicowyParser - AnalizaSpisuRzeczy |Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom I|StronicowyParser - AnalizaSpisuRzeczy - Tom I |Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom II|StronicowyParser - AnalizaSpisuRzeczy - Tom II |Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom III|StronicowyParser - AnalizaSpisuRzeczy - Tom III |Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom IV|StronicowyParser - AnalizaSpisuRzeczy - Tom IV |Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom V|StronicowyParser - AnalizaSpisuRzeczy - Tom V |Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom VI|StronicowyParser - AnalizaSpisuRzeczy - Tom VI |Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom VII|StronicowyParser - AnalizaSpisuRzeczy - Tom VII |Wikibooks:Moduły/StronicowyParser/GłównaFunkcjaZbieraniaDanychStron|StronicowyParser - GłównaFunkcjaZbieraniaDanychStron |Wikibooks:Moduły/StronicowyParser/Kategorie|StronicowyParser - Kategorie |Wikibooks:Moduły/StronicowyParser/NumerLubNazwaArtykułówKsiążek|StronicowyParser - NumerLubNazwaArtykułówKsiążek |Wikibooks:Moduły/StronicowyParser/NumerLubNazwaNagłówkówKsiążek|StronicowyParser - NumerLubNazwaNagłówkówKsiążek |Wikibooks:Moduły/StronicowyParser/NumerObiektu|StronicowyParser - NumerObiektu |Wikibooks:Moduły/StronicowyParser/NumeracjaObiektówStron|StronicowyParser - NumeracjaObiektówStron |Wikibooks:Moduły/StronicowyParser/Potrzebne|StronicowyParser - Potrzebne |Wikibooks:Moduły/StronicowyParser/Problemy|StronicowyParser - Problemy |Wikibooks:Moduły/StronicowyParser/Rozdziały|StronicowyParser - Rozdziały |Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom I|StronicowyParser - Rozdziały - Tom I |Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom II|StronicowyParser - Rozdziały - Tom II |Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom III|StronicowyParser - Rozdziały - Tom III |Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom IV|StronicowyParser - Rozdziały - Tom IV |Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom V|StronicowyParser - Rozdziały - Tom V |Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom V/Część I|StronicowyParser - Rozdziały - Tom V - Część I |Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom V/Część II|StronicowyParser - Rozdziały - Tom V - Część II |Wikibooks:Moduły/StronicowyParser/SpisTreści|StronicowyParser - SpisTreści |Wikibooks:Moduły/StronicowyParser/SpisTreści/Tom I|StronicowyParser - SpisTreści - Tom I |Wikibooks:Moduły/StronicowyParser/SpisTreści/Tom II|StronicowyParser - SpisTreści - Tom II |Wikibooks:Moduły/StronicowyParser/StronaSubst|StronicowyParser - StronaSubst |Wikibooks:Moduły/StronicowyParser/Tekst|StronicowyParser - Tekst |Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron|StronicowyParser - ZbieranieDanychStron |Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Potrzebne|StronicowyParser - ZbieranieDanychStron - Potrzebne |Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I|StronicowyParser - ZbieranieDanychStron - Potrzebne - Tom I |Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II|StronicowyParser - ZbieranieDanychStron - Potrzebne - Tom II |Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom III|StronicowyParser - ZbieranieDanychStron - Potrzebne - Tom III |Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV|StronicowyParser - ZbieranieDanychStron - Potrzebne - Tom IV |Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom V|StronicowyParser - ZbieranieDanychStron - Potrzebne - Tom V |Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Moduł główny|StronicowyParser - ZbieranieDanychStron |Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I|StronicowyParser - ZbieranieDanychStron - Część I |Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Moduł główny/Część II|StronicowyParser - ZbieranieDanychStron - Część II |Wikibooks:Moduły/StronicowyParser/SzablonyTekstu|StronicowyParser - SzablonyTekstu |Wikibooks:Moduły/StronicowyParser/informacje|StronicowyParser - informacje |Wikibooks:Moduły/StronicowyParser/obiekty|StronicowyParser - obiekty |Wikibooks:Moduły/Szeregi|Moduł:Szeregi |Wikibooks:Moduły/Skrót|Moduł:Skrót |Wikibooks:Moduły/Strony|Moduł:Strony |Wikibooks:Moduły/Sekcja referencyjna|Moduł:Sekcja referencyjna |Wikibooks:Szablony/Ogólne|Szablony - Ogólne |Wikibooks:Szablony/Informacje|Szablony - Informacje |Wikibooks:Szablony/PrzypisStrona|PrzypisStrona |Wikibooks:Szablony/Podręcznikowe|Szablony - Podręcznikowe |Wikibooks:Szablony/Książkowe|Szablony - Książkowe |Wikibooks:Szablony/Tekst|Szablony - Tekst |Wikibooks:Szablony/Zawartość|Szablony - Zawartość |Wikibooks:Szablony/Nagłówki|Szablony - Nagłówki |Wikibooks:Szablony/Przekierowania|Szablony - Przekierowania |Wikibooks:Szablony/Języki|Szablony - Języki |Wikibooks:Szablony/Liczby|Szablony - Liczby |Wikibooks:Szablony/Kategorie|Szablony - Kategorie |Wikibooks:Szablony/Opisy|Szablony - Opisy |Wikibooks:Szablony/Znaczniki|Szablony - Znaczniki |Wikibooks:Szablony/Szablony opływania|Szablony opływania |Wikibooks:Szablony/Stronicowe|Szablony - Stronicowe |Wikibooks:Szablony/Kontenerowe|Szablony - Kontenerowe |Wikibooks:Szablony/Elastyczne|Szablony - Elastyczne |Wikibooks:Szablony/Infoboksy/Prolog|Szablony - Infoboksy - Prolog |Wikibooks:Szablony/Infoboksy/Tom I|Szablony - Infoboksy - Tom I |Wikibooks:Szablony/Infoboksy/Tom II|Szablony - Infoboksy - Tom II |Wikibooks:Szablony/Infoboksy/Tom III|Szablony - Infoboksy - Tom III |Wikibooks:Szablony/Infoboksy/Tom IV|Szablony - Infoboksy - Tom IV |Wikibooks:Szablony/Infoboksy/Tom V|Szablony - Infoboksy - Tom V |Wikibooks:Szablony/Infoboksy/Tom VI|Szablony - Infoboksy - Tom VI |Wikibooks:Szablony/Infoboksy/Komponenty|Szablony - Infoboksy - Komponenty |Wikibooks:Szablony/Infoboksy/Komponenty (organizmy żywe)|Infoboksy - Komponenty (organizmy żywe) |Wikibooks:Szablony/Porządkowe|Szablony - Porządkowe |Wikibooks:Szablony/Źródła artykułów|Szablony - Źródła artykułów |Wikibooks:Szablony/Linki|Szablony - Linki |Wikibooks:Szablony/Linki inteligentne|Szablony - Linki inteligentne |Wikibooks:Szablony/Do usunięcia|Szablony - Do usunięcia |Wikibooks:Szablony/Nawigacja|Szablony - Nawigacja |Wikibooks:Szablony/Media|Szablony - Media |Wikibooks:Szablony/Grafika|Szablony - Grafika |Wikibooks:Szablony/Licencjonowanie|Szablony - Licencjonowanie |Wikibooks:Szablony/Techniczne|Szablony - Techniczne |Wikibooks:Szablony/Wikipedysta|Szablony - Wikipedysta |Wikibooks:Szablony/Dyskusja Wikipedysty|Szablony - Dyskusja Wikipedysty |Wikibooks:Szablony/MediaWiki|Szablony - MediaWiki |Wikibooks:Szablony/Systemowe|Szablony - Systemowe |Pomoc:Spis treści/Szablony/Tom I|Szablony - Tom I |Pomoc:Spis treści/Szablony/Tom II|Szablony - Tom II |Pomoc:Spis treści/Szablony/Tom III|Szablony - Tom III |Pomoc:Spis treści/Szablony/Tom IV|Szablony - Tom IV |Pomoc:Spis treści/Administracja|Administracja |Wikibooks:Kwestie techniczne|Kwestie techniczne |Wikibooks:Wikipedyści potrzebujący pomocy|Wikipedyści potrzebujący pomocy |Wikibooks:Zgłoś błąd (ZB)|Zgłoś błąd (ZB) |Wikibooks:Lista Naruszeń Praw Autorskich (NPA)|Lista Naruszeń Praw Autorskich (NPA) |Wikibooks:Administratorzy|Administratorzy |Wikibooks:Prośby do administratorów|Prośby do administratorów |Wikibooks:Administratorzy interfejsu|Administratorzy interfejsu |Wikibooks:Prośby do administratorów interfejsu|Prośby do administratorów interfejsu |Wikibooks:Biurokraci|Biurokraci |Wikibooks:Boty|Boty |Wikibooks:Stewardzi|Stewardzi |Wikibooks:Użytkownicy|Użytkownicy |Wikibooks:Automatycznie zatwierdzeni użytkownicy|Automatycznie zatwierdzeni użytkownicy |Wikibooks:Zatwierdzeni użytkownicy|Zatwierdzeni użytkownicy |Wikibooks:Przyznawanie uprawnień|Przyznawanie uprawnień |Wikibooks:Nazwa użytkownika|Nazwa użytkownika |Wikibooks:Prośby o zmianę nazwy użytkownika|Prośby o zmianę nazwy użytkownika |Wikibooks:Uprawnieni do logowania się z zablokowanych adresów IP|Uprawnieni do logowania się z zablokowanych adresów IP |Wikibooks:GNU Free Documentation License|GNU Free Documentation License }}</includeonly><noinclude>{{Dokumentacja|zawartość=Szablon manualny (ręczny), nie automatyczny, bo ustawiony za pomocą {{Parametr|automat manualny|tak}}, wskazujący poprzedni i następny artykuł pomocy oraz ich stronę główną, czyli spis po {{LinkPomoc2|Spis treści}}.}}{{Kategoria|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}</noinclude> oaij56o31ob7qw0anizdhl29l9n4yha Szablon:PrzypisStrona/opis 10 62171 558115 558011 2026-09-30T16:57:26Z Persino 2851 558115 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Cytuj}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> ; Dwa pierwsze parametry numerowane {{Pre|{{s|{{ROOTPAGENAME}}|{{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona|adres{{=}}{{!}}}}{{!(}}1{{)!}}|{{!(}}2{{)!}}|serwis{{=}}|...}}}} ; A tutaj nazwane {{Pre|{{s|{{ROOTPAGENAME}}|{{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona|adres{{=}}{{!}}}}podstrona{{=}}|nazwa{{=}}|serwis{{=}}|...}}}} {{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona|Szablony można definiować w oparciu o ten szablon, wsadzając do ich definicji w sekcji: {{Tag|includeonly}}, następujący kod:|{{DivLinia}}}} {{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona||Szablon: {{Tt|{{s|{{ROOTPAGENAME}}}}}}, wywołuje funkcję ramkową:&#32;}}{{Code|{{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona|{{m|Ramka|Szablon|Nazwa{{=}}{{ls|PrzypisStrona}}|adres{{=}}<podaj url strony>|dalsze parametry...}}|{{Wikikod|{{ROOTPAGENAME}}}}}}}}{{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona||.}} Szablon: {{Tt|{{s|PrzypisStrona}}}}, wywołuje: {{Code|{{m|Cytuj}}}}, poprzez wywołanie: {{Code|{{s|Cytuj}}}}, a w nim jest uruchamiana ramka: {{Code|{{m|Cytuj|custom2}}}}, poprzez funkcję: {{Code|{{m|Cytuj|custom}}}}, aby ściągnąć parametry rodzica szablonu: {{Code|{{s|Cytuj}}}}. Dalsze parametry szablonu: {{Tt|{{s|{{ROOTPAGENAME}}}}}}, nie licząc powyższych, są takie same jak w szablonie {{s|Cytuj}}, bez parametrów: {{Code|url}}, {{Code|tytuł}} i {{Code|praca}}, ponieważ w szablonie: {{s|PrzypisStrona}}, zostały one użyte do innych celów, definiując je w oparciu o parametry, które są wskazane we wnętrzu (definicji): {{s|PrzypisStrona}}, więc ich użycie spowoduje problem: {{Code|{{m|Sprawdź|Parametry}}}}. == Jak tworzyć szablony szczególne szablonu {{s|PrzypisStrona}}, w oparciu o ten szablon == Oto jest przykład szablonu: {{ŹródłoKodu|{{LuaSubst|Szablon:Pszcz Pasieka24}}}} == Opis parametrów == Szablon posiada te same zmienne, co szablon {{s|Cytuj}} (przeczytaj jego dokumentację: {{s|Cytuj/opis}}), oprócz parametrów: {{Code|url}}, {{Code|tytuł}} i {{Code|praca}}, bo one zostały zdefiniowane w oparciu o dodatkowe parametry, jak {{Code|adres}}, {{Code|1}} (lub {{Code|podstrona}}), {{Code|2|}} (lub {{Code|nazwa}}). Innym parametrem jest: {{Code|serwis}}. === Opis parametrów dodatkowych === * {{Code|adres}} - parametr, którym jest adres strony, jak: '''https://www.pasieka24.pl/index.php/pl-pl/''' (ten parametr jest problematycczny, bo jest wbudowany w szablon przypisów, jedynie dla szablonu: {{s|PrzypisStrona}}, już tak nie jest), * {{Code|1}} (lub {{Code|podstrona}}) - adres podstrony serwisu (konieczny), * {{Code|2|}} (lub {{Code|nazwa}}) - nazwa linku utworzona z dwóch poprzednich parametrów (konieczny), * {{Code|serwis}} - nazwa strony serwisu inna niż zmienna {{Code|adres}}, jak: '''https://www.pasieka24.pl''' (opcjonalny, dobrowolny). ---- Zmienna {{Code|adres}} lub ewentualnie {{Code|serwis}}, gdy ten parametr jest podany i jest on niepusty, za pomocą, których jest generowany parametr {{Parametr|praca}} w module {{m|Cytuj}}, i dlatego, które te zmienne nie wolno podawać, bo zostanie wywołany błąd funkcji: {{Code|{{m|Sprawdź|Parametry}}}}. === Parametry nieobsługiwane === Oto są parametry wywołujące błąd, czyli: {{Code|url}}, {{Code|tytuł}} i {{Code|praca}}, bo one zostały zdefiniowane poprzez inne zmienne. Patrz dlaczego, zajrzyj do kodu szablonu {{s|PrzypisStrona}}, a później do: {{s|Cytuj}}. == Przykład == {{#ifeq:{{Szablon nie opis}}|PrzypisStrona| ; Kod {{s|RN|{{s|PrzypisStrona|adres{{=}}https://panacea.pl|podstrona{{=}}96-pasieka-6-2013/396-apiguard-ratunek-w-tymolu|autor{{=}}Piotr Nowotnik|nazwa{{=}}Apiguard – ratunek w tymolu?|numer{{=}}6/2013}}}} ; Wynik {{RN|{{PrzypisStrona|adres=https://panacea.pl|podstrona=96-pasieka-6-2013/396-apiguard-ratunek-w-tymolu|autor=Piotr Nowotnik|nazwa=Apiguard – ratunek w tymolu?|numer= 6/2013}}}} {{OpakujKategorieZeSortowaniem|{{Przypisy}}}} | ; Kod {{s|RN|{{s|{{Szablon nie opis}}|podstrona{{=}}96-pasieka-6-2013/396-apiguard-ratunek-w-tymolu|autor{{=}}Piotr Nowotnik|nazwa{{=}}Apiguard – ratunek w tymolu?|numer{{=}}6/2013}}}} ; Wynik {{RN|{{{{Szablon nie opis}}|podstrona=96-pasieka-6-2013/396-apiguard-ratunek-w-tymolu|autor=Piotr Nowotnik|nazwa=Apiguard – ratunek w tymolu?|numer= 6/2013}}}} {{OpakujKategorieZeSortowaniem|{{Przypisy}}}} }} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == ; Szablony szablonów przypisów * {{s|PrzypisStrona}} - kombajn, z którego mogą być zbudowane inne szablony cytowania w oparciu o szablon: {{Code|{{s|Cytuj}}}}, i w niej wywołany moduł: {{Code|{{ld2|Cytuj}}}}, a w niej funkcję: {{Code|{{m|Cytuj|custom2}}}}, zbudowaną w oparciu, w języku {{lpg|Lua}} w {{lpr|Lua|Sccribunto}}, o: {{Code|{{m|Cytuj|custom}}}}. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony podręczników}} {{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona |{{Wolumin|Napary}}{{Wolumin|Pszczelarstwo}} |{{Wolumin|<!-- -->{{#switch:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^(%a+)%s}} | Pszcz = Pszczelarstwo | Ziel = Napary }}<!-- -->| dokumentacja = tak | sortuj spacją = }}}} </includeonly> 14hrtjcmb6csgmmg2d02nepksg0rtem 558117 558115 2026-09-30T17:02:45Z Persino 2851 558117 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Cytuj}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> ; Dwa pierwsze parametry numerowane {{Pre|{{s|{{ROOTPAGENAME}}|{{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona|adres{{=}}{{!}}}}{{!(}}1{{)!}}|{{!(}}2{{)!}}|serwis{{=}}|...}}}} ; A tutaj nazwane {{Pre|{{s|{{ROOTPAGENAME}}|{{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona|adres{{=}}{{!}}}}podstrona{{=}}|nazwa{{=}}|serwis{{=}}|...}}}} {{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona|Szablony można definiować w oparciu o ten szablon, wsadzając do ich definicji w sekcji: {{Tag|includeonly}}, następujący kod:|{{DivLinia}}}} {{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona||Szablon: {{Tt|{{s|{{ROOTPAGENAME}}}}}}, wywołuje funkcję ramkową:&#32;}}{{Code|{{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona|{{m|Ramka|Szablon|Nazwa{{=}}{{ls|PrzypisStrona}}|adres{{=}}<podaj url strony>|dalsze parametry...}}|{{Wikikod|{{ROOTPAGENAME}}}}}}}}{{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona||.}} Szablon: {{Tt|{{s|PrzypisStrona}}}}, wywołuje: {{Code|{{m|Cytuj}}}}, poprzez wywołanie: {{Code|{{s|Cytuj}}}}, a w nim jest uruchamiana ramka: {{Code|{{m|Cytuj|custom2}}}}, poprzez funkcję: {{Code|{{m|Cytuj|custom}}}}, aby ściągnąć parametry rodzica szablonu: {{Code|{{s|Cytuj}}}}. Dalsze parametry szablonu: {{Tt|{{s|{{ROOTPAGENAME}}}}}}, nie licząc powyższych, są takie same jak w szablonie {{s|Cytuj}}, bez parametrów: {{Code|url}}, {{Code|tytuł}} i {{Code|praca}}, ponieważ w szablonie: {{s|PrzypisStrona}}, zostały one użyte do innych celów, definiując je w oparciu o parametry, które są wskazane we wnętrzu (definicji): {{s|PrzypisStrona}}, więc ich użycie spowoduje problem: {{Code|{{m|Sprawdź|Parametry}}}}. == Jak tworzyć szablony szczególne szablonu {{s|PrzypisStrona}}, w oparciu o ten szablon == Oto jest przykład szablonu: {{ŹródłoKodu|{{LuaSubst|Szablon:Pszcz Pasieka24}}}} == Opis parametrów == Szablon posiada te same zmienne, co szablon {{s|Cytuj}} (przeczytaj jego dokumentację: {{s|Cytuj/opis}}), oprócz parametrów: {{Code|url}}, {{Code|tytuł}} i {{Code|praca}}, bo one zostały zdefiniowane w oparciu o dodatkowe parametry, jak {{Code|adres}}, {{Code|1}} (lub {{Code|podstrona}}), {{Code|2|}} (lub {{Code|nazwa}}). Innym parametrem jest: {{Code|serwis}}. === Opis parametrów dodatkowych === * {{Code|adres}} - parametr, którym jest adres strony, jak: '''https://www.pasieka24.pl/index.php/pl-pl/''' (ten parametr jest problematycczny, bo jest wbudowany w szablon przypisów, jedynie dla szablonu: {{s|PrzypisStrona}}, już tak nie jest), * {{Code|1}} (lub {{Code|podstrona}}) - adres podstrony serwisu (konieczny), * {{Code|2|}} (lub {{Code|nazwa}}) - nazwa linku utworzona z dwóch poprzednich parametrów (konieczny), * {{Code|serwis}} - nazwa strony serwisu inna niż zmienna {{Code|adres}}, jak: '''https://www.pasieka24.pl''' (opcjonalny, dobrowolny). ---- Zmienna {{Code|adres}} lub ewentualnie {{Code|serwis}}, gdy ten parametr jest podany i jest on niepusty, za pomocą, których jest generowany parametr {{Parametr|praca}} w module {{m|Cytuj}}, i dlatego, które te zmienne nie wolno podawać, bo zostanie wywołany błąd funkcji: {{Code|{{m|Sprawdź|Parametry}}}}. === Parametry trybu === === Parametry nieobsługiwane === Oto są parametry wywołujące błąd, czyli: {{Code|url}}, {{Code|tytuł}} i {{Code|praca}}, bo one zostały zdefiniowane poprzez inne zmienne. Patrz dlaczego, zajrzyj do kodu szablonu {{s|PrzypisStrona}}, a później do: {{s|Cytuj}}. == Przykład == {{#ifeq:{{Szablon nie opis}}|PrzypisStrona| ; Kod {{s|RN|{{s|PrzypisStrona|adres{{=}}https://panacea.pl|podstrona{{=}}96-pasieka-6-2013/396-apiguard-ratunek-w-tymolu|autor{{=}}Piotr Nowotnik|nazwa{{=}}Apiguard – ratunek w tymolu?|numer{{=}}6/2013}}}} ; Wynik {{RN|{{PrzypisStrona|adres=https://panacea.pl|podstrona=96-pasieka-6-2013/396-apiguard-ratunek-w-tymolu|autor=Piotr Nowotnik|nazwa=Apiguard – ratunek w tymolu?|numer= 6/2013}}}} {{OpakujKategorieZeSortowaniem|{{Przypisy}}}} | ; Kod {{s|RN|{{s|{{Szablon nie opis}}|podstrona{{=}}96-pasieka-6-2013/396-apiguard-ratunek-w-tymolu|autor{{=}}Piotr Nowotnik|nazwa{{=}}Apiguard – ratunek w tymolu?|numer{{=}}6/2013}}}} ; Wynik {{RN|{{{{Szablon nie opis}}|podstrona=96-pasieka-6-2013/396-apiguard-ratunek-w-tymolu|autor=Piotr Nowotnik|nazwa=Apiguard – ratunek w tymolu?|numer= 6/2013}}}} {{OpakujKategorieZeSortowaniem|{{Przypisy}}}} }} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == ; Szablony szablonów przypisów * {{s|PrzypisStrona}} - kombajn, z którego mogą być zbudowane inne szablony cytowania w oparciu o szablon: {{Code|{{s|Cytuj}}}}, i w niej wywołany moduł: {{Code|{{ld2|Cytuj}}}}, a w niej funkcję: {{Code|{{m|Cytuj|custom2}}}}, zbudowaną w oparciu, w języku {{lpg|Lua}} w {{lpr|Lua|Sccribunto}}, o: {{Code|{{m|Cytuj|custom}}}}. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony podręczników}} {{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona |{{Wolumin|Napary}}{{Wolumin|Pszczelarstwo}} |{{Wolumin|<!-- -->{{#switch:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^(%a+)%s}} | Pszcz = Pszczelarstwo | Ziel = Napary }}<!-- -->| dokumentacja = tak | sortuj spacją = }}}} </includeonly> 2fm79yzy1eqjj6lwl3dn8aybf718zow 558118 558117 2026-09-30T17:05:50Z Persino 2851 /* Parametry trybu */ 558118 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Cytuj}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> ; Dwa pierwsze parametry numerowane {{Pre|{{s|{{ROOTPAGENAME}}|{{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona|adres{{=}}{{!}}}}{{!(}}1{{)!}}|{{!(}}2{{)!}}|serwis{{=}}|...}}}} ; A tutaj nazwane {{Pre|{{s|{{ROOTPAGENAME}}|{{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona|adres{{=}}{{!}}}}podstrona{{=}}|nazwa{{=}}|serwis{{=}}|...}}}} {{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona|Szablony można definiować w oparciu o ten szablon, wsadzając do ich definicji w sekcji: {{Tag|includeonly}}, następujący kod:|{{DivLinia}}}} {{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona||Szablon: {{Tt|{{s|{{ROOTPAGENAME}}}}}}, wywołuje funkcję ramkową:&#32;}}{{Code|{{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona|{{m|Ramka|Szablon|Nazwa{{=}}{{ls|PrzypisStrona}}|adres{{=}}<podaj url strony>|dalsze parametry...}}|{{Wikikod|{{ROOTPAGENAME}}}}}}}}{{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona||.}} Szablon: {{Tt|{{s|PrzypisStrona}}}}, wywołuje: {{Code|{{m|Cytuj}}}}, poprzez wywołanie: {{Code|{{s|Cytuj}}}}, a w nim jest uruchamiana ramka: {{Code|{{m|Cytuj|custom2}}}}, poprzez funkcję: {{Code|{{m|Cytuj|custom}}}}, aby ściągnąć parametry rodzica szablonu: {{Code|{{s|Cytuj}}}}. Dalsze parametry szablonu: {{Tt|{{s|{{ROOTPAGENAME}}}}}}, nie licząc powyższych, są takie same jak w szablonie {{s|Cytuj}}, bez parametrów: {{Code|url}}, {{Code|tytuł}} i {{Code|praca}}, ponieważ w szablonie: {{s|PrzypisStrona}}, zostały one użyte do innych celów, definiując je w oparciu o parametry, które są wskazane we wnętrzu (definicji): {{s|PrzypisStrona}}, więc ich użycie spowoduje problem: {{Code|{{m|Sprawdź|Parametry}}}}. == Jak tworzyć szablony szczególne szablonu {{s|PrzypisStrona}}, w oparciu o ten szablon == Oto jest przykład szablonu: {{ŹródłoKodu|{{LuaSubst|Szablon:Pszcz Pasieka24}}}} == Opis parametrów == Szablon posiada te same zmienne, co szablon {{s|Cytuj}} (przeczytaj jego dokumentację: {{s|Cytuj/opis}}), oprócz parametrów: {{Code|url}}, {{Code|tytuł}} i {{Code|praca}}, bo one zostały zdefiniowane w oparciu o dodatkowe parametry, jak {{Code|adres}}, {{Code|1}} (lub {{Code|podstrona}}), {{Code|2|}} (lub {{Code|nazwa}}). Innym parametrem jest: {{Code|serwis}}. === Opis parametrów dodatkowych === * {{Code|adres}} - parametr, którym jest adres strony, jak: '''https://www.pasieka24.pl/index.php/pl-pl/''' (ten parametr jest problematycczny, bo jest wbudowany w szablon przypisów, jedynie dla szablonu: {{s|PrzypisStrona}}, już tak nie jest), * {{Code|1}} (lub {{Code|podstrona}}) - adres podstrony serwisu (konieczny), * {{Code|2|}} (lub {{Code|nazwa}}) - nazwa linku utworzona z dwóch poprzednich parametrów (konieczny), * {{Code|serwis}} - nazwa strony serwisu inna niż zmienna {{Code|adres}}, jak: '''https://www.pasieka24.pl''' (opcjonalny, dobrowolny). ---- Zmienna {{Code|adres}} lub ewentualnie {{Code|serwis}}, gdy ten parametr jest podany i jest on niepusty, za pomocą, których jest generowany parametr {{Parametr|praca}} w module {{m|Cytuj}}, i dlatego, które te zmienne nie wolno podawać, bo zostanie wywołany błąd funkcji: {{Code|{{m|Sprawdź|Parametry}}}}. === Parametry trybu === * {{Code|tryb}} - możliwe wartości, tylko niepuste, tzn.: {{Code|auto}}, {{Code|książkę}}, {{Code|pismo}}, {{Code|stronę}} i {{Code|patent}}. === Parametry nieobsługiwane === Oto są parametry wywołujące błąd, czyli: {{Code|url}}, {{Code|tytuł}} i {{Code|praca}}, bo one zostały zdefiniowane poprzez inne zmienne. Patrz dlaczego, zajrzyj do kodu szablonu {{s|PrzypisStrona}}, a później do: {{s|Cytuj}}. == Przykład == {{#ifeq:{{Szablon nie opis}}|PrzypisStrona| ; Kod {{s|RN|{{s|PrzypisStrona|adres{{=}}https://panacea.pl|podstrona{{=}}96-pasieka-6-2013/396-apiguard-ratunek-w-tymolu|autor{{=}}Piotr Nowotnik|nazwa{{=}}Apiguard – ratunek w tymolu?|numer{{=}}6/2013}}}} ; Wynik {{RN|{{PrzypisStrona|adres=https://panacea.pl|podstrona=96-pasieka-6-2013/396-apiguard-ratunek-w-tymolu|autor=Piotr Nowotnik|nazwa=Apiguard – ratunek w tymolu?|numer= 6/2013}}}} {{OpakujKategorieZeSortowaniem|{{Przypisy}}}} | ; Kod {{s|RN|{{s|{{Szablon nie opis}}|podstrona{{=}}96-pasieka-6-2013/396-apiguard-ratunek-w-tymolu|autor{{=}}Piotr Nowotnik|nazwa{{=}}Apiguard – ratunek w tymolu?|numer{{=}}6/2013}}}} ; Wynik {{RN|{{{{Szablon nie opis}}|podstrona=96-pasieka-6-2013/396-apiguard-ratunek-w-tymolu|autor=Piotr Nowotnik|nazwa=Apiguard – ratunek w tymolu?|numer= 6/2013}}}} {{OpakujKategorieZeSortowaniem|{{Przypisy}}}} }} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == ; Szablony szablonów przypisów * {{s|PrzypisStrona}} - kombajn, z którego mogą być zbudowane inne szablony cytowania w oparciu o szablon: {{Code|{{s|Cytuj}}}}, i w niej wywołany moduł: {{Code|{{ld2|Cytuj}}}}, a w niej funkcję: {{Code|{{m|Cytuj|custom2}}}}, zbudowaną w oparciu, w języku {{lpg|Lua}} w {{lpr|Lua|Sccribunto}}, o: {{Code|{{m|Cytuj|custom}}}}. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony podręczników}} {{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona |{{Wolumin|Napary}}{{Wolumin|Pszczelarstwo}} |{{Wolumin|<!-- -->{{#switch:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^(%a+)%s}} | Pszcz = Pszczelarstwo | Ziel = Napary }}<!-- -->| dokumentacja = tak | sortuj spacją = }}}} </includeonly> lr9tip5zdohejz0qw2kfnbsmkw8xq6e 558132 558118 2026-10-01T05:35:03Z Persino 2851 558132 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Cytuj}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> ; Dwa pierwsze parametry numerowane {{Pre|{{s|{{ROOTPAGENAME}}|{{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona|adres{{=}}{{!}}}}{{!(}}1{{)!}}|{{!(}}2{{)!}}|serwis{{=}}|...}}}} ; A tutaj nazwane {{Pre|{{s|{{ROOTPAGENAME}}|{{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona|adres{{=}}{{!}}}}podstrona{{=}}|nazwa{{=}}|serwis{{=}}|...}}}} {{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona|Szablony można definiować w oparciu o ten szablon, wsadzając do ich definicji w sekcji: {{Tag|includeonly}}, następujący kod:|{{DivLinia}}}} {{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona||Szablon: {{Tt|{{s|{{ROOTPAGENAME}}}}}}, wywołuje funkcję ramkową:&#32;}}{{Code|{{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona|{{m|Ramka|Szablon|Nazwa{{=}}{{ls|PrzypisStrona}}|adres{{=}}<podaj url strony>|dalsze parametry...}}|{{Wikikod|{{ROOTPAGENAME}}}}}}}}{{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona||.}} Szablon: {{Tt|{{s|PrzypisStrona}}}}, wywołuje: {{Code|{{m|Cytuj}}}}, poprzez wywołanie: {{Code|{{s|Cytuj}}}}, a w nim jest uruchamiana ramka: {{Code|{{m|Cytuj|custom2}}}}, wywołująca funkcję: {{Code|{{m|Cytuj|custom}}}}, z dwoma parametrami, aby ściągnąć parametry rodzica szablonu: {{Code|{{s|Cytuj}}}}. Dalsze parametry szablonu: {{Tt|{{s|{{ROOTPAGENAME}}}}}}, nie licząc powyższych, są takie same jak w szablonie {{s|Cytuj}}, bez parametrów: {{Code|url}}, {{Code|tytuł}} i {{Code|praca}}, ponieważ w szablonie: {{s|PrzypisStrona}}, zostały one użyte do innych celów, definiując je w oparciu o parametry, które są wskazane we wnętrzu (definicji): {{s|PrzypisStrona}}, więc ich użycie spowoduje problem: {{Code|{{m|Sprawdź|Parametry}}}}. == Jak tworzyć szablony szczególne szablonu {{s|PrzypisStrona}}, w oparciu o ten szablon == Oto jest przykład szablonu: {{ŹródłoKodu|{{LuaSubst|Szablon:Pszcz Pasieka24}}}} == Opis parametrów == Szablon posiada te same zmienne, co szablon {{s|Cytuj}} (przeczytaj jego dokumentację: {{s|Cytuj/opis}}), oprócz parametrów: {{Code|url}}, {{Code|tytuł}} i {{Code|praca}}, bo one zostały zdefiniowane w oparciu o dodatkowe parametry, jak {{Code|adres}}, {{Code|1}} (lub {{Code|podstrona}}), {{Code|2|}} (lub {{Code|nazwa}}). Innym parametrem jest: {{Code|serwis}}. === Opis parametrów dodatkowych === * {{Code|adres}} - parametr, którym jest adres strony, jak: '''https://www.pasieka24.pl/index.php/pl-pl/''' (ten parametr jest problematycczny, bo jest wbudowany w szablon przypisów, jedynie dla szablonu: {{s|PrzypisStrona}}, już tak nie jest), * {{Code|1}} (lub {{Code|podstrona}}) - adres podstrony serwisu (konieczny), * {{Code|2|}} (lub {{Code|nazwa}}) - nazwa linku utworzona z dwóch poprzednich parametrów (konieczny), * {{Code|serwis}} - nazwa strony serwisu inna niż zmienna {{Code|adres}}, jak: '''https://www.pasieka24.pl''' (opcjonalny, dobrowolny). ---- Zmienna {{Code|adres}} lub ewentualnie {{Code|serwis}}, gdy ten parametr jest podany i jest on niepusty, za pomocą, których jest generowany parametr {{Parametr|praca}} w module {{m|Cytuj}}, i dlatego, które te zmienne nie wolno podawać, bo zostanie wywołany błąd funkcji: {{Code|{{m|Sprawdź|Parametry}}}}. === Parametry trybu === * {{Code|tryb}} - możliwe wartości, tylko niepuste, tzn.: {{Code|auto}}, {{Code|książkę}}, {{Code|pismo}}, {{Code|stronę}} i {{Code|patent}}. === Parametry nieobsługiwane === Oto są parametry wywołujące błąd, czyli: {{Code|url}}, {{Code|tytuł}} i {{Code|praca}}, bo one zostały zdefiniowane poprzez inne zmienne. Patrz dlaczego, zajrzyj do kodu szablonu {{s|PrzypisStrona}}, a później do: {{s|Cytuj}}. == Przykład == {{#ifeq:{{Szablon nie opis}}|PrzypisStrona| ; Kod {{s|RN|{{s|PrzypisStrona|adres{{=}}https://panacea.pl|podstrona{{=}}96-pasieka-6-2013/396-apiguard-ratunek-w-tymolu|autor{{=}}Piotr Nowotnik|nazwa{{=}}Apiguard – ratunek w tymolu?|numer{{=}}6/2013}}}} ; Wynik {{RN|{{PrzypisStrona|adres=https://panacea.pl|podstrona=96-pasieka-6-2013/396-apiguard-ratunek-w-tymolu|autor=Piotr Nowotnik|nazwa=Apiguard – ratunek w tymolu?|numer= 6/2013}}}} {{OpakujKategorieZeSortowaniem|{{Przypisy}}}} | ; Kod {{s|RN|{{s|{{Szablon nie opis}}|podstrona{{=}}96-pasieka-6-2013/396-apiguard-ratunek-w-tymolu|autor{{=}}Piotr Nowotnik|nazwa{{=}}Apiguard – ratunek w tymolu?|numer{{=}}6/2013}}}} ; Wynik {{RN|{{{{Szablon nie opis}}|podstrona=96-pasieka-6-2013/396-apiguard-ratunek-w-tymolu|autor=Piotr Nowotnik|nazwa=Apiguard – ratunek w tymolu?|numer= 6/2013}}}} {{OpakujKategorieZeSortowaniem|{{Przypisy}}}} }} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == ; Szablony szablonów przypisów * {{s|PrzypisStrona}} - kombajn, z którego mogą być zbudowane inne szablony cytowania w oparciu o szablon: {{Code|{{s|Cytuj}}}}, i w niej wywołany moduł: {{Code|{{ld2|Cytuj}}}}, a w niej funkcję: {{Code|{{m|Cytuj|custom2}}}}, zbudowaną w oparciu, w języku {{lpg|Lua}} w {{lpr|Lua|Sccribunto}}, o: {{Code|{{m|Cytuj|custom}}}}. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony podręczników}} {{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona |{{Wolumin|Napary}}{{Wolumin|Pszczelarstwo}} |{{Wolumin|<!-- -->{{#switch:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^(%a+)%s}} | Pszcz = Pszczelarstwo | Ziel = Napary }}<!-- -->| dokumentacja = tak | sortuj spacją = }}}} </includeonly> 8qem09lqqlkdaoatpjasprgrg7xmwu5 558133 558132 2026-10-01T05:36:33Z Persino 2851 558133 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Cytuj}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> ; Dwa pierwsze parametry numerowane {{Pre|{{s|{{ROOTPAGENAME}}|{{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona|adres{{=}}{{!}}}}{{!(}}1{{)!}}|{{!(}}2{{)!}}|serwis{{=}}|...}}}} ; A tutaj nazwane {{Pre|{{s|{{ROOTPAGENAME}}|{{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona|adres{{=}}{{!}}}}podstrona{{=}}|nazwa{{=}}|serwis{{=}}|...}}}} {{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona|Szablony można definiować w oparciu o ten szablon, wsadzając do ich definicji w sekcji: {{Tag|includeonly}}, następujący kod:|{{DivLinia}}}} {{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona||Szablon: {{Tt|{{s|{{ROOTPAGENAME}}}}}}, wywołuje funkcję ramkową:&#32;}}{{Code|{{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona|{{m|Ramka|Szablon|Nazwa{{=}}{{ls|PrzypisStrona}}|adres{{=}}<podaj url strony>|dalsze parametry...}}|{{Wikikod|{{ROOTPAGENAME}}}}}}}}{{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona||.}} Szablon: {{Tt|{{s|PrzypisStrona}}}}, wywołuje: {{Code|{{m|Cytuj}}}}, poprzez wywołanie: {{Code|{{s|Cytuj}}}}, a w nim jest uruchamiana ramka: {{Code|{{m|Cytuj|custom2}}}}, wywołująca funkcję: {{Code|{{m|Cytuj|custom}}}}, z dwoma parametrami, aby ściągnąć parametry tego szablonu (rodzica). Dalsze parametry szablonu: {{Tt|{{s|{{ROOTPAGENAME}}}}}}, nie licząc powyższych, są takie same jak w szablonie {{s|Cytuj}}, bez parametrów: {{Code|url}}, {{Code|tytuł}} i {{Code|praca}}, ponieważ w szablonie: {{s|PrzypisStrona}}, zostały one użyte do innych celów, definiując je w oparciu o parametry, które są wskazane we wnętrzu (definicji): {{s|PrzypisStrona}}, więc ich użycie spowoduje problem: {{Code|{{m|Sprawdź|Parametry}}}}. == Jak tworzyć szablony szczególne szablonu {{s|PrzypisStrona}}, w oparciu o ten szablon == Oto jest przykład szablonu: {{ŹródłoKodu|{{LuaSubst|Szablon:Pszcz Pasieka24}}}} == Opis parametrów == Szablon posiada te same zmienne, co szablon {{s|Cytuj}} (przeczytaj jego dokumentację: {{s|Cytuj/opis}}), oprócz parametrów: {{Code|url}}, {{Code|tytuł}} i {{Code|praca}}, bo one zostały zdefiniowane w oparciu o dodatkowe parametry, jak {{Code|adres}}, {{Code|1}} (lub {{Code|podstrona}}), {{Code|2|}} (lub {{Code|nazwa}}). Innym parametrem jest: {{Code|serwis}}. === Opis parametrów dodatkowych === * {{Code|adres}} - parametr, którym jest adres strony, jak: '''https://www.pasieka24.pl/index.php/pl-pl/''' (ten parametr jest problematycczny, bo jest wbudowany w szablon przypisów, jedynie dla szablonu: {{s|PrzypisStrona}}, już tak nie jest), * {{Code|1}} (lub {{Code|podstrona}}) - adres podstrony serwisu (konieczny), * {{Code|2|}} (lub {{Code|nazwa}}) - nazwa linku utworzona z dwóch poprzednich parametrów (konieczny), * {{Code|serwis}} - nazwa strony serwisu inna niż zmienna {{Code|adres}}, jak: '''https://www.pasieka24.pl''' (opcjonalny, dobrowolny). ---- Zmienna {{Code|adres}} lub ewentualnie {{Code|serwis}}, gdy ten parametr jest podany i jest on niepusty, za pomocą, których jest generowany parametr {{Parametr|praca}} w module {{m|Cytuj}}, i dlatego, które te zmienne nie wolno podawać, bo zostanie wywołany błąd funkcji: {{Code|{{m|Sprawdź|Parametry}}}}. === Parametry trybu === * {{Code|tryb}} - możliwe wartości, tylko niepuste, tzn.: {{Code|auto}}, {{Code|książkę}}, {{Code|pismo}}, {{Code|stronę}} i {{Code|patent}}. === Parametry nieobsługiwane === Oto są parametry wywołujące błąd, czyli: {{Code|url}}, {{Code|tytuł}} i {{Code|praca}}, bo one zostały zdefiniowane poprzez inne zmienne. Patrz dlaczego, zajrzyj do kodu szablonu {{s|PrzypisStrona}}, a później do: {{s|Cytuj}}. == Przykład == {{#ifeq:{{Szablon nie opis}}|PrzypisStrona| ; Kod {{s|RN|{{s|PrzypisStrona|adres{{=}}https://panacea.pl|podstrona{{=}}96-pasieka-6-2013/396-apiguard-ratunek-w-tymolu|autor{{=}}Piotr Nowotnik|nazwa{{=}}Apiguard – ratunek w tymolu?|numer{{=}}6/2013}}}} ; Wynik {{RN|{{PrzypisStrona|adres=https://panacea.pl|podstrona=96-pasieka-6-2013/396-apiguard-ratunek-w-tymolu|autor=Piotr Nowotnik|nazwa=Apiguard – ratunek w tymolu?|numer= 6/2013}}}} {{OpakujKategorieZeSortowaniem|{{Przypisy}}}} | ; Kod {{s|RN|{{s|{{Szablon nie opis}}|podstrona{{=}}96-pasieka-6-2013/396-apiguard-ratunek-w-tymolu|autor{{=}}Piotr Nowotnik|nazwa{{=}}Apiguard – ratunek w tymolu?|numer{{=}}6/2013}}}} ; Wynik {{RN|{{{{Szablon nie opis}}|podstrona=96-pasieka-6-2013/396-apiguard-ratunek-w-tymolu|autor=Piotr Nowotnik|nazwa=Apiguard – ratunek w tymolu?|numer= 6/2013}}}} {{OpakujKategorieZeSortowaniem|{{Przypisy}}}} }} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == ; Szablony szablonów przypisów * {{s|PrzypisStrona}} - kombajn, z którego mogą być zbudowane inne szablony cytowania w oparciu o szablon: {{Code|{{s|Cytuj}}}}, i w niej wywołany moduł: {{Code|{{ld2|Cytuj}}}}, a w niej funkcję: {{Code|{{m|Cytuj|custom2}}}}, zbudowaną w oparciu, w języku {{lpg|Lua}} w {{lpr|Lua|Sccribunto}}, o: {{Code|{{m|Cytuj|custom}}}}. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony podręczników}} {{#ifeq:{{ROOTPAGENAME}}|PrzypisStrona |{{Wolumin|Napary}}{{Wolumin|Pszczelarstwo}} |{{Wolumin|<!-- -->{{#switch:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^(%a+)%s}} | Pszcz = Pszczelarstwo | Ziel = Napary }}<!-- -->| dokumentacja = tak | sortuj spacją = }}}} </includeonly> kdl92frzgbjv2gdowkfbt88ysljzktx Moduł:Szeregi 828 63011 558123 542720 2026-09-30T18:10:52Z Persino 2851 558123 Scribunto text/plain local p={}; p.WyszukiwanieNaPodstawieWzorca=function(szereg,wzor,numer,funkcja_sprawdzanie_wyszukania,funkcja_wzor,licznik_wzor) local stronicowyparser_analizaspisurzeczy_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy"); local numer_a,numer_b,a,b,c,d,e,f,g,h,i=stronicowyparser_analizaspisurzeczy_modul.SzukanieNaPodstawieWzoru(szereg,wzor,numer,#szereg,false); if((not numer_a)or(not numer_b))then return nil;end; local tak;local ile; if(funkcja_wzor)then tak,ile=funkcja_sprawdzanie_wyszukania(szereg,numer,licznik_wzor,numer_a,numer_b,a,b,c,d,e,f,g,h,i); else tak,ile=funkcja_sprawdzanie_wyszukania(szereg,numer,numer_a,numer_b,a,b,c,d,e,f,g,h,i); end; if(tak)then numer=numer_a+(ile or 1); return p.WyszukiwanieNaPodstawieWzorca(szereg,wzor,numer,funkcja_sprawdzanie_wyszukania,funkcja_wzor,licznik_wzor); end; return numer_a,numer_b,a,b,c,d,e,f,g,h,i; end; p.ZamianaZnakowaSzeregu=function(szereg,wzor,funkcja_sprawdzanie_wyszukania,funkcja_zamiana,funkcja_wzor,funkcja_licznik) local wynik={}; local numer_begin=0; local czy=true; local __wzor; local ile_wyszukan=0; local licznik_wzor=nil; while(true)do numer_begin=numer_begin+1; if((funkcja_wzor)and(czy))then licznik_wzor=licznik_wzor or 1; __wzor,czy=funkcja_wzor(wzor,licznik_wzor,czy); __wzor=__wzor or wzor; elseif(czy)then __wzor=wzor; czy=false; end; local numer_a,numer_b,a,b,c,d,e,f,g,h,i=p.WyszukiwanieNaPodstawieWzorca(szereg,__wzor,numer_begin,funkcja_sprawdzanie_wyszukania,funkcja_wzor,licznik_wzor); if((numer_a)and(numer_b)and(numer_a<=numer_b)and(numer_a>=numer_begin))then if(numer_a>1)then table.insert(wynik,mw.ustring.sub(szereg,numer_begin,numer_a-1)); end; local ciag; if(funkcja_wzor)then ciag=funkcja_zamiana(licznik_wzor,a,b,c,d,e,f,g,h,i); else ciag=funkcja_zamiana(a,b,c,d,e,f,g,h,i);end; if(ciag)then table.insert(wynik,ciag); else table.insert(wynik,mw.ustring.sub(szereg,numer_a,numer_b)); end; numer_begin=numer_b; ile_wyszukan=ile_wyszukan+1; else if(funkcja_wzor)then if(not czy)then break; else numer_begin=numer_begin-1; if(funkcja_licznik)then licznik_wzor=funkcja_licznik(wzor,licznik_wzor,numer_begin); else licznik_wzor=licznik_wzor+1; end; end; else break; end; end; end; local dlugosc=mw.ustring.len(szereg); if(dlugosc>=numer_begin)then table.insert(wynik,mw.ustring.sub(szereg,numer_begin,dlugosc)); end; return table.concat(wynik,""),ile_wyszukan; end; function p.IteratorLiniiTekstu(tekst) local poczatek=true; local zakonczone=false; local iterator=nil; ---- return function() if(not zakonczone)then if(poczatek)then local str=mw.ustring.match(tekst,"^([^\n]*)"); poczatek=false; return str; else iterator=iterator or mw.ustring.gmatch(tekst,"\n([^\n]*)"); local wartosc=iterator(); if(not wartosc)then zakonczone=true;end; return wartosc; end; else return nil; end; end; end; function p.ZamianaZnakowaLinii(szereg,funkcja) local tab_tekst={}; local iter_main=p.IteratorLiniiTekstu(szereg); for linia in iter_main do linia=funkcja(linia) or linia; table.insert(tab_tekst,linia); end; return table.concat(tab_tekst,"\n"); end; function p.SzeregiOmijanieFunkcyjne(tekst,normalnie,wzor,funkcja,funkcja2) if(not normalnie)then tekst=funkcja and funkcja(tekst) or tekst; return tekst; end; local ile1;local pozycja1;local pozycja2=0; local tab_str={}; local pozycja_temp; wzor="(.-)"..wzor; while(true)do local ciag;local kod_1;local kod_2;local kod_3;local kod_4;local kod_5;local kod_6;local kod_7;local kod_8; pozycja1,pozycja2,ciag,kod_1,kod_2,kod_3,kod_4,kod_5,kod_6,kod_7,kod_8=mw.ustring.find(tekst,wzor,pozycja2+1); if((pozycja1)and(pozycja2)and(pozycja1<pozycja2))then pozycja_temp=pozycja2; ciag=funkcja and funkcja(ciag) or ciag; ciag=ciag..(funkcja2 and funkcja2(kod_1,kod_2,kod_3,kod_4,kod_5,kod_6,kod_7,kod_8) or kod_1 or ""); table.insert(tab_str,ciag); else break; end; end; pozycja_temp=pozycja_temp or 0; local pozycja1,pozycja2,ciag=mw.ustring.find(tekst,"(.-)$",pozycja_temp+1); if((pozycja1)and(pozycja2)and(pozycja1<=pozycja2))then ciag=funkcja and funkcja(ciag) or ciag; table.insert(tab_str,ciag); end; local str=table.concat(tab_str,""); return str; end; return p; 9ka0i9yldy3zzm31t97n5ybfw4eu1hj 558124 558123 2026-09-30T18:26:45Z Persino 2851 558124 Scribunto text/plain local p={}; p.WyszukiwanieNaPodstawieWzorca=function(szereg,wzor,numer,funkcja_sprawdzanie_wyszukania,funkcja_wzor,licznik_wzor) local stronicowyparser_analizaspisurzeczy_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy"); local numer_a,numer_b,a,b,c,d,e,f,g,h,i=stronicowyparser_analizaspisurzeczy_modul.SzukanieNaPodstawieWzoru(szereg,wzor,numer,#szereg,false); if((not numer_a)or(not numer_b))then return nil;end; local tak;local ile; if(funkcja_wzor)then tak,ile=funkcja_sprawdzanie_wyszukania(szereg,numer,licznik_wzor,numer_a,numer_b,a,b,c,d,e,f,g,h,i); else tak,ile=funkcja_sprawdzanie_wyszukania(szereg,numer,numer_a,numer_b,a,b,c,d,e,f,g,h,i); end; if(tak)then numer=numer_a+(ile or 1); return p.WyszukiwanieNaPodstawieWzorca(szereg,wzor,numer,funkcja_sprawdzanie_wyszukania,funkcja_wzor,licznik_wzor); end; return numer_a,numer_b,a,b,c,d,e,f,g,h,i; end; p.ZamianaZnakowaSzeregu=function(szereg,wzor,funkcja_sprawdzanie_wyszukania,funkcja_zamiana,funkcja_wzor,funkcja_licznik) local wynik={}; local numer_begin=0; local czy=true; local __wzor; local ile_wyszukan=0; local licznik_wzor=nil; while(true)do numer_begin=numer_begin+1; if((funkcja_wzor)and(czy))then licznik_wzor=licznik_wzor or 1; __wzor,czy=funkcja_wzor(wzor,licznik_wzor,czy); __wzor=__wzor or wzor; elseif(czy)then __wzor=wzor; czy=false; end; local numer_a,numer_b,a,b,c,d,e,f,g,h,i=p.WyszukiwanieNaPodstawieWzorca(szereg,__wzor,numer_begin,funkcja_sprawdzanie_wyszukania,funkcja_wzor,licznik_wzor); if((numer_a)and(numer_b)and(numer_a<=numer_b)and(numer_a>=numer_begin))then if(numer_a>1)then table.insert(wynik,mw.ustring.sub(szereg,numer_begin,numer_a-1)); end; local ciag; if(funkcja_wzor)then ciag=funkcja_zamiana(licznik_wzor,a,b,c,d,e,f,g,h,i); else ciag=funkcja_zamiana(a,b,c,d,e,f,g,h,i);end; if(ciag)then table.insert(wynik,ciag); else table.insert(wynik,mw.ustring.sub(szereg,numer_a,numer_b)); end; numer_begin=numer_b; ile_wyszukan=ile_wyszukan+1; else if(funkcja_wzor)then if(not czy)then break; else numer_begin=numer_begin-1; if(funkcja_licznik)then licznik_wzor=funkcja_licznik(wzor,licznik_wzor,numer_begin); else licznik_wzor=licznik_wzor+1; end; end; else break; end; end; end; local dlugosc=mw.ustring.len(szereg); if(dlugosc>=numer_begin)then table.insert(wynik,mw.ustring.sub(szereg,math.max(numer_begin,1),math.max(dlugosc,1))); end; return table.concat(wynik,""),ile_wyszukan; end; function p.IteratorLiniiTekstu(tekst) local poczatek=true; local zakonczone=false; local iterator=nil; ---- return function() if(not zakonczone)then if(poczatek)then local str=mw.ustring.match(tekst,"^([^\n]*)"); poczatek=false; return str; else iterator=iterator or mw.ustring.gmatch(tekst,"\n([^\n]*)"); local wartosc=iterator(); if(not wartosc)then zakonczone=true;end; return wartosc; end; else return nil; end; end; end; function p.ZamianaZnakowaLinii(szereg,funkcja) local tab_tekst={}; local iter_main=p.IteratorLiniiTekstu(szereg); for linia in iter_main do linia=funkcja(linia) or linia; table.insert(tab_tekst,linia); end; return table.concat(tab_tekst,"\n"); end; function p.SzeregiOmijanieFunkcyjne(tekst,normalnie,wzor,funkcja,funkcja2) if(not normalnie)then tekst=funkcja and funkcja(tekst) or tekst; return tekst; end; local ile1;local pozycja1;local pozycja2=0; local tab_str={}; local pozycja_temp; wzor="(.-)"..wzor; while(true)do local ciag;local kod_1;local kod_2;local kod_3;local kod_4;local kod_5;local kod_6;local kod_7;local kod_8; pozycja1,pozycja2,ciag,kod_1,kod_2,kod_3,kod_4,kod_5,kod_6,kod_7,kod_8=mw.ustring.find(tekst,wzor,pozycja2+1); if((pozycja1)and(pozycja2)and(pozycja1<pozycja2))then pozycja_temp=pozycja2; ciag=funkcja and funkcja(ciag) or ciag; ciag=ciag..(funkcja2 and funkcja2(kod_1,kod_2,kod_3,kod_4,kod_5,kod_6,kod_7,kod_8) or kod_1 or ""); table.insert(tab_str,ciag); else break; end; end; pozycja_temp=pozycja_temp or 0; local pozycja1,pozycja2,ciag=mw.ustring.find(tekst,"(.-)$",pozycja_temp+1); if((pozycja1)and(pozycja2)and(pozycja1<=pozycja2))then ciag=funkcja and funkcja(ciag) or ciag; table.insert(tab_str,ciag); end; local str=table.concat(tab_str,""); return str; end; return p; k7f4ou5s8i662y6hl2gmbxfjxc6x5mn 558125 558124 2026-09-30T18:28:56Z Persino 2851 558125 Scribunto text/plain local p={}; p.WyszukiwanieNaPodstawieWzorca=function(szereg,wzor,numer,funkcja_sprawdzanie_wyszukania,funkcja_wzor,licznik_wzor) local stronicowyparser_analizaspisurzeczy_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy"); local numer_a,numer_b,a,b,c,d,e,f,g,h,i=stronicowyparser_analizaspisurzeczy_modul.SzukanieNaPodstawieWzoru(szereg,wzor,numer,#szereg,false); if((not numer_a)or(not numer_b))then return nil;end; local tak;local ile; if(funkcja_wzor)then tak,ile=funkcja_sprawdzanie_wyszukania(szereg,numer,licznik_wzor,numer_a,numer_b,a,b,c,d,e,f,g,h,i); else tak,ile=funkcja_sprawdzanie_wyszukania(szereg,numer,numer_a,numer_b,a,b,c,d,e,f,g,h,i); end; if(tak)then numer=numer_a+(ile or 1); return p.WyszukiwanieNaPodstawieWzorca(szereg,wzor,numer,funkcja_sprawdzanie_wyszukania,funkcja_wzor,licznik_wzor); end; return numer_a,numer_b,a,b,c,d,e,f,g,h,i; end; p.ZamianaZnakowaSzeregu=function(szereg,wzor,funkcja_sprawdzanie_wyszukania,funkcja_zamiana,funkcja_wzor,funkcja_licznik) local wynik={}; local numer_begin=0; local czy=true; local __wzor; local ile_wyszukan=0; local licznik_wzor=nil; while(true)do numer_begin=numer_begin+1; if((funkcja_wzor)and(czy))then licznik_wzor=licznik_wzor or 1; __wzor,czy=funkcja_wzor(wzor,licznik_wzor,czy); __wzor=__wzor or wzor; elseif(czy)then __wzor=wzor; czy=false; end; local numer_a,numer_b,a,b,c,d,e,f,g,h,i=p.WyszukiwanieNaPodstawieWzorca(szereg,__wzor,numer_begin,funkcja_sprawdzanie_wyszukania,funkcja_wzor,licznik_wzor); if((numer_a)and(numer_b)and(numer_a<=numer_b)and(numer_a>=numer_begin))then if(numer_a>1)then table.insert(wynik,mw.ustring.sub(szereg,numer_begin,numer_a-1)); end; local ciag; if(funkcja_wzor)then ciag=funkcja_zamiana(licznik_wzor,a,b,c,d,e,f,g,h,i); else ciag=funkcja_zamiana(a,b,c,d,e,f,g,h,i);end; if(ciag)then table.insert(wynik,ciag); else table.insert(wynik,mw.ustring.sub(szereg,numer_a,numer_b)); end; numer_begin=numer_b; ile_wyszukan=ile_wyszukan+1; else if(funkcja_wzor)then if(not czy)then break; else numer_begin=numer_begin-1; if(funkcja_licznik)then licznik_wzor=funkcja_licznik(wzor,licznik_wzor,numer_begin); else licznik_wzor=licznik_wzor+1; end; end; else break; end; end; end; local dlugosc=mw.ustring.len(szereg); if((dlugosc>0)and(dlugosc>=numer_begin))then table.insert(wynik,mw.ustring.sub(szereg,math.max(numer_begin,1),math.max(dlugosc,1))); end; return table.concat(wynik,""),ile_wyszukan; end; function p.IteratorLiniiTekstu(tekst) local poczatek=true; local zakonczone=false; local iterator=nil; ---- return function() if(not zakonczone)then if(poczatek)then local str=mw.ustring.match(tekst,"^([^\n]*)"); poczatek=false; return str; else iterator=iterator or mw.ustring.gmatch(tekst,"\n([^\n]*)"); local wartosc=iterator(); if(not wartosc)then zakonczone=true;end; return wartosc; end; else return nil; end; end; end; function p.ZamianaZnakowaLinii(szereg,funkcja) local tab_tekst={}; local iter_main=p.IteratorLiniiTekstu(szereg); for linia in iter_main do linia=funkcja(linia) or linia; table.insert(tab_tekst,linia); end; return table.concat(tab_tekst,"\n"); end; function p.SzeregiOmijanieFunkcyjne(tekst,normalnie,wzor,funkcja,funkcja2) if(not normalnie)then tekst=funkcja and funkcja(tekst) or tekst; return tekst; end; local ile1;local pozycja1;local pozycja2=0; local tab_str={}; local pozycja_temp; wzor="(.-)"..wzor; while(true)do local ciag;local kod_1;local kod_2;local kod_3;local kod_4;local kod_5;local kod_6;local kod_7;local kod_8; pozycja1,pozycja2,ciag,kod_1,kod_2,kod_3,kod_4,kod_5,kod_6,kod_7,kod_8=mw.ustring.find(tekst,wzor,pozycja2+1); if((pozycja1)and(pozycja2)and(pozycja1<pozycja2))then pozycja_temp=pozycja2; ciag=funkcja and funkcja(ciag) or ciag; ciag=ciag..(funkcja2 and funkcja2(kod_1,kod_2,kod_3,kod_4,kod_5,kod_6,kod_7,kod_8) or kod_1 or ""); table.insert(tab_str,ciag); else break; end; end; pozycja_temp=pozycja_temp or 0; local pozycja1,pozycja2,ciag=mw.ustring.find(tekst,"(.-)$",pozycja_temp+1); if((pozycja1)and(pozycja2)and(pozycja1<=pozycja2))then ciag=funkcja and funkcja(ciag) or ciag; table.insert(tab_str,ciag); end; local str=table.concat(tab_str,""); return str; end; return p; qz4jx2tohqvf1defmz02gjuxx2xcnq7 Szablon:Ref/opis/Zobacz też 10 63105 558110 544295 2026-09-30T13:15:58Z Persino 2851 558110 wikitext text/x-wiki <includeonly> ; Szablony przypisów{{dk}} * {{s|Przypisy}} - szablon przypisów bibliograficznych, * {{s|Uwagi}} - szablon przypisów rzeczowych, * {{s|Przypisy-lista}} - szablon zarówno do przypisów bibliograficznych jak do przypisów rzeczowych dla każdego takiego przypadku z osobna. ; Szablony potrzebne do tego szablonu{{dk}} * {{s|Przypiswiki}} - szablon potrzebny do tego w postaci: {{s|o|n{{=}}nazwa referencji|r{{=}}{{s|Przypiswiki|Tekst referencji}}}}. ; Szablony ogólne referencji{{dk}} * {{s|Ref}} (jego skrót: {{s|o}}) - szablon referencji uwzględniający, nazwę i zawartość, referencji, * {{s|Refn}} (jego skrót: {{s|rn}}) - szablon referencji, analogiczny do {{s|Ref}}, do wstawiania w referencje. ; Szablony do tworzenia nazw i zawartości referencji do przypisów (zobacz{{Nowiki|:}} {{s|Przypisy}}) i uwag (zobacz{{Nowiki|:}} {{s|Uwagi}}), a także dla tych obu {{s|Przypisy-lista}} z osobna{{dk}} ;; Szablony nazw referencji{{dk}} * {{s|r}} - szablon nazw referencji do przypisów uwzględniający tylko nazwy, * {{s|u}} - szablon nazw referencji do uwag uwzględniający tylko nazwy. ;; Szablony referencji zawartości{{dk}} * {{s|RNota}} (jego skrót: {{s|RN}}) - szablony zawartości referencji nienazwane posiadające tylko zawartość, * {{s|UNota}} (jego skrót:{{s|UN}}) - szablony zawartości referencji nienazwane uwag uwzględniające tylko zawartość. ; Artykuły{{dk}} * {{lpp2|Przypisy}}<!--- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon powtarzalny do wsadzania pod sekcję: '''Zobacz też''', do opisu szablonów związanych z {{s|Ref}}.}}<!-- -->{{Kategoria|Szablony pomocnicze potrzebne do dokumentacji szablonów}}<!-- --></noinclude> 48v8l5fl6l3do6xgkdkpurw3tv02a9x Wikibooks:Moduły/Szeregi 4 63251 558160 542729 2026-10-01T09:26:52Z Persino 2851 /* {{Śródtytuł|WyszukiwanieNaPodstawieWzorca}}{{Code|p.WyszukiwanieNaPodstawieWzorca}} */ 558160 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Szeregi}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł służy do obsługi na ciągach (szeregach) języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local szeregi_modul=require("Module:Szeregi"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje opisane w module, która opisuje ta dokumentacja, służą do operacji na szeregach, też na wydzielaniu poszczególnych linii i robienia na nich operacji, a także wykonywania operacji naniepomijanych elementach znakowych. Przykładowe użycie modułu {{Code|{{ld2|Szeregi}}}} jest użyte w module {{Code|{{ld2|Szablonowe/Potrzebne}}}}. Na te stronie będziemy wchodzili do pliku: {{Code|Moduły/Szeregi}} w przestrzeni nazw: {{Code|Wikibooks}}, ściągając jego zawartość w funkcjach {{Code|{{sr|#p.WyszukiwanieNaPodstawieWzorca|p=Szeregi}}}}, {{Code|{{sr|#p.ZamianaZnakowaSzeregu|p=Szeregi}}}}, {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}} i {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}. == {{Śródtytuł|WyszukiwanieNaPodstawieWzorca}}{{Code|p.WyszukiwanieNaPodstawieWzorca}} == Funkcja wyszukuje począwszy od miejsca pierwszego (trzeci argument) funkcji, czyli z podwójnymi nawiasami klamrowymi, a jeżeli w nim są początki, np. innych szablonów, to wyszukuje kolejne przykładowe dwa miejsca dalej względem poprzedniego przykładowego wyszukiwania. Funkcja do swojego działania wykorzystuje funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WyszukiwanieNaPodstawieWzorca=function(szereg,wzor,numer,funkcja_sprawdzanie_wyszukania,funkcja_wzor,licznik_wzor)...end; </syntaxhighlight> Parametry: * {{Code|szereg}} - jak w: {{LinkPatrz|szereg}}, * {{Code|wzor}} - jak w: {{LinkPatrz|wzor}}, * {{Code|numer}} - numer, od którego ma rozpocząc wyszukiwanie, * {{Code|funkcja_sprawdzanie_wyszukania}} - jak w: {{LinkPatrz|funkcja_sprawdzanie_wyszukania}}, * {{Code|funkcja_wzor}} - jak w: {{LinkPatrz|funkcja_wzor}}, * {{Code|licznik_wzor}} - licznik wykorzystywany w ciele funkcji: {{Code|funkcja_sprawdzanie_wyszukania}}, gdy parametr: {{Code|funkcja_wzor}}, nie jest: {{Code|nil}}, tylko funkcją. A {{Code|numer}} w czwartym argumencie (funkcji) ten parametr wskazany jest przez trzeci argument, czyli {{Code|1}}, a jeżeli pierwsze wyszukiwanie się nie powiodło się, ona wyszukuje następne, aż do całkowitego niepowodzenia, lub do nieznalezienia następnych ciągów, wtedy jest zwracana wartość {{Code|nil}}, ale przez tym liczba ponownym wyszukań może być dowolna, w zależności od długości tekstu. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(wzor,licznik_wzor,czy) -- Obojętne jaka definicja, ta funkcja ma definicję, bo w p.ZamianaZnakowaSzeregu jest ona tam potrzebna. end,1); </syntaxhighlight> Opis zmiennych zwracanych w przykładzie: * {{Code|numer_a}} - początek wyszukania, * {{Code|numer_b}} - koniec wyszukania, * {{Code|zawartosc}} i {{Code|dalej}} - zawartość i dalszy element, elementy zwaracane z przechwytywania okazane wzorem {{Code|<nowiki>%{%{(.-)%}%}(%l*)</nowiki>}} za pomocą dwóch części przechwytujących ciągu znakowe. Funkcja ta zwraca dwa dalsze parametry, najwięcej dalszych parametrów (od {{Code|zawartość}}) może być dziewięć, taka bowiem jest właściwość funkcji: <syntaxhighlight lang="lua"> local numer_a,numer_b,a,b,c,d,e,f,g,h,i=mw.ustring.find(szereg,wzor,numer); </syntaxhighlight> Ta funkcja jest w definicji omawianej funkcji. Tę funkcję równie dobrze można napisać prościej: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end ); </syntaxhighlight> == {{Code|p.ZamianaZnakowaSzeregu}} == Funkcja do podmiany wyszukiwanego tekstu. Wyszukuje tekst wskazany przez pierwszy argument, drugi parametr jako wzór (wyszukuj szablony z podwójnymi nawiasami klamrowymi), a jeżeli ona zawiera początek następnego szablonu (funkcja wskazana przez trzeci argument), to wyszukuje ona dwa miejsca dalej znakowe, czy jest on tym właściwym szablonem bez innych szablonów, których nie ma tam tego. Następnie po wyszukaniu szablonu przez funkcję podaną jako czwarty argument, usuwa w nim odstępy, i robi z niego inny szablon. Funkcja najpierw wyszukuje według piątej funkcji, dla {{Code|licznik_wzor {{=}} 1}}, sprawdza dodatkowo, jakie są małe litery po linku, jeżeli po nim one są tam. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamianaZnakowaSzeregu=function(szereg,wzor,funkcja_sprawdzanie_wyszukania,funkcja_zamiana,funkcja_wzor,funkcja_licznik)...end; </syntaxhighlight> Parametry: * {{Code|szereg}} {{Patrz|szereg}} - szeregi (ciąg znakowy) do przeanalizowania i przetworzenia, * {{Code|wzor}} {{Patrz|wzor}} - wzór w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}} do przeszukiwania ciągów, * {{Code|funkcja_sprawdzanie_wyszukania}} {{Patrz|funkcja_sprawdzanie_wyszukania}} - sprawdza, czy wyszukany ciąg zawiera pewny element, a jeżeli tak, to tą funkcją w nagłówku powtarzane jest wyszukiwanie aż do skutku, lub do końca szeregu, * {{Code|funkcja_zamiana}} - funkcja robiąca operacje na wydzielonych ciagach znakowych, * {{Code|funkcja_wzor}} {{Patrz|funkcja_wzor}} - obecność tej funkcji szugeruje, że trzeba wywołać {{Code|funkcja_sprawdzanie_wyszukania(szereg,numer,licznik_wzor,numer_a,numer_b,a,b,c,d,e,f,g,h,i);}}, w przeciwnym wypadku {{Code|funkcja_sprawdzanie_wyszukania(szereg,numer,numer_a,numer_b,a,b,c,d,e,f,g,h,i);}}, funkcja ta zwraca wartość logiczną w zmiennej {{Code|tak}}, mówiącej, czy powtórzyć wyszukiwanie, i {{Code|ile}}, tzn. ile ddodatkowych wyrazów dalej ma wyszukać, * {{Code|funkcja_licznik}} - funkcja robiąca operacje na podstawie {{Code|licznik_wzor {{=}} funkcja_licznik(wzor,licznik_wzor,numer_begin);}}, licząca zmienną {{Code|licznik_wzor}}. Funkcja wykorzystuje do działania: {{LinkŚródtytuł|WyszukiwanieNaPodstawieWzorca}}, w celu wyszukiwanych ciągów. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(licznik_wzor,zawartosc,dalej) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"..((licznik_wzor==1)and dalej or ""); end, function(wzor,licznik_wzor,czy) if(czy)then if(licznik_wzor==1)then return wzor.."(%l*)",true;end; end; return wzor,false; end, function(wzor,licznk_wzor,numer_begin) licznik_wzor=licznik_wzor+1; return licznik_wzor; end ); </syntaxhighlight> A jeżeli piąty argument (funkcja) nie zostanie podany, a więc i też szósty, bo wtedy on jest niepotrzebny, to w czwartej funkcji argument pierwszy można pominąć, a w pierwszej zmienną trzecią pomijamy, bo w tych funkcjach po prostu ich nie podajemy, wtedy tę funkcję można napisać w uproszczony sposób: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,numer_a,numer_b,zawartosc) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(zawartosc) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"; end ); </syntaxhighlight> Ta funkcja zwraca zmodyfikowany tekst uzyskany z omawianej funkcji. Tą funkcję możemy wykorzystać do kodowania dowolnego tekstu i operowania na nim, co jest wykorzystane, nie tylko jako przykładach, ale też jako treściwy kod według tego wspomnianego w tym module powyżej. == {{Śródtytuł|IteratorLiniiTekstu}}{{Code|p.IteratorLiniiTekstu}} == Funkcja uzyskany tekst iteruje linia po linii według iteracji poniżej przy pomocy operacji {{Code|for}}, gdzie tam możemy robić operacje na liniach, by dodać je póżniej do tablicy linia, by je połączyć przy pomocy łącznika {{Code|\n}}. Poniższy kod robi to samo, co przykład dla funkcji {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}, tylko, że dłużej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IteratorLiniiTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst, z którego są wydzielane kolejne linie. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local iter=szeregi_modul.IteratorLiniiTekstu(tekst); local tab_linia={}; for linia in iter do linia=mw.ustring.gsub(linia,"%s+",""); table.insert(tab_linia,linia); end; tekst=table.concat(tab_linia,"\n"); </syntaxhighlight> == {{Code|p.ZamianaZnakowaLinii}} == Funkcja zamienia tekst uzyskany wstawiony do pierwszego argumentu tej funkcji, gdzie poszczególne linie są zmieniane przez anonimową funkcję podaną jako drugi argument. Jeżeli ta funkcja zwraca {{Code|nil}} dla jakieś linii, to ta linia nie jest zmieniana, tylko przypisywana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaZnakowaLinii(szereg,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|szereg}} - szereg do przetworzenia, z którego są wydzielane kolejne linie i są robione na nich pewne operacje, * {{Code|funkcja}} - funkcja robiąca operacje na kolenych liniach, nawet pustych. Funkcja korzysta z innej: {{LinkŚródtytuł|IteratorLiniiTekstu}}, w celu uzyskiwania kolejnych linii tekstu, linie są oddzielone znakiem: {{Code|\n}}, w ogólnym podanym tekście. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaLinii(tekst,function(linia) local linia,ile=mw.ustring.gsub(linia,"%s+",""); if(ile>0)then return linia;end; return nil; end); </syntaxhighlight> Ta funkcja usuwa wszystkie odstępy w liniach, ale nie pomiędzy liniami. == {{Code|p.SzeregiOmijanieFunkcyjne}} == Funkcja do operacji na szeregach (ciągach), przy pomocy pewnej funkcji, z pominięciem pewnych ciągów określonym, jako opisywanym przez wzór (zmienna {{Code|wzor}}), podanym do parametru funkcji z operacją na nich podanym jako druga funkcja {{Code|funkcja2}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzeregiOmijanieFunkcyjne(tekst,normalnie,wzor,funkcja,funkcja2)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, omijając pewne elementy lub nie, jeżeli drugi element odpowiada wartości logicznej {{Code|false}}, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć do ośmiu elementów przechwytywanych, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych, * {{Code|funkcja2}} - co ma robić z częściami elementów pomijanych, czyli z elementami przechwytywanymi, funkcja przyjmuje do ośmiu parametrów przechwytywania w podanym wzorze {{Code|wzor}}. Przykład: <syntaxhighlight lang="lua"> local szeregi_modul=require("Module:Szeregi"); local tekst="Oto jest tekst wywołania: \"&#35;\""; -- Elementem omijanym jest "&#35;"; local tekst2=szeregi_modul.SzeregiOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end, function(kod) -- Operacje robione na przechwytywanym ciągu, tzn. z dodawaniem prefiksu początkowego i końcowego; return "&"..kod..";"; end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> -- Widzimy tutaj elementy zakodowane funkcją mw.uri.encode bez elementu omijanego "&#35"; local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> emhxx83t7lbm5v6cfzsgfrpkyd7w86y 558161 558160 2026-10-01T09:31:14Z Persino 2851 558161 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Szeregi}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł służy do obsługi na ciągach (szeregach) języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local szeregi_modul=require("Module:Szeregi"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje opisane w module, która opisuje ta dokumentacja, służą do operacji na szeregach, też na wydzielaniu poszczególnych linii i robienia na nich operacji, a także wykonywania operacji naniepomijanych elementach znakowych. Przykładowe użycie modułu {{Code|{{ld2|Szeregi}}}} jest użyte w module {{Code|{{ld2|Szablonowe/Potrzebne}}}}. Na te stronie będziemy wchodzili do pliku: {{Code|Moduły/Szeregi}} w przestrzeni nazw: {{Code|Wikibooks}}, ściągając jego zawartość w funkcjach: {{LinkŚródtytuł|p.WyszukiwanieNaPodstawieWzorca}}, {{LinkŚródtytuł|p.ZamianaZnakowaSzeregu}}, {{LinkŚródtytuł|p.IteratorLiniiTekstu}}, i {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}. == {{Śródtytuł|WyszukiwanieNaPodstawieWzorca}}{{Code|p.WyszukiwanieNaPodstawieWzorca}} == Funkcja wyszukuje począwszy od miejsca pierwszego (trzeci argument) funkcji, czyli z podwójnymi nawiasami klamrowymi, a jeżeli w nim są początki, np. innych szablonów, to wyszukuje kolejne przykładowe dwa miejsca dalej względem poprzedniego przykładowego wyszukiwania. Funkcja do swojego działania wykorzystuje funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WyszukiwanieNaPodstawieWzorca=function(szereg,wzor,numer,funkcja_sprawdzanie_wyszukania,funkcja_wzor,licznik_wzor)...end; </syntaxhighlight> Parametry: * {{Code|szereg}} - jak w: {{LinkPatrz|szereg}}, * {{Code|wzor}} - jak w: {{LinkPatrz|wzor}}, * {{Code|numer}} - numer, od którego ma rozpocząc wyszukiwanie, * {{Code|funkcja_sprawdzanie_wyszukania}} - jak w: {{LinkPatrz|funkcja_sprawdzanie_wyszukania}}, * {{Code|funkcja_wzor}} - jak w: {{LinkPatrz|funkcja_wzor}}, * {{Code|licznik_wzor}} - licznik wykorzystywany w ciele funkcji: {{Code|funkcja_sprawdzanie_wyszukania}}, gdy parametr: {{Code|funkcja_wzor}}, nie jest: {{Code|nil}}, tylko funkcją. A {{Code|numer}} w czwartym argumencie (funkcji) ten parametr wskazany jest przez trzeci argument, czyli {{Code|1}}, a jeżeli pierwsze wyszukiwanie się nie powiodło się, ona wyszukuje następne, aż do całkowitego niepowodzenia, lub do nieznalezienia następnych ciągów, wtedy jest zwracana wartość {{Code|nil}}, ale przez tym liczba ponownym wyszukań może być dowolna, w zależności od długości tekstu. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(wzor,licznik_wzor,czy) -- Obojętne jaka definicja, ta funkcja ma definicję, bo w p.ZamianaZnakowaSzeregu jest ona tam potrzebna. end,1); </syntaxhighlight> Opis zmiennych zwracanych w przykładzie: * {{Code|numer_a}} - początek wyszukania, * {{Code|numer_b}} - koniec wyszukania, * {{Code|zawartosc}} i {{Code|dalej}} - zawartość i dalszy element, elementy zwaracane z przechwytywania okazane wzorem {{Code|<nowiki>%{%{(.-)%}%}(%l*)</nowiki>}} za pomocą dwóch części przechwytujących ciągu znakowe. Funkcja ta zwraca dwa dalsze parametry, najwięcej dalszych parametrów (od {{Code|zawartość}}) może być dziewięć, taka bowiem jest właściwość funkcji: <syntaxhighlight lang="lua"> local numer_a,numer_b,a,b,c,d,e,f,g,h,i=mw.ustring.find(szereg,wzor,numer); </syntaxhighlight> Ta funkcja jest w definicji omawianej funkcji. Tę funkcję równie dobrze można napisać prościej: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end ); </syntaxhighlight> == {{Śródtytuł|p.ZamianaZnakowaSzeregu}}{{Code|p.ZamianaZnakowaSzeregu}} == Funkcja do podmiany wyszukiwanego tekstu. Wyszukuje tekst wskazany przez pierwszy argument, drugi parametr jako wzór (wyszukuj szablony z podwójnymi nawiasami klamrowymi), a jeżeli ona zawiera początek następnego szablonu (funkcja wskazana przez trzeci argument), to wyszukuje ona dwa miejsca dalej znakowe, czy jest on tym właściwym szablonem bez innych szablonów, których nie ma tam tego. Następnie po wyszukaniu szablonu przez funkcję podaną jako czwarty argument, usuwa w nim odstępy, i robi z niego inny szablon. Funkcja najpierw wyszukuje według piątej funkcji, dla {{Code|licznik_wzor {{=}} 1}}, sprawdza dodatkowo, jakie są małe litery po linku, jeżeli po nim one są tam. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamianaZnakowaSzeregu=function(szereg,wzor,funkcja_sprawdzanie_wyszukania,funkcja_zamiana,funkcja_wzor,funkcja_licznik)...end; </syntaxhighlight> Parametry: * {{Code|szereg}} {{Patrz|szereg}} - szeregi (ciąg znakowy) do przeanalizowania i przetworzenia, * {{Code|wzor}} {{Patrz|wzor}} - wzór w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}} do przeszukiwania ciągów, * {{Code|funkcja_sprawdzanie_wyszukania}} {{Patrz|funkcja_sprawdzanie_wyszukania}} - sprawdza, czy wyszukany ciąg zawiera pewny element, a jeżeli tak, to tą funkcją w nagłówku powtarzane jest wyszukiwanie aż do skutku, lub do końca szeregu, * {{Code|funkcja_zamiana}} - funkcja robiąca operacje na wydzielonych ciagach znakowych, * {{Code|funkcja_wzor}} {{Patrz|funkcja_wzor}} - obecność tej funkcji szugeruje, że trzeba wywołać {{Code|funkcja_sprawdzanie_wyszukania(szereg,numer,licznik_wzor,numer_a,numer_b,a,b,c,d,e,f,g,h,i);}}, w przeciwnym wypadku {{Code|funkcja_sprawdzanie_wyszukania(szereg,numer,numer_a,numer_b,a,b,c,d,e,f,g,h,i);}}, funkcja ta zwraca wartość logiczną w zmiennej {{Code|tak}}, mówiącej, czy powtórzyć wyszukiwanie, i {{Code|ile}}, tzn. ile ddodatkowych wyrazów dalej ma wyszukać, * {{Code|funkcja_licznik}} - funkcja robiąca operacje na podstawie {{Code|licznik_wzor {{=}} funkcja_licznik(wzor,licznik_wzor,numer_begin);}}, licząca zmienną {{Code|licznik_wzor}}. Funkcja wykorzystuje do działania: {{LinkŚródtytuł|WyszukiwanieNaPodstawieWzorca}}, w celu wyszukiwanych ciągów. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(licznik_wzor,zawartosc,dalej) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"..((licznik_wzor==1)and dalej or ""); end, function(wzor,licznik_wzor,czy) if(czy)then if(licznik_wzor==1)then return wzor.."(%l*)",true;end; end; return wzor,false; end, function(wzor,licznk_wzor,numer_begin) licznik_wzor=licznik_wzor+1; return licznik_wzor; end ); </syntaxhighlight> A jeżeli piąty argument (funkcja) nie zostanie podany, a więc i też szósty, bo wtedy on jest niepotrzebny, to w czwartej funkcji argument pierwszy można pominąć, a w pierwszej zmienną trzecią pomijamy, bo w tych funkcjach po prostu ich nie podajemy, wtedy tę funkcję można napisać w uproszczony sposób: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,numer_a,numer_b,zawartosc) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(zawartosc) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"; end ); </syntaxhighlight> Ta funkcja zwraca zmodyfikowany tekst uzyskany z omawianej funkcji. Tą funkcję możemy wykorzystać do kodowania dowolnego tekstu i operowania na nim, co jest wykorzystane, nie tylko jako przykładach, ale też jako treściwy kod według tego wspomnianego w tym module powyżej. == {{Śródtytuł|IteratorLiniiTekstu}}{{Code|p.IteratorLiniiTekstu}} == Funkcja uzyskany tekst iteruje linia po linii według iteracji poniżej przy pomocy operacji {{Code|for}}, gdzie tam możemy robić operacje na liniach, by dodać je póżniej do tablicy linia, by je połączyć przy pomocy łącznika {{Code|\n}}. Poniższy kod robi to samo, co przykład dla funkcji: {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}, tylko, że dłużej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IteratorLiniiTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst, z którego są wydzielane kolejne linie. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local iter=szeregi_modul.IteratorLiniiTekstu(tekst); local tab_linia={}; for linia in iter do linia=mw.ustring.gsub(linia,"%s+",""); table.insert(tab_linia,linia); end; tekst=table.concat(tab_linia,"\n"); </syntaxhighlight> == {{Code|p.ZamianaZnakowaLinii}} == Funkcja zamienia tekst uzyskany wstawiony do pierwszego argumentu tej funkcji, gdzie poszczególne linie są zmieniane przez anonimową funkcję podaną jako drugi argument. Jeżeli ta funkcja zwraca {{Code|nil}} dla jakieś linii, to ta linia nie jest zmieniana, tylko przypisywana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaZnakowaLinii(szereg,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|szereg}} - szereg do przetworzenia, z którego są wydzielane kolejne linie i są robione na nich pewne operacje, * {{Code|funkcja}} - funkcja robiąca operacje na kolenych liniach, nawet pustych. Funkcja korzysta z innej: {{LinkŚródtytuł|IteratorLiniiTekstu}}, w celu uzyskiwania kolejnych linii tekstu, linie są oddzielone znakiem: {{Code|\n}}, w ogólnym podanym tekście. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaLinii(tekst,function(linia) local linia,ile=mw.ustring.gsub(linia,"%s+",""); if(ile>0)then return linia;end; return nil; end); </syntaxhighlight> Ta funkcja usuwa wszystkie odstępy w liniach, ale nie pomiędzy liniami. == {{Code|p.SzeregiOmijanieFunkcyjne}} == Funkcja do operacji na szeregach (ciągach), przy pomocy pewnej funkcji, z pominięciem pewnych ciągów określonym, jako opisywanym przez wzór (zmienna {{Code|wzor}}), podanym do parametru funkcji z operacją na nich podanym jako druga funkcja {{Code|funkcja2}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzeregiOmijanieFunkcyjne(tekst,normalnie,wzor,funkcja,funkcja2)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, omijając pewne elementy lub nie, jeżeli drugi element odpowiada wartości logicznej {{Code|false}}, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć do ośmiu elementów przechwytywanych, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych, * {{Code|funkcja2}} - co ma robić z częściami elementów pomijanych, czyli z elementami przechwytywanymi, funkcja przyjmuje do ośmiu parametrów przechwytywania w podanym wzorze {{Code|wzor}}. Przykład: <syntaxhighlight lang="lua"> local szeregi_modul=require("Module:Szeregi"); local tekst="Oto jest tekst wywołania: \"&#35;\""; -- Elementem omijanym jest "&#35;"; local tekst2=szeregi_modul.SzeregiOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end, function(kod) -- Operacje robione na przechwytywanym ciągu, tzn. z dodawaniem prefiksu początkowego i końcowego; return "&"..kod..";"; end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> -- Widzimy tutaj elementy zakodowane funkcją mw.uri.encode bez elementu omijanego "&#35"; local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> jb593niljhj1akvoii30mnepvjdzed7 558162 558161 2026-10-01T09:32:36Z Persino 2851 558162 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Szeregi}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł służy do obsługi na ciągach (szeregach) języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local szeregi_modul=require("Module:Szeregi"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje opisane w module, która opisuje ta dokumentacja, służą do operacji na szeregach, też na wydzielaniu poszczególnych linii i robienia na nich operacji, a także wykonywania operacji naniepomijanych elementach znakowych. Przykładowe użycie modułu {{Code|{{ld2|Szeregi}}}} jest użyte w module {{Code|{{ld2|Szablonowe/Potrzebne}}}}. Na te stronie będziemy wchodzili do pliku: {{Code|Moduły/Szeregi}} w przestrzeni nazw: {{Code|Wikibooks}}, ściągając jego zawartość w funkcjach: {{LinkŚródtytuł|p.WyszukiwanieNaPodstawieWzorca}}, {{LinkŚródtytuł|p.ZamianaZnakowaSzeregu}}, {{LinkŚródtytuł|p.IteratorLiniiTekstu}}, i {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}. == {{Śródtytuł|p.WyszukiwanieNaPodstawieWzorca}}{{Code|p.WyszukiwanieNaPodstawieWzorca}} == Funkcja wyszukuje począwszy od miejsca pierwszego (trzeci argument) funkcji, czyli z podwójnymi nawiasami klamrowymi, a jeżeli w nim są początki, np. innych szablonów, to wyszukuje kolejne przykładowe dwa miejsca dalej względem poprzedniego przykładowego wyszukiwania. Funkcja do swojego działania wykorzystuje funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WyszukiwanieNaPodstawieWzorca=function(szereg,wzor,numer,funkcja_sprawdzanie_wyszukania,funkcja_wzor,licznik_wzor)...end; </syntaxhighlight> Parametry: * {{Code|szereg}} - jak w: {{LinkPatrz|szereg}}, * {{Code|wzor}} - jak w: {{LinkPatrz|wzor}}, * {{Code|numer}} - numer, od którego ma rozpocząc wyszukiwanie, * {{Code|funkcja_sprawdzanie_wyszukania}} - jak w: {{LinkPatrz|funkcja_sprawdzanie_wyszukania}}, * {{Code|funkcja_wzor}} - jak w: {{LinkPatrz|funkcja_wzor}}, * {{Code|licznik_wzor}} - licznik wykorzystywany w ciele funkcji: {{Code|funkcja_sprawdzanie_wyszukania}}, gdy parametr: {{Code|funkcja_wzor}}, nie jest: {{Code|nil}}, tylko funkcją. A {{Code|numer}} w czwartym argumencie (funkcji) ten parametr wskazany jest przez trzeci argument, czyli {{Code|1}}, a jeżeli pierwsze wyszukiwanie się nie powiodło się, ona wyszukuje następne, aż do całkowitego niepowodzenia, lub do nieznalezienia następnych ciągów, wtedy jest zwracana wartość {{Code|nil}}, ale przez tym liczba ponownym wyszukań może być dowolna, w zależności od długości tekstu. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(wzor,licznik_wzor,czy) -- Obojętne jaka definicja, ta funkcja ma definicję, bo w p.ZamianaZnakowaSzeregu jest ona tam potrzebna. end,1); </syntaxhighlight> Opis zmiennych zwracanych w przykładzie: * {{Code|numer_a}} - początek wyszukania, * {{Code|numer_b}} - koniec wyszukania, * {{Code|zawartosc}} i {{Code|dalej}} - zawartość i dalszy element, elementy zwaracane z przechwytywania okazane wzorem {{Code|<nowiki>%{%{(.-)%}%}(%l*)</nowiki>}} za pomocą dwóch części przechwytujących ciągu znakowe. Funkcja ta zwraca dwa dalsze parametry, najwięcej dalszych parametrów (od {{Code|zawartość}}) może być dziewięć, taka bowiem jest właściwość funkcji: <syntaxhighlight lang="lua"> local numer_a,numer_b,a,b,c,d,e,f,g,h,i=mw.ustring.find(szereg,wzor,numer); </syntaxhighlight> Ta funkcja jest w definicji omawianej funkcji. Tę funkcję równie dobrze można napisać prościej: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end ); </syntaxhighlight> == {{Śródtytuł|p.p.ZamianaZnakowaSzeregu}}{{Code|p.ZamianaZnakowaSzeregu}} == Funkcja do podmiany wyszukiwanego tekstu. Wyszukuje tekst wskazany przez pierwszy argument, drugi parametr jako wzór (wyszukuj szablony z podwójnymi nawiasami klamrowymi), a jeżeli ona zawiera początek następnego szablonu (funkcja wskazana przez trzeci argument), to wyszukuje ona dwa miejsca dalej znakowe, czy jest on tym właściwym szablonem bez innych szablonów, których nie ma tam tego. Następnie po wyszukaniu szablonu przez funkcję podaną jako czwarty argument, usuwa w nim odstępy, i robi z niego inny szablon. Funkcja najpierw wyszukuje według piątej funkcji, dla {{Code|licznik_wzor {{=}} 1}}, sprawdza dodatkowo, jakie są małe litery po linku, jeżeli po nim one są tam. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamianaZnakowaSzeregu=function(szereg,wzor,funkcja_sprawdzanie_wyszukania,funkcja_zamiana,funkcja_wzor,funkcja_licznik)...end; </syntaxhighlight> Parametry: * {{Code|szereg}} {{Patrz|szereg}} - szeregi (ciąg znakowy) do przeanalizowania i przetworzenia, * {{Code|wzor}} {{Patrz|wzor}} - wzór w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}} do przeszukiwania ciągów, * {{Code|funkcja_sprawdzanie_wyszukania}} {{Patrz|funkcja_sprawdzanie_wyszukania}} - sprawdza, czy wyszukany ciąg zawiera pewny element, a jeżeli tak, to tą funkcją w nagłówku powtarzane jest wyszukiwanie aż do skutku, lub do końca szeregu, * {{Code|funkcja_zamiana}} - funkcja robiąca operacje na wydzielonych ciagach znakowych, * {{Code|funkcja_wzor}} {{Patrz|funkcja_wzor}} - obecność tej funkcji szugeruje, że trzeba wywołać {{Code|funkcja_sprawdzanie_wyszukania(szereg,numer,licznik_wzor,numer_a,numer_b,a,b,c,d,e,f,g,h,i);}}, w przeciwnym wypadku {{Code|funkcja_sprawdzanie_wyszukania(szereg,numer,numer_a,numer_b,a,b,c,d,e,f,g,h,i);}}, funkcja ta zwraca wartość logiczną w zmiennej {{Code|tak}}, mówiącej, czy powtórzyć wyszukiwanie, i {{Code|ile}}, tzn. ile ddodatkowych wyrazów dalej ma wyszukać, * {{Code|funkcja_licznik}} - funkcja robiąca operacje na podstawie {{Code|licznik_wzor {{=}} funkcja_licznik(wzor,licznik_wzor,numer_begin);}}, licząca zmienną {{Code|licznik_wzor}}. Funkcja wykorzystuje do działania: {{LinkŚródtytuł|WyszukiwanieNaPodstawieWzorca}}, w celu wyszukiwanych ciągów. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(licznik_wzor,zawartosc,dalej) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"..((licznik_wzor==1)and dalej or ""); end, function(wzor,licznik_wzor,czy) if(czy)then if(licznik_wzor==1)then return wzor.."(%l*)",true;end; end; return wzor,false; end, function(wzor,licznk_wzor,numer_begin) licznik_wzor=licznik_wzor+1; return licznik_wzor; end ); </syntaxhighlight> A jeżeli piąty argument (funkcja) nie zostanie podany, a więc i też szósty, bo wtedy on jest niepotrzebny, to w czwartej funkcji argument pierwszy można pominąć, a w pierwszej zmienną trzecią pomijamy, bo w tych funkcjach po prostu ich nie podajemy, wtedy tę funkcję można napisać w uproszczony sposób: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,numer_a,numer_b,zawartosc) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(zawartosc) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"; end ); </syntaxhighlight> Ta funkcja zwraca zmodyfikowany tekst uzyskany z omawianej funkcji. Tą funkcję możemy wykorzystać do kodowania dowolnego tekstu i operowania na nim, co jest wykorzystane, nie tylko jako przykładach, ale też jako treściwy kod według tego wspomnianego w tym module powyżej. == {{Śródtytuł|p.IteratorLiniiTekstu}}{{Code|p.IteratorLiniiTekstu}} == Funkcja uzyskany tekst iteruje linia po linii według iteracji poniżej przy pomocy operacji {{Code|for}}, gdzie tam możemy robić operacje na liniach, by dodać je póżniej do tablicy linia, by je połączyć przy pomocy łącznika {{Code|\n}}. Poniższy kod robi to samo, co przykład dla funkcji: {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}, tylko, że dłużej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IteratorLiniiTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst, z którego są wydzielane kolejne linie. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local iter=szeregi_modul.IteratorLiniiTekstu(tekst); local tab_linia={}; for linia in iter do linia=mw.ustring.gsub(linia,"%s+",""); table.insert(tab_linia,linia); end; tekst=table.concat(tab_linia,"\n"); </syntaxhighlight> == {{Code|p.ZamianaZnakowaLinii}} == Funkcja zamienia tekst uzyskany wstawiony do pierwszego argumentu tej funkcji, gdzie poszczególne linie są zmieniane przez anonimową funkcję podaną jako drugi argument. Jeżeli ta funkcja zwraca {{Code|nil}} dla jakieś linii, to ta linia nie jest zmieniana, tylko przypisywana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaZnakowaLinii(szereg,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|szereg}} - szereg do przetworzenia, z którego są wydzielane kolejne linie i są robione na nich pewne operacje, * {{Code|funkcja}} - funkcja robiąca operacje na kolenych liniach, nawet pustych. Funkcja korzysta z innej: {{LinkŚródtytuł|IteratorLiniiTekstu}}, w celu uzyskiwania kolejnych linii tekstu, linie są oddzielone znakiem: {{Code|\n}}, w ogólnym podanym tekście. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaLinii(tekst,function(linia) local linia,ile=mw.ustring.gsub(linia,"%s+",""); if(ile>0)then return linia;end; return nil; end); </syntaxhighlight> Ta funkcja usuwa wszystkie odstępy w liniach, ale nie pomiędzy liniami. == {{Code|p.SzeregiOmijanieFunkcyjne}} == Funkcja do operacji na szeregach (ciągach), przy pomocy pewnej funkcji, z pominięciem pewnych ciągów określonym, jako opisywanym przez wzór (zmienna {{Code|wzor}}), podanym do parametru funkcji z operacją na nich podanym jako druga funkcja {{Code|funkcja2}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzeregiOmijanieFunkcyjne(tekst,normalnie,wzor,funkcja,funkcja2)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, omijając pewne elementy lub nie, jeżeli drugi element odpowiada wartości logicznej {{Code|false}}, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć do ośmiu elementów przechwytywanych, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych, * {{Code|funkcja2}} - co ma robić z częściami elementów pomijanych, czyli z elementami przechwytywanymi, funkcja przyjmuje do ośmiu parametrów przechwytywania w podanym wzorze {{Code|wzor}}. Przykład: <syntaxhighlight lang="lua"> local szeregi_modul=require("Module:Szeregi"); local tekst="Oto jest tekst wywołania: \"&#35;\""; -- Elementem omijanym jest "&#35;"; local tekst2=szeregi_modul.SzeregiOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end, function(kod) -- Operacje robione na przechwytywanym ciągu, tzn. z dodawaniem prefiksu początkowego i końcowego; return "&"..kod..";"; end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> -- Widzimy tutaj elementy zakodowane funkcją mw.uri.encode bez elementu omijanego "&#35"; local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 9blekfjr55ftkxhodmyrr0puultu9t9 558163 558162 2026-10-01T09:33:28Z Persino 2851 558163 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Szeregi}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł służy do obsługi na ciągach (szeregach) języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local szeregi_modul=require("Module:Szeregi"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje opisane w module, która opisuje ta dokumentacja, służą do operacji na szeregach, też na wydzielaniu poszczególnych linii i robienia na nich operacji, a także wykonywania operacji naniepomijanych elementach znakowych. Przykładowe użycie modułu {{Code|{{ld2|Szeregi}}}} jest użyte w module {{Code|{{ld2|Szablonowe/Potrzebne}}}}. Na te stronie będziemy wchodzili do pliku: {{Code|Moduły/Szeregi}} w przestrzeni nazw: {{Code|Wikibooks}}, ściągając jego zawartość w funkcjach: {{LinkŚródtytuł|p.WyszukiwanieNaPodstawieWzorca}}, {{LinkŚródtytuł|p.ZamianaZnakowaSzeregu}}, {{LinkŚródtytuł|p.IteratorLiniiTekstu}}, i {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}. == {{Śródtytuł|p.WyszukiwanieNaPodstawieWzorca}}{{Code|p.WyszukiwanieNaPodstawieWzorca}} == Funkcja wyszukuje począwszy od miejsca pierwszego (trzeci argument) funkcji, czyli z podwójnymi nawiasami klamrowymi, a jeżeli w nim są początki, np. innych szablonów, to wyszukuje kolejne przykładowe dwa miejsca dalej względem poprzedniego przykładowego wyszukiwania. Funkcja do swojego działania wykorzystuje funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WyszukiwanieNaPodstawieWzorca=function(szereg,wzor,numer,funkcja_sprawdzanie_wyszukania,funkcja_wzor,licznik_wzor)...end; </syntaxhighlight> Parametry: * {{Code|szereg}} - jak w: {{LinkPatrz|szereg}}, * {{Code|wzor}} - jak w: {{LinkPatrz|wzor}}, * {{Code|numer}} - numer, od którego ma rozpocząc wyszukiwanie, * {{Code|funkcja_sprawdzanie_wyszukania}} - jak w: {{LinkPatrz|funkcja_sprawdzanie_wyszukania}}, * {{Code|funkcja_wzor}} - jak w: {{LinkPatrz|funkcja_wzor}}, * {{Code|licznik_wzor}} - licznik wykorzystywany w ciele funkcji: {{Code|funkcja_sprawdzanie_wyszukania}}, gdy parametr: {{Code|funkcja_wzor}}, nie jest: {{Code|nil}}, tylko funkcją. A {{Code|numer}} w czwartym argumencie (funkcji) ten parametr wskazany jest przez trzeci argument, czyli {{Code|1}}, a jeżeli pierwsze wyszukiwanie się nie powiodło się, ona wyszukuje następne, aż do całkowitego niepowodzenia, lub do nieznalezienia następnych ciągów, wtedy jest zwracana wartość {{Code|nil}}, ale przez tym liczba ponownym wyszukań może być dowolna, w zależności od długości tekstu. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(wzor,licznik_wzor,czy) -- Obojętne jaka definicja, ta funkcja ma definicję, bo w p.ZamianaZnakowaSzeregu jest ona tam potrzebna. end,1); </syntaxhighlight> Opis zmiennych zwracanych w przykładzie: * {{Code|numer_a}} - początek wyszukania, * {{Code|numer_b}} - koniec wyszukania, * {{Code|zawartosc}} i {{Code|dalej}} - zawartość i dalszy element, elementy zwaracane z przechwytywania okazane wzorem {{Code|<nowiki>%{%{(.-)%}%}(%l*)</nowiki>}} za pomocą dwóch części przechwytujących ciągu znakowe. Funkcja ta zwraca dwa dalsze parametry, najwięcej dalszych parametrów (od {{Code|zawartość}}) może być dziewięć, taka bowiem jest właściwość funkcji: <syntaxhighlight lang="lua"> local numer_a,numer_b,a,b,c,d,e,f,g,h,i=mw.ustring.find(szereg,wzor,numer); </syntaxhighlight> Ta funkcja jest w definicji omawianej funkcji. Tę funkcję równie dobrze można napisać prościej: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end ); </syntaxhighlight> == {{Śródtytuł|p.ZamianaZnakowaSzeregu}}{{Code|p.ZamianaZnakowaSzeregu}} == Funkcja do podmiany wyszukiwanego tekstu. Wyszukuje tekst wskazany przez pierwszy argument, drugi parametr jako wzór (wyszukuj szablony z podwójnymi nawiasami klamrowymi), a jeżeli ona zawiera początek następnego szablonu (funkcja wskazana przez trzeci argument), to wyszukuje ona dwa miejsca dalej znakowe, czy jest on tym właściwym szablonem bez innych szablonów, których nie ma tam tego. Następnie po wyszukaniu szablonu przez funkcję podaną jako czwarty argument, usuwa w nim odstępy, i robi z niego inny szablon. Funkcja najpierw wyszukuje według piątej funkcji, dla {{Code|licznik_wzor {{=}} 1}}, sprawdza dodatkowo, jakie są małe litery po linku, jeżeli po nim one są tam. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamianaZnakowaSzeregu=function(szereg,wzor,funkcja_sprawdzanie_wyszukania,funkcja_zamiana,funkcja_wzor,funkcja_licznik)...end; </syntaxhighlight> Parametry: * {{Code|szereg}} {{Patrz|szereg}} - szeregi (ciąg znakowy) do przeanalizowania i przetworzenia, * {{Code|wzor}} {{Patrz|wzor}} - wzór w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}} do przeszukiwania ciągów, * {{Code|funkcja_sprawdzanie_wyszukania}} {{Patrz|funkcja_sprawdzanie_wyszukania}} - sprawdza, czy wyszukany ciąg zawiera pewny element, a jeżeli tak, to tą funkcją w nagłówku powtarzane jest wyszukiwanie aż do skutku, lub do końca szeregu, * {{Code|funkcja_zamiana}} - funkcja robiąca operacje na wydzielonych ciagach znakowych, * {{Code|funkcja_wzor}} {{Patrz|funkcja_wzor}} - obecność tej funkcji szugeruje, że trzeba wywołać {{Code|funkcja_sprawdzanie_wyszukania(szereg,numer,licznik_wzor,numer_a,numer_b,a,b,c,d,e,f,g,h,i);}}, w przeciwnym wypadku {{Code|funkcja_sprawdzanie_wyszukania(szereg,numer,numer_a,numer_b,a,b,c,d,e,f,g,h,i);}}, funkcja ta zwraca wartość logiczną w zmiennej {{Code|tak}}, mówiącej, czy powtórzyć wyszukiwanie, i {{Code|ile}}, tzn. ile ddodatkowych wyrazów dalej ma wyszukać, * {{Code|funkcja_licznik}} - funkcja robiąca operacje na podstawie {{Code|licznik_wzor {{=}} funkcja_licznik(wzor,licznik_wzor,numer_begin);}}, licząca zmienną {{Code|licznik_wzor}}. Funkcja wykorzystuje do działania: {{LinkŚródtytuł|WyszukiwanieNaPodstawieWzorca}}, w celu wyszukiwanych ciągów. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(licznik_wzor,zawartosc,dalej) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"..((licznik_wzor==1)and dalej or ""); end, function(wzor,licznik_wzor,czy) if(czy)then if(licznik_wzor==1)then return wzor.."(%l*)",true;end; end; return wzor,false; end, function(wzor,licznk_wzor,numer_begin) licznik_wzor=licznik_wzor+1; return licznik_wzor; end ); </syntaxhighlight> A jeżeli piąty argument (funkcja) nie zostanie podany, a więc i też szósty, bo wtedy on jest niepotrzebny, to w czwartej funkcji argument pierwszy można pominąć, a w pierwszej zmienną trzecią pomijamy, bo w tych funkcjach po prostu ich nie podajemy, wtedy tę funkcję można napisać w uproszczony sposób: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,numer_a,numer_b,zawartosc) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(zawartosc) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"; end ); </syntaxhighlight> Ta funkcja zwraca zmodyfikowany tekst uzyskany z omawianej funkcji. Tą funkcję możemy wykorzystać do kodowania dowolnego tekstu i operowania na nim, co jest wykorzystane, nie tylko jako przykładach, ale też jako treściwy kod według tego wspomnianego w tym module powyżej. == {{Śródtytuł|p.IteratorLiniiTekstu}}{{Code|p.IteratorLiniiTekstu}} == Funkcja uzyskany tekst iteruje linia po linii według iteracji poniżej przy pomocy operacji {{Code|for}}, gdzie tam możemy robić operacje na liniach, by dodać je póżniej do tablicy linia, by je połączyć przy pomocy łącznika {{Code|\n}}. Poniższy kod robi to samo, co przykład dla funkcji: {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}, tylko, że dłużej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IteratorLiniiTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst, z którego są wydzielane kolejne linie. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local iter=szeregi_modul.IteratorLiniiTekstu(tekst); local tab_linia={}; for linia in iter do linia=mw.ustring.gsub(linia,"%s+",""); table.insert(tab_linia,linia); end; tekst=table.concat(tab_linia,"\n"); </syntaxhighlight> == {{Code|p.ZamianaZnakowaLinii}} == Funkcja zamienia tekst uzyskany wstawiony do pierwszego argumentu tej funkcji, gdzie poszczególne linie są zmieniane przez anonimową funkcję podaną jako drugi argument. Jeżeli ta funkcja zwraca {{Code|nil}} dla jakieś linii, to ta linia nie jest zmieniana, tylko przypisywana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaZnakowaLinii(szereg,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|szereg}} - szereg do przetworzenia, z którego są wydzielane kolejne linie i są robione na nich pewne operacje, * {{Code|funkcja}} - funkcja robiąca operacje na kolenych liniach, nawet pustych. Funkcja korzysta z innej: {{LinkŚródtytuł|IteratorLiniiTekstu}}, w celu uzyskiwania kolejnych linii tekstu, linie są oddzielone znakiem: {{Code|\n}}, w ogólnym podanym tekście. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaLinii(tekst,function(linia) local linia,ile=mw.ustring.gsub(linia,"%s+",""); if(ile>0)then return linia;end; return nil; end); </syntaxhighlight> Ta funkcja usuwa wszystkie odstępy w liniach, ale nie pomiędzy liniami. == {{Code|p.SzeregiOmijanieFunkcyjne}} == Funkcja do operacji na szeregach (ciągach), przy pomocy pewnej funkcji, z pominięciem pewnych ciągów określonym, jako opisywanym przez wzór (zmienna {{Code|wzor}}), podanym do parametru funkcji z operacją na nich podanym jako druga funkcja {{Code|funkcja2}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzeregiOmijanieFunkcyjne(tekst,normalnie,wzor,funkcja,funkcja2)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, omijając pewne elementy lub nie, jeżeli drugi element odpowiada wartości logicznej {{Code|false}}, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć do ośmiu elementów przechwytywanych, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych, * {{Code|funkcja2}} - co ma robić z częściami elementów pomijanych, czyli z elementami przechwytywanymi, funkcja przyjmuje do ośmiu parametrów przechwytywania w podanym wzorze {{Code|wzor}}. Przykład: <syntaxhighlight lang="lua"> local szeregi_modul=require("Module:Szeregi"); local tekst="Oto jest tekst wywołania: \"&#35;\""; -- Elementem omijanym jest "&#35;"; local tekst2=szeregi_modul.SzeregiOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end, function(kod) -- Operacje robione na przechwytywanym ciągu, tzn. z dodawaniem prefiksu początkowego i końcowego; return "&"..kod..";"; end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> -- Widzimy tutaj elementy zakodowane funkcją mw.uri.encode bez elementu omijanego "&#35"; local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> e3jxlbtbqf9dkc6wihfmgnly8d6ee28 558164 558163 2026-10-01T09:35:09Z Persino 2851 558164 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Szeregi}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł służy do obsługi na ciągach (szeregach) języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local szeregi_modul=require("Module:Szeregi"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje opisane w module, która opisuje ta dokumentacja, służą do operacji na szeregach, też na wydzielaniu poszczególnych linii i robienia na nich operacji, a także wykonywania operacji naniepomijanych elementach znakowych. Przykładowe użycie modułu {{Code|{{ld2|Szeregi}}}} jest użyte w module {{Code|{{ld2|Szablonowe/Potrzebne}}}}. Na te stronie będziemy wchodzili do pliku: {{Code|Moduły/Szeregi}} w przestrzeni nazw: {{Code|Wikibooks}}, ściągając jego zawartość w funkcjach: {{LinkŚródtytuł|p.WyszukiwanieNaPodstawieWzorca}}, {{LinkŚródtytuł|p.ZamianaZnakowaSzeregu}}, {{LinkŚródtytuł|p.IteratorLiniiTekstu}}, i {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}. == {{Śródtytuł|p.WyszukiwanieNaPodstawieWzorca}}{{Code|p.WyszukiwanieNaPodstawieWzorca}} == Funkcja wyszukuje począwszy od miejsca pierwszego (trzeci argument) funkcji, czyli z podwójnymi nawiasami klamrowymi, a jeżeli w nim są początki, np. innych szablonów, to wyszukuje kolejne przykładowe dwa miejsca dalej względem poprzedniego przykładowego wyszukiwania. Funkcja do swojego działania wykorzystuje funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WyszukiwanieNaPodstawieWzorca=function(szereg,wzor,numer,funkcja_sprawdzanie_wyszukania,funkcja_wzor,licznik_wzor)...end; </syntaxhighlight> Parametry: * {{Code|szereg}} - jak w: {{LinkPatrz|szereg}}, * {{Code|wzor}} - jak w: {{LinkPatrz|wzor}}, * {{Code|numer}} - numer, od którego ma rozpocząc wyszukiwanie, * {{Code|funkcja_sprawdzanie_wyszukania}} - jak w: {{LinkPatrz|funkcja_sprawdzanie_wyszukania}}, * {{Code|funkcja_wzor}} - jak w: {{LinkPatrz|funkcja_wzor}}, * {{Code|licznik_wzor}} - licznik wykorzystywany w ciele funkcji: {{Code|funkcja_sprawdzanie_wyszukania}}, gdy parametr: {{Code|funkcja_wzor}}, nie jest: {{Code|nil}}, tylko funkcją. A {{Code|numer}} w czwartym argumencie (funkcji) ten parametr wskazany jest przez trzeci argument, czyli {{Code|1}}, a jeżeli pierwsze wyszukiwanie się nie powiodło się, ona wyszukuje następne, aż do całkowitego niepowodzenia, lub do nieznalezienia następnych ciągów, wtedy jest zwracana wartość {{Code|nil}}, ale przez tym liczba ponownym wyszukań może być dowolna, w zależności od długości tekstu. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(wzor,licznik_wzor,czy) -- Obojętne jaka definicja, ta funkcja ma definicję, bo w p.ZamianaZnakowaSzeregu jest ona tam potrzebna. end,1); </syntaxhighlight> Opis zmiennych zwracanych w przykładzie: * {{Code|numer_a}} - początek wyszukania, * {{Code|numer_b}} - koniec wyszukania, * {{Code|zawartosc}} i {{Code|dalej}} - zawartość i dalszy element, elementy zwaracane z przechwytywania okazane wzorem {{Code|<nowiki>%{%{(.-)%}%}(%l*)</nowiki>}} za pomocą dwóch części przechwytujących ciągu znakowe. Funkcja ta zwraca dwa dalsze parametry, najwięcej dalszych parametrów (od {{Code|zawartość}}) może być dziewięć, taka bowiem jest właściwość funkcji: <syntaxhighlight lang="lua"> local numer_a,numer_b,a,b,c,d,e,f,g,h,i=mw.ustring.find(szereg,wzor,numer); </syntaxhighlight> Ta funkcja jest w definicji omawianej funkcji. Tę funkcję równie dobrze można napisać prościej: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end ); </syntaxhighlight> == {{Śródtytuł|p.ZamianaZnakowaSzeregu}}{{Code|p.ZamianaZnakowaSzeregu}} == Funkcja do podmiany wyszukiwanego tekstu. Wyszukuje tekst wskazany przez pierwszy argument, drugi parametr jako wzór (wyszukuj szablony z podwójnymi nawiasami klamrowymi), a jeżeli ona zawiera początek następnego szablonu (funkcja wskazana przez trzeci argument), to wyszukuje ona dwa miejsca dalej znakowe, czy jest on tym właściwym szablonem bez innych szablonów, których nie ma tam tego. Następnie po wyszukaniu szablonu przez funkcję podaną jako czwarty argument, usuwa w nim odstępy, i robi z niego inny szablon. Funkcja najpierw wyszukuje według piątej funkcji, dla {{Code|licznik_wzor {{=}} 1}}, sprawdza dodatkowo, jakie są małe litery po linku, jeżeli po nim one są tam. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamianaZnakowaSzeregu=function(szereg,wzor,funkcja_sprawdzanie_wyszukania,funkcja_zamiana,funkcja_wzor,funkcja_licznik)...end; </syntaxhighlight> Parametry: * {{Code|szereg}} {{Patrz|szereg}} - szeregi (ciąg znakowy) do przeanalizowania i przetworzenia, * {{Code|wzor}} {{Patrz|wzor}} - wzór w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}} do przeszukiwania ciągów, * {{Code|funkcja_sprawdzanie_wyszukania}} {{Patrz|funkcja_sprawdzanie_wyszukania}} - sprawdza, czy wyszukany ciąg zawiera pewny element, a jeżeli tak, to tą funkcją w nagłówku powtarzane jest wyszukiwanie aż do skutku, lub do końca szeregu, * {{Code|funkcja_zamiana}} - funkcja robiąca operacje na wydzielonych ciagach znakowych, * {{Code|funkcja_wzor}} {{Patrz|funkcja_wzor}} - obecność tej funkcji szugeruje, że trzeba wywołać {{Code|funkcja_sprawdzanie_wyszukania(szereg,numer,licznik_wzor,numer_a,numer_b,a,b,c,d,e,f,g,h,i);}}, w przeciwnym wypadku {{Code|funkcja_sprawdzanie_wyszukania(szereg,numer,numer_a,numer_b,a,b,c,d,e,f,g,h,i);}}, funkcja ta zwraca wartość logiczną w zmiennej {{Code|tak}}, mówiącej, czy powtórzyć wyszukiwanie, i {{Code|ile}}, tzn. ile ddodatkowych wyrazów dalej ma wyszukać, * {{Code|funkcja_licznik}} - funkcja robiąca operacje na podstawie {{Code|licznik_wzor {{=}} funkcja_licznik(wzor,licznik_wzor,numer_begin);}}, licząca zmienną {{Code|licznik_wzor}}. Funkcja wykorzystuje do działania: {{LinkŚródtytuł|WyszukiwanieNaPodstawieWzorca}}, w celu wyszukiwanych ciągów. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(licznik_wzor,zawartosc,dalej) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"..((licznik_wzor==1)and dalej or ""); end, function(wzor,licznik_wzor,czy) if(czy)then if(licznik_wzor==1)then return wzor.."(%l*)",true;end; end; return wzor,false; end, function(wzor,licznk_wzor,numer_begin) licznik_wzor=licznik_wzor+1; return licznik_wzor; end ); </syntaxhighlight> A jeżeli piąty argument (funkcja) nie zostanie podany, a więc i też szósty, bo wtedy on jest niepotrzebny, to w czwartej funkcji argument pierwszy można pominąć, a w pierwszej zmienną trzecią pomijamy, bo w tych funkcjach po prostu ich nie podajemy, wtedy tę funkcję można napisać w uproszczony sposób: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,numer_a,numer_b,zawartosc) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(zawartosc) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"; end ); </syntaxhighlight> Ta funkcja zwraca zmodyfikowany tekst uzyskany z omawianej funkcji. Tą funkcję możemy wykorzystać do kodowania dowolnego tekstu i operowania na nim, co jest wykorzystane, nie tylko jako przykładach, ale też jako treściwy kod według tego wspomnianego w tym module powyżej. == {{Śródtytuł|p.IteratorLiniiTekstu}}{{Code|p.IteratorLiniiTekstu}} == Funkcja uzyskany tekst iteruje linia po linii według iteracji poniżej przy pomocy operacji {{Code|for}}, gdzie tam możemy robić operacje na liniach, by dodać je póżniej do tablicy linia, by je połączyć przy pomocy łącznika {{Code|\n}}. Poniższy kod robi to samo, co przykład dla funkcji: {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}, tylko, że dłużej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IteratorLiniiTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst, z którego są wydzielane kolejne linie. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local iter=szeregi_modul.IteratorLiniiTekstu(tekst); local tab_linia={}; for linia in iter do linia=mw.ustring.gsub(linia,"%s+",""); table.insert(tab_linia,linia); end; tekst=table.concat(tab_linia,"\n"); </syntaxhighlight> == {{Śródtytuł|p.ZamianaZnakowaLinii}}{{Code|p.ZamianaZnakowaLinii}} == Funkcja zamienia tekst uzyskany wstawiony do pierwszego argumentu tej funkcji, gdzie poszczególne linie są zmieniane przez anonimową funkcję podaną jako drugi argument. Jeżeli ta funkcja zwraca {{Code|nil}} dla jakieś linii, to ta linia nie jest zmieniana, tylko przypisywana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaZnakowaLinii(szereg,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|szereg}} - szereg do przetworzenia, z którego są wydzielane kolejne linie i są robione na nich pewne operacje, * {{Code|funkcja}} - funkcja robiąca operacje na kolenych liniach, nawet pustych. Funkcja korzysta z innej: {{LinkŚródtytuł|IteratorLiniiTekstu}}, w celu uzyskiwania kolejnych linii tekstu, linie są oddzielone znakiem: {{Code|\n}}, w ogólnym podanym tekście. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaLinii(tekst,function(linia) local linia,ile=mw.ustring.gsub(linia,"%s+",""); if(ile>0)then return linia;end; return nil; end); </syntaxhighlight> Ta funkcja usuwa wszystkie odstępy w liniach, ale nie pomiędzy liniami. == {{Śródtytuł|p.SzeregiOmijanieFunkcyjne}}{{Code|p.SzeregiOmijanieFunkcyjne}} == Funkcja do operacji na szeregach (ciągach), przy pomocy pewnej funkcji, z pominięciem pewnych ciągów określonym, jako opisywanym przez wzór (zmienna {{Code|wzor}}), podanym do parametru funkcji z operacją na nich podanym jako druga funkcja {{Code|funkcja2}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzeregiOmijanieFunkcyjne(tekst,normalnie,wzor,funkcja,funkcja2)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, omijając pewne elementy lub nie, jeżeli drugi element odpowiada wartości logicznej {{Code|false}}, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć do ośmiu elementów przechwytywanych, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych, * {{Code|funkcja2}} - co ma robić z częściami elementów pomijanych, czyli z elementami przechwytywanymi, funkcja przyjmuje do ośmiu parametrów przechwytywania w podanym wzorze {{Code|wzor}}. Przykład: <syntaxhighlight lang="lua"> local szeregi_modul=require("Module:Szeregi"); local tekst="Oto jest tekst wywołania: \"&#35;\""; -- Elementem omijanym jest "&#35;"; local tekst2=szeregi_modul.SzeregiOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end, function(kod) -- Operacje robione na przechwytywanym ciągu, tzn. z dodawaniem prefiksu początkowego i końcowego; return "&"..kod..";"; end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> -- Widzimy tutaj elementy zakodowane funkcją mw.uri.encode bez elementu omijanego "&#35"; local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 1mz7w49yftui3fm06pjcj5gvx9buanv 558165 558164 2026-10-01T09:36:40Z Persino 2851 558165 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Szeregi}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł służy do obsługi na ciągach (szeregach) języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local szeregi_modul=require("Module:Szeregi"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje opisane w module, która opisuje ta dokumentacja, służą do operacji na szeregach, też na wydzielaniu poszczególnych linii i robienia na nich operacji, a także wykonywania operacji naniepomijanych elementach znakowych. Przykładowe użycie modułu {{Code|{{ld2|Szeregi}}}} jest użyte w module {{Code|{{ld2|Szablonowe/Potrzebne}}}}. Na te stronie będziemy wchodzili do pliku: {{Code|Moduły/Szeregi}} w przestrzeni nazw: {{Code|Wikibooks}}, ściągając jego zawartość w funkcjach: {{LinkŚródtytuł|p.WyszukiwanieNaPodstawieWzorca}}, {{LinkŚródtytuł|p.ZamianaZnakowaSzeregu}}, {{LinkŚródtytuł|p.IteratorLiniiTekstu}}, i {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}. == {{Śródtytuł|p.WyszukiwanieNaPodstawieWzorca}}{{Code|p.WyszukiwanieNaPodstawieWzorca}} == Funkcja wyszukuje począwszy od miejsca pierwszego (trzeci argument) funkcji, czyli z podwójnymi nawiasami klamrowymi, a jeżeli w nim są początki, np. innych szablonów, to wyszukuje kolejne przykładowe dwa miejsca dalej względem poprzedniego przykładowego wyszukiwania. Funkcja do swojego działania wykorzystuje funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WyszukiwanieNaPodstawieWzorca=function(szereg,wzor,numer,funkcja_sprawdzanie_wyszukania,funkcja_wzor,licznik_wzor)...end; </syntaxhighlight> Parametry: * {{Code|szereg}} - jak w: {{LinkPatrz|szereg}}, * {{Code|wzor}} - jak w: {{LinkPatrz|wzor}}, * {{Code|numer}} - numer, od którego ma rozpocząc wyszukiwanie, * {{Code|funkcja_sprawdzanie_wyszukania}} - jak w: {{LinkPatrz|funkcja_sprawdzanie_wyszukania}}, * {{Code|funkcja_wzor}} - jak w: {{LinkPatrz|funkcja_wzor}}, * {{Code|licznik_wzor}} - licznik wykorzystywany w ciele funkcji: {{Code|funkcja_sprawdzanie_wyszukania}}, gdy parametr: {{Code|funkcja_wzor}}, nie jest: {{Code|nil}}, tylko funkcją. A {{Code|numer}} w czwartym argumencie (funkcji) ten parametr wskazany jest przez trzeci argument, czyli {{Code|1}}, a jeżeli pierwsze wyszukiwanie się nie powiodło się, ona wyszukuje następne, aż do całkowitego niepowodzenia, lub do nieznalezienia następnych ciągów, wtedy jest zwracana wartość {{Code|nil}}, ale przez tym liczba ponownym wyszukań może być dowolna, w zależności od długości tekstu. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(wzor,licznik_wzor,czy) -- Obojętne jaka definicja, ta funkcja ma definicję, bo w p.ZamianaZnakowaSzeregu jest ona tam potrzebna. end,1); </syntaxhighlight> Opis zmiennych zwracanych w przykładzie: * {{Code|numer_a}} - początek wyszukania, * {{Code|numer_b}} - koniec wyszukania, * {{Code|zawartosc}} i {{Code|dalej}} - zawartość i dalszy element, elementy zwaracane z przechwytywania okazane wzorem {{Code|<nowiki>%{%{(.-)%}%}(%l*)</nowiki>}} za pomocą dwóch części przechwytujących ciągu znakowe. Funkcja ta zwraca dwa dalsze parametry, najwięcej dalszych parametrów (od {{Code|zawartość}}) może być dziewięć, taka bowiem jest właściwość funkcji: <syntaxhighlight lang="lua"> local numer_a,numer_b,a,b,c,d,e,f,g,h,i=mw.ustring.find(szereg,wzor,numer); </syntaxhighlight> Ta funkcja jest w definicji omawianej funkcji. Tę funkcję równie dobrze można napisać prościej: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end ); </syntaxhighlight> == {{Śródtytuł|p.ZamianaZnakowaSzeregu}}{{Code|p.ZamianaZnakowaSzeregu}} == Funkcja do podmiany wyszukiwanego tekstu. Wyszukuje tekst wskazany przez pierwszy argument, drugi parametr jako wzór (wyszukuj szablony z podwójnymi nawiasami klamrowymi), a jeżeli ona zawiera początek następnego szablonu (funkcja wskazana przez trzeci argument), to wyszukuje ona dwa miejsca dalej znakowe, czy jest on tym właściwym szablonem bez innych szablonów, których nie ma tam tego. Następnie po wyszukaniu szablonu przez funkcję podaną jako czwarty argument, usuwa w nim odstępy, i robi z niego inny szablon. Funkcja najpierw wyszukuje według piątej funkcji, dla {{Code|licznik_wzor {{=}} 1}}, sprawdza dodatkowo, jakie są małe litery po linku, jeżeli po nim one są tam. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamianaZnakowaSzeregu=function(szereg,wzor,funkcja_sprawdzanie_wyszukania,funkcja_zamiana,funkcja_wzor,funkcja_licznik)...end; </syntaxhighlight> Parametry: * {{Code|szereg}} {{Patrz|szereg}} - szeregi (ciąg znakowy) do przeanalizowania i przetworzenia, * {{Code|wzor}} {{Patrz|wzor}} - wzór w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}} do przeszukiwania ciągów, * {{Code|funkcja_sprawdzanie_wyszukania}} {{Patrz|funkcja_sprawdzanie_wyszukania}} - sprawdza, czy wyszukany ciąg zawiera pewny element, a jeżeli tak, to tą funkcją w nagłówku powtarzane jest wyszukiwanie aż do skutku, lub do końca szeregu, * {{Code|funkcja_zamiana}} - funkcja robiąca operacje na wydzielonych ciagach znakowych, * {{Code|funkcja_wzor}} {{Patrz|funkcja_wzor}} - obecność tej funkcji szugeruje, że trzeba wywołać {{Code|funkcja_sprawdzanie_wyszukania(szereg,numer,licznik_wzor,numer_a,numer_b,a,b,c,d,e,f,g,h,i);}}, w przeciwnym wypadku {{Code|funkcja_sprawdzanie_wyszukania(szereg,numer,numer_a,numer_b,a,b,c,d,e,f,g,h,i);}}, funkcja ta zwraca wartość logiczną w zmiennej {{Code|tak}}, mówiącej, czy powtórzyć wyszukiwanie, i {{Code|ile}}, tzn. ile ddodatkowych wyrazów dalej ma wyszukać, * {{Code|funkcja_licznik}} - funkcja robiąca operacje na podstawie {{Code|licznik_wzor {{=}} funkcja_licznik(wzor,licznik_wzor,numer_begin);}}, licząca zmienną {{Code|licznik_wzor}}. Funkcja wykorzystuje do działania: {{LinkŚródtytuł|p.WyszukiwanieNaPodstawieWzorca}}, w celu wyszukiwanych ciągów. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(licznik_wzor,zawartosc,dalej) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"..((licznik_wzor==1)and dalej or ""); end, function(wzor,licznik_wzor,czy) if(czy)then if(licznik_wzor==1)then return wzor.."(%l*)",true;end; end; return wzor,false; end, function(wzor,licznk_wzor,numer_begin) licznik_wzor=licznik_wzor+1; return licznik_wzor; end ); </syntaxhighlight> A jeżeli piąty argument (funkcja) nie zostanie podany, a więc i też szósty, bo wtedy on jest niepotrzebny, to w czwartej funkcji argument pierwszy można pominąć, a w pierwszej zmienną trzecią pomijamy, bo w tych funkcjach po prostu ich nie podajemy, wtedy tę funkcję można napisać w uproszczony sposób: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,numer_a,numer_b,zawartosc) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(zawartosc) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"; end ); </syntaxhighlight> Ta funkcja zwraca zmodyfikowany tekst uzyskany z omawianej funkcji. Tą funkcję możemy wykorzystać do kodowania dowolnego tekstu i operowania na nim, co jest wykorzystane, nie tylko jako przykładach, ale też jako treściwy kod według tego wspomnianego w tym module powyżej. == {{Śródtytuł|p.IteratorLiniiTekstu}}{{Code|p.IteratorLiniiTekstu}} == Funkcja uzyskany tekst iteruje linia po linii według iteracji poniżej przy pomocy operacji {{Code|for}}, gdzie tam możemy robić operacje na liniach, by dodać je póżniej do tablicy linia, by je połączyć przy pomocy łącznika {{Code|\n}}. Poniższy kod robi to samo, co przykład dla funkcji: {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}, tylko, że dłużej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IteratorLiniiTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst, z którego są wydzielane kolejne linie. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local iter=szeregi_modul.IteratorLiniiTekstu(tekst); local tab_linia={}; for linia in iter do linia=mw.ustring.gsub(linia,"%s+",""); table.insert(tab_linia,linia); end; tekst=table.concat(tab_linia,"\n"); </syntaxhighlight> == {{Śródtytuł|p.ZamianaZnakowaLinii}}{{Code|p.ZamianaZnakowaLinii}} == Funkcja zamienia tekst uzyskany wstawiony do pierwszego argumentu tej funkcji, gdzie poszczególne linie są zmieniane przez anonimową funkcję podaną jako drugi argument. Jeżeli ta funkcja zwraca {{Code|nil}} dla jakieś linii, to ta linia nie jest zmieniana, tylko przypisywana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaZnakowaLinii(szereg,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|szereg}} - szereg do przetworzenia, z którego są wydzielane kolejne linie i są robione na nich pewne operacje, * {{Code|funkcja}} - funkcja robiąca operacje na kolenych liniach, nawet pustych. Funkcja korzysta z innej: {{LinkŚródtytuł|p.IteratorLiniiTekstu}}, w celu uzyskiwania kolejnych linii tekstu, linie są oddzielone znakiem: {{Code|\n}}, w ogólnym podanym tekście. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaLinii(tekst,function(linia) local linia,ile=mw.ustring.gsub(linia,"%s+",""); if(ile>0)then return linia;end; return nil; end); </syntaxhighlight> Ta funkcja usuwa wszystkie odstępy w liniach, ale nie pomiędzy liniami. == {{Śródtytuł|p.SzeregiOmijanieFunkcyjne}}{{Code|p.SzeregiOmijanieFunkcyjne}} == Funkcja do operacji na szeregach (ciągach), przy pomocy pewnej funkcji, z pominięciem pewnych ciągów określonym, jako opisywanym przez wzór (zmienna {{Code|wzor}}), podanym do parametru funkcji z operacją na nich podanym jako druga funkcja {{Code|funkcja2}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzeregiOmijanieFunkcyjne(tekst,normalnie,wzor,funkcja,funkcja2)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, omijając pewne elementy lub nie, jeżeli drugi element odpowiada wartości logicznej {{Code|false}}, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć do ośmiu elementów przechwytywanych, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych, * {{Code|funkcja2}} - co ma robić z częściami elementów pomijanych, czyli z elementami przechwytywanymi, funkcja przyjmuje do ośmiu parametrów przechwytywania w podanym wzorze {{Code|wzor}}. Przykład: <syntaxhighlight lang="lua"> local szeregi_modul=require("Module:Szeregi"); local tekst="Oto jest tekst wywołania: \"&#35;\""; -- Elementem omijanym jest "&#35;"; local tekst2=szeregi_modul.SzeregiOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end, function(kod) -- Operacje robione na przechwytywanym ciągu, tzn. z dodawaniem prefiksu początkowego i końcowego; return "&"..kod..";"; end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> -- Widzimy tutaj elementy zakodowane funkcją mw.uri.encode bez elementu omijanego "&#35"; local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> n968uulyypi7qgrym7y6acz50gu90n6 558174 558165 2026-10-01T10:00:59Z Persino 2851 /* {{Śródtytuł|p.SzeregiOmijanieFunkcyjne}}{{Code|p.SzeregiOmijanieFunkcyjne}} */ 558174 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Szeregi}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł służy do obsługi na ciągach (szeregach) języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local szeregi_modul=require("Module:Szeregi"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje opisane w module, która opisuje ta dokumentacja, służą do operacji na szeregach, też na wydzielaniu poszczególnych linii i robienia na nich operacji, a także wykonywania operacji naniepomijanych elementach znakowych. Przykładowe użycie modułu {{Code|{{ld2|Szeregi}}}} jest użyte w module {{Code|{{ld2|Szablonowe/Potrzebne}}}}. Na te stronie będziemy wchodzili do pliku: {{Code|Moduły/Szeregi}} w przestrzeni nazw: {{Code|Wikibooks}}, ściągając jego zawartość w funkcjach: {{LinkŚródtytuł|p.WyszukiwanieNaPodstawieWzorca}}, {{LinkŚródtytuł|p.ZamianaZnakowaSzeregu}}, {{LinkŚródtytuł|p.IteratorLiniiTekstu}}, i {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}. == {{Śródtytuł|p.WyszukiwanieNaPodstawieWzorca}}{{Code|p.WyszukiwanieNaPodstawieWzorca}} == Funkcja wyszukuje począwszy od miejsca pierwszego (trzeci argument) funkcji, czyli z podwójnymi nawiasami klamrowymi, a jeżeli w nim są początki, np. innych szablonów, to wyszukuje kolejne przykładowe dwa miejsca dalej względem poprzedniego przykładowego wyszukiwania. Funkcja do swojego działania wykorzystuje funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WyszukiwanieNaPodstawieWzorca=function(szereg,wzor,numer,funkcja_sprawdzanie_wyszukania,funkcja_wzor,licznik_wzor)...end; </syntaxhighlight> Parametry: * {{Code|szereg}} - jak w: {{LinkPatrz|szereg}}, * {{Code|wzor}} - jak w: {{LinkPatrz|wzor}}, * {{Code|numer}} - numer, od którego ma rozpocząc wyszukiwanie, * {{Code|funkcja_sprawdzanie_wyszukania}} - jak w: {{LinkPatrz|funkcja_sprawdzanie_wyszukania}}, * {{Code|funkcja_wzor}} - jak w: {{LinkPatrz|funkcja_wzor}}, * {{Code|licznik_wzor}} - licznik wykorzystywany w ciele funkcji: {{Code|funkcja_sprawdzanie_wyszukania}}, gdy parametr: {{Code|funkcja_wzor}}, nie jest: {{Code|nil}}, tylko funkcją. A {{Code|numer}} w czwartym argumencie (funkcji) ten parametr wskazany jest przez trzeci argument, czyli {{Code|1}}, a jeżeli pierwsze wyszukiwanie się nie powiodło się, ona wyszukuje następne, aż do całkowitego niepowodzenia, lub do nieznalezienia następnych ciągów, wtedy jest zwracana wartość {{Code|nil}}, ale przez tym liczba ponownym wyszukań może być dowolna, w zależności od długości tekstu. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(wzor,licznik_wzor,czy) -- Obojętne jaka definicja, ta funkcja ma definicję, bo w p.ZamianaZnakowaSzeregu jest ona tam potrzebna. end,1); </syntaxhighlight> Opis zmiennych zwracanych w przykładzie: * {{Code|numer_a}} - początek wyszukania, * {{Code|numer_b}} - koniec wyszukania, * {{Code|zawartosc}} i {{Code|dalej}} - zawartość i dalszy element, elementy zwaracane z przechwytywania okazane wzorem {{Code|<nowiki>%{%{(.-)%}%}(%l*)</nowiki>}} za pomocą dwóch części przechwytujących ciągu znakowe. Funkcja ta zwraca dwa dalsze parametry, najwięcej dalszych parametrów (od {{Code|zawartość}}) może być dziewięć, taka bowiem jest właściwość funkcji: <syntaxhighlight lang="lua"> local numer_a,numer_b,a,b,c,d,e,f,g,h,i=mw.ustring.find(szereg,wzor,numer); </syntaxhighlight> Ta funkcja jest w definicji omawianej funkcji. Tę funkcję równie dobrze można napisać prościej: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end ); </syntaxhighlight> == {{Śródtytuł|p.ZamianaZnakowaSzeregu}}{{Code|p.ZamianaZnakowaSzeregu}} == Funkcja do podmiany wyszukiwanego tekstu. Wyszukuje tekst wskazany przez pierwszy argument, drugi parametr jako wzór (wyszukuj szablony z podwójnymi nawiasami klamrowymi), a jeżeli ona zawiera początek następnego szablonu (funkcja wskazana przez trzeci argument), to wyszukuje ona dwa miejsca dalej znakowe, czy jest on tym właściwym szablonem bez innych szablonów, których nie ma tam tego. Następnie po wyszukaniu szablonu przez funkcję podaną jako czwarty argument, usuwa w nim odstępy, i robi z niego inny szablon. Funkcja najpierw wyszukuje według piątej funkcji, dla {{Code|licznik_wzor {{=}} 1}}, sprawdza dodatkowo, jakie są małe litery po linku, jeżeli po nim one są tam. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamianaZnakowaSzeregu=function(szereg,wzor,funkcja_sprawdzanie_wyszukania,funkcja_zamiana,funkcja_wzor,funkcja_licznik)...end; </syntaxhighlight> Parametry: * {{Code|szereg}} {{Patrz|szereg}} - szeregi (ciąg znakowy) do przeanalizowania i przetworzenia, * {{Code|wzor}} {{Patrz|wzor}} - wzór w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}} do przeszukiwania ciągów, * {{Code|funkcja_sprawdzanie_wyszukania}} {{Patrz|funkcja_sprawdzanie_wyszukania}} - sprawdza, czy wyszukany ciąg zawiera pewny element, a jeżeli tak, to tą funkcją w nagłówku powtarzane jest wyszukiwanie aż do skutku, lub do końca szeregu, * {{Code|funkcja_zamiana}} - funkcja robiąca operacje na wydzielonych ciagach znakowych, * {{Code|funkcja_wzor}} {{Patrz|funkcja_wzor}} - obecność tej funkcji szugeruje, że trzeba wywołać {{Code|funkcja_sprawdzanie_wyszukania(szereg,numer,licznik_wzor,numer_a,numer_b,a,b,c,d,e,f,g,h,i);}}, w przeciwnym wypadku {{Code|funkcja_sprawdzanie_wyszukania(szereg,numer,numer_a,numer_b,a,b,c,d,e,f,g,h,i);}}, funkcja ta zwraca wartość logiczną w zmiennej {{Code|tak}}, mówiącej, czy powtórzyć wyszukiwanie, i {{Code|ile}}, tzn. ile ddodatkowych wyrazów dalej ma wyszukać, * {{Code|funkcja_licznik}} - funkcja robiąca operacje na podstawie {{Code|licznik_wzor {{=}} funkcja_licznik(wzor,licznik_wzor,numer_begin);}}, licząca zmienną {{Code|licznik_wzor}}. Funkcja wykorzystuje do działania: {{LinkŚródtytuł|p.WyszukiwanieNaPodstawieWzorca}}, w celu wyszukiwanych ciągów. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(licznik_wzor,zawartosc,dalej) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"..((licznik_wzor==1)and dalej or ""); end, function(wzor,licznik_wzor,czy) if(czy)then if(licznik_wzor==1)then return wzor.."(%l*)",true;end; end; return wzor,false; end, function(wzor,licznk_wzor,numer_begin) licznik_wzor=licznik_wzor+1; return licznik_wzor; end ); </syntaxhighlight> A jeżeli piąty argument (funkcja) nie zostanie podany, a więc i też szósty, bo wtedy on jest niepotrzebny, to w czwartej funkcji argument pierwszy można pominąć, a w pierwszej zmienną trzecią pomijamy, bo w tych funkcjach po prostu ich nie podajemy, wtedy tę funkcję można napisać w uproszczony sposób: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,numer_a,numer_b,zawartosc) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(zawartosc) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"; end ); </syntaxhighlight> Ta funkcja zwraca zmodyfikowany tekst uzyskany z omawianej funkcji. Tą funkcję możemy wykorzystać do kodowania dowolnego tekstu i operowania na nim, co jest wykorzystane, nie tylko jako przykładach, ale też jako treściwy kod według tego wspomnianego w tym module powyżej. == {{Śródtytuł|p.IteratorLiniiTekstu}}{{Code|p.IteratorLiniiTekstu}} == Funkcja uzyskany tekst iteruje linia po linii według iteracji poniżej przy pomocy operacji {{Code|for}}, gdzie tam możemy robić operacje na liniach, by dodać je póżniej do tablicy linia, by je połączyć przy pomocy łącznika {{Code|\n}}. Poniższy kod robi to samo, co przykład dla funkcji: {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}, tylko, że dłużej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IteratorLiniiTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst, z którego są wydzielane kolejne linie. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local iter=szeregi_modul.IteratorLiniiTekstu(tekst); local tab_linia={}; for linia in iter do linia=mw.ustring.gsub(linia,"%s+",""); table.insert(tab_linia,linia); end; tekst=table.concat(tab_linia,"\n"); </syntaxhighlight> == {{Śródtytuł|p.ZamianaZnakowaLinii}}{{Code|p.ZamianaZnakowaLinii}} == Funkcja zamienia tekst uzyskany wstawiony do pierwszego argumentu tej funkcji, gdzie poszczególne linie są zmieniane przez anonimową funkcję podaną jako drugi argument. Jeżeli ta funkcja zwraca {{Code|nil}} dla jakieś linii, to ta linia nie jest zmieniana, tylko przypisywana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaZnakowaLinii(szereg,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|szereg}} - szereg do przetworzenia, z którego są wydzielane kolejne linie i są robione na nich pewne operacje, * {{Code|funkcja}} - funkcja robiąca operacje na kolenych liniach, nawet pustych. Funkcja korzysta z innej: {{LinkŚródtytuł|p.IteratorLiniiTekstu}}, w celu uzyskiwania kolejnych linii tekstu, linie są oddzielone znakiem: {{Code|\n}}, w ogólnym podanym tekście. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaLinii(tekst,function(linia) local linia,ile=mw.ustring.gsub(linia,"%s+",""); if(ile>0)then return linia;end; return nil; end); </syntaxhighlight> Ta funkcja usuwa wszystkie odstępy w liniach, ale nie pomiędzy liniami. == {{Śródtytuł|p.SzeregiOmijanieFunkcyjne}}{{Code|p.SzeregiOmijanieFunkcyjne}} == Funkcja do operacji na szeregach (ciągach), przy pomocy pewnej funkcji, z pominięciem pewnych ciągów określonym, jako opisywanym przez wzór (zmienna {{Code|wzor}}), podanym do parametru funkcji z operacją na nich podanym jako druga funkcja {{Code|funkcja2}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzeregiOmijanieFunkcyjne(tekst,normalnie,wzor,funkcja,funkcja2)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, omijając pewne elementy lub nie, jeżeli drugi element odpowiada wartości logicznej {{Code|false}}, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć do ośmiu elementów przechwytywanych, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych, * {{Code|funkcja2}} - co ma robić z częściami elementów pomijanych, czyli z elementami przechwytywanymi, funkcja przyjmuje do ośmiu parametrów przechwytywania w podanym wzorze {{Code|wzor}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Szeregi/SzeregiOmijanieFunkcyjne/}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> mv296lssbp9r6478nvgv64kvtqv2cd1 558177 558174 2026-10-01T10:44:46Z Persino 2851 558177 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Szeregi}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł służy do obsługi na ciągach (szeregach) języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local szeregi_modul=require("Module:Szeregi"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje opisane w module, która opisuje ta dokumentacja, służą do operacji na szeregach, też na wydzielaniu poszczególnych linii i robienia na nich operacji, a także wykonywania operacji naniepomijanych elementach znakowych. Przykładowe użycie modułu {{Code|{{ld2|Szeregi}}}} jest użyte w module {{Code|{{ld2|Szablonowe/Potrzebne}}}}. Na te stronie będziemy wchodzili do pliku: {{Code|Moduły/Szeregi}} w przestrzeni nazw: {{Code|Wikibooks}}, ściągając jego zawartość w funkcjach: {{LinkŚródtytuł|p.WyszukiwanieNaPodstawieWzorca}}, {{LinkŚródtytuł|p.ZamianaZnakowaSzeregu}}, {{LinkŚródtytuł|p.IteratorLiniiTekstu}}, i {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}. == {{Śródtytuł|p.WyszukiwanieNaPodstawieWzorca}}{{Code|p.WyszukiwanieNaPodstawieWzorca}} == Funkcja wyszukuje począwszy od miejsca pierwszego (trzeci argument) funkcji, czyli z podwójnymi nawiasami klamrowymi, a jeżeli w nim są początki, np. innych szablonów, to wyszukuje kolejne przykładowe dwa miejsca dalej względem poprzedniego przykładowego wyszukiwania. Funkcja do swojego działania wykorzystuje funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WyszukiwanieNaPodstawieWzorca=function(szereg,wzor,numer,funkcja_sprawdzanie_wyszukania,funkcja_wzor,licznik_wzor)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szereg}} | _1 = Jak w: {{LinkPatrz|szereg}}. | 2 = {{Code|wzor}} | _2 = Jak w: {{LinkPatrz|wzor}}. | 3 = {{Code|numer}} | _3 = Numer, od którego ma rozpocząc wyszukiwanie. | 4 = {{Code|funkcja_sprawdzanie_wyszukania}} | _4 = Jak w: {{LinkPatrz|funkcja_sprawdzanie_wyszukania}}. | 5 = {{Code|funkcja_wzor}} | _5 = Jak w: {{LinkPatrz|funkcja_wzor}}. | 6 = {{Code|licznik_wzor}} | _6 = Licznik wykorzystywany w ciele funkcji: {{Code|funkcja_sprawdzanie_wyszukania}}, gdy parametr: {{Code|funkcja_wzor}}, nie jest: {{Code|nil}}, tylko funkcją. }} A {{Code|numer}} w czwartym argumencie (funkcji) ten parametr wskazany jest przez trzeci argument, czyli {{Code|1}}, a jeżeli pierwsze wyszukiwanie się nie powiodło się, ona wyszukuje następne, aż do całkowitego niepowodzenia, lub do nieznalezienia następnych ciągów, wtedy jest zwracana wartość {{Code|nil}}, ale przez tym liczba ponownym wyszukań może być dowolna, w zależności od długości tekstu. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(wzor,licznik_wzor,czy) -- Obojętne jaka definicja, ta funkcja ma definicję, bo w p.ZamianaZnakowaSzeregu jest ona tam potrzebna. end,1); </syntaxhighlight> Opis zmiennych zwracanych w przykładzie: {{OpisParametrów | 1 = {{Code|numer_a}} | _1 = Początek wyszukania. | 2 = {{Code|numer_b}} | _2 = Koniec wyszukania. | 3 = {{Code|zawartosc}} i {{Code|dalej}} | _3 = Zawartość i dalszy element, elementy zwaracane z przechwytywania okazane wzorem {{Code|<nowiki>%{%{(.-)%}%}(%l*)</nowiki>}} za pomocą dwóch części przechwytujących ciągu znakowe. }} Funkcja ta zwraca dwa dalsze parametry, najwięcej dalszych parametrów (od {{Code|zawartość}}) może być dziewięć, taka bowiem jest właściwość funkcji: <syntaxhighlight lang="lua"> local numer_a,numer_b,a,b,c,d,e,f,g,h,i=mw.ustring.find(szereg,wzor,numer); </syntaxhighlight> Ta funkcja jest w definicji omawianej funkcji. Tę funkcję równie dobrze można napisać prościej: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end ); </syntaxhighlight> == {{Śródtytuł|p.ZamianaZnakowaSzeregu}}{{Code|p.ZamianaZnakowaSzeregu}} == Funkcja do podmiany wyszukiwanego tekstu. Wyszukuje tekst wskazany przez pierwszy argument, drugi parametr jako wzór (wyszukuj szablony z podwójnymi nawiasami klamrowymi), a jeżeli ona zawiera początek następnego szablonu (funkcja wskazana przez trzeci argument), to wyszukuje ona dwa miejsca dalej znakowe, czy jest on tym właściwym szablonem bez innych szablonów, których nie ma tam tego. Następnie po wyszukaniu szablonu przez funkcję podaną jako czwarty argument, usuwa w nim odstępy, i robi z niego inny szablon. Funkcja najpierw wyszukuje według piątej funkcji, dla {{Code|licznik_wzor {{=}} 1}}, sprawdza dodatkowo, jakie są małe litery po linku, jeżeli po nim one są tam. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamianaZnakowaSzeregu=function(szereg,wzor,funkcja_sprawdzanie_wyszukania,funkcja_zamiana,funkcja_wzor,funkcja_licznik)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szereg}} {{Patrz|szereg}} | _1 = Szeregi (ciąg znakowy) do przeanalizowania i przetworzenia. | 2 = {{Code|wzor}} {{Patrz|wzor}} | _2 = Wzór w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}} do przeszukiwania ciągów. | 3 = {{Code|funkcja_sprawdzanie_wyszukania}} {{Patrz|funkcja_sprawdzanie_wyszukania}} | _3 = Sprawdza, czy wyszukany ciąg zawiera pewny element, a jeżeli tak, to tą funkcją w nagłówku powtarzane jest wyszukiwanie aż do skutku, lub do końca szeregu. | 4 = {{Code|funkcja_zamiana}} | _4 = Funkcja robiąca operacje na wydzielonych ciągach znakowych. | 5 = {{Code|funkcja_wzor}} {{Patrz|funkcja_wzor}} | _5 = Obecność tej funkcji sugeruje, że trzeba wywołać {{Code|funkcja_sprawdzanie_wyszukania(szereg,numer,licznik_wzor,numer_a,numer_b,a,b,c,d,e,f,g,h,i);}}, w przeciwnym wypadku {{Code|funkcja_sprawdzanie_wyszukania(szereg,numer,numer_a,numer_b,a,b,c,d,e,f,g,h,i);}}, funkcja ta zwraca wartość logiczną w zmiennej {{Code|tak}}, mówiącej, czy powtórzyć wyszukiwanie, i {{Code|ile}}, tzn. ile ddodatkowych wyrazów dalej ma wyszukać. | 6 = {{Code|funkcja_licznik}} | _6 = Funkcja robiąca operacje na podstawie {{Code|licznik_wzor {{=}} funkcja_licznik(wzor,licznik_wzor,numer_begin);}}, licząca zmienną {{Code|licznik_wzor}}. }} Funkcja wykorzystuje do działania: {{LinkŚródtytuł|p.WyszukiwanieNaPodstawieWzorca}}, w celu wyszukiwanych ciągów. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(licznik_wzor,zawartosc,dalej) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"..((licznik_wzor==1)and dalej or ""); end, function(wzor,licznik_wzor,czy) if(czy)then if(licznik_wzor==1)then return wzor.."(%l*)",true;end; end; return wzor,false; end, function(wzor,licznk_wzor,numer_begin) licznik_wzor=licznik_wzor+1; return licznik_wzor; end ); </syntaxhighlight> A jeżeli piąty argument (funkcja) nie zostanie podany, a więc i też szósty, bo wtedy on jest niepotrzebny, to w czwartej funkcji argument pierwszy można pominąć, a w pierwszej zmienną trzecią pomijamy, bo w tych funkcjach po prostu ich nie podajemy, wtedy tę funkcję można napisać w uproszczony sposób: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,numer_a,numer_b,zawartosc) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(zawartosc) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"; end ); </syntaxhighlight> Ta funkcja zwraca zmodyfikowany tekst uzyskany z omawianej funkcji. Tą funkcję możemy wykorzystać do kodowania dowolnego tekstu i operowania na nim, co jest wykorzystane, nie tylko jako przykładach, ale też jako treściwy kod według tego wspomnianego w tym module powyżej. == {{Śródtytuł|p.IteratorLiniiTekstu}}{{Code|p.IteratorLiniiTekstu}} == Funkcja uzyskany tekst iteruje linia po linii według iteracji poniżej przy pomocy operacji {{Code|for}}, gdzie tam możemy robić operacje na liniach, by dodać je póżniej do tablicy linia, by je połączyć przy pomocy łącznika {{Code|\n}}. Poniższy kod robi to samo, co przykład dla funkcji: {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}, tylko, że dłużej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IteratorLiniiTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Tekst, z którego są wydzielane kolejne linie. }} Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local iter=szeregi_modul.IteratorLiniiTekstu(tekst); local tab_linia={}; for linia in iter do linia=mw.ustring.gsub(linia,"%s+",""); table.insert(tab_linia,linia); end; tekst=table.concat(tab_linia,"\n"); </syntaxhighlight> == {{Śródtytuł|p.ZamianaZnakowaLinii}}{{Code|p.ZamianaZnakowaLinii}} == Funkcja zamienia tekst uzyskany wstawiony do pierwszego argumentu tej funkcji, gdzie poszczególne linie są zmieniane przez anonimową funkcję podaną jako drugi argument. Jeżeli ta funkcja zwraca {{Code|nil}} dla jakieś linii, to ta linia nie jest zmieniana, tylko przypisywana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaZnakowaLinii(szereg,funkcja)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szereg}} | _1 = Szereg do przetworzenia, z którego są wydzielane kolejne linie i są robione na nich pewne operacje. | 2 = {{Code|funkcja}} | _2 = Funkcja robiąca operacje na kolejnych liniach, nawet pustych. }} Funkcja korzysta z innej: {{LinkŚródtytuł|p.IteratorLiniiTekstu}}, w celu uzyskiwania kolejnych linii tekstu, linie są oddzielone znakiem: {{Code|\n}}, w ogólnym podanym tekście. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaLinii(tekst,function(linia) local linia,ile=mw.ustring.gsub(linia,"%s+",""); if(ile>0)then return linia;end; return nil; end); </syntaxhighlight> Ta funkcja usuwa wszystkie odstępy w liniach, ale nie pomiędzy liniami. == {{Śródtytuł|p.SzeregiOmijanieFunkcyjne}}{{Code|p.SzeregiOmijanieFunkcyjne}} == Funkcja do operacji na szeregach (ciągach), przy pomocy pewnej funkcji, z pominięciem pewnych ciągów określonym, jako opisywanym przez wzór (zmienna {{Code|wzor}}), podanym do parametru funkcji z operacją na nich podanym jako druga funkcja {{Code|funkcja2}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzeregiOmijanieFunkcyjne(tekst,normalnie,wzor,funkcja,funkcja2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Tekst do przetworzenia, omijając pewne elementy, jeżeli drugi element odpowiada wartości logicznej {{Code|false}}, przeciwnie już nie. | 2 = {{Code|normalnie}} | _2 = Czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi. | 3 = {{Code|wzor}} | _3 = Wzór do elementów pomijanych, wzór może mieć do ośmiu elementów przechwytywanych. | 4 = {{Code|funkcja}} | _4 = Funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. | 5 = {{Code|funkcja2}} | _5 = Co ma robić z częściami elementów pomijanych, czyli z elementami przechwytywanymi, funkcja przyjmuje do ośmiu parametrów przechwytywania w podanym wzorze {{Code|wzor}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Szeregi/SzeregiOmijanieFunkcyjne/}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> sdq9vwzgr6tz9d8ykg1rc8xteclxej8 558178 558177 2026-10-01T11:28:35Z Persino 2851 /* {{Śródtytuł|p.ZamianaZnakowaSzeregu}}{{Code|p.ZamianaZnakowaSzeregu}} */ 558178 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Szeregi}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł służy do obsługi na ciągach (szeregach) języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local szeregi_modul=require("Module:Szeregi"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje opisane w module, która opisuje ta dokumentacja, służą do operacji na szeregach, też na wydzielaniu poszczególnych linii i robienia na nich operacji, a także wykonywania operacji naniepomijanych elementach znakowych. Przykładowe użycie modułu {{Code|{{ld2|Szeregi}}}} jest użyte w module {{Code|{{ld2|Szablonowe/Potrzebne}}}}. Na te stronie będziemy wchodzili do pliku: {{Code|Moduły/Szeregi}} w przestrzeni nazw: {{Code|Wikibooks}}, ściągając jego zawartość w funkcjach: {{LinkŚródtytuł|p.WyszukiwanieNaPodstawieWzorca}}, {{LinkŚródtytuł|p.ZamianaZnakowaSzeregu}}, {{LinkŚródtytuł|p.IteratorLiniiTekstu}}, i {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}. == {{Śródtytuł|p.WyszukiwanieNaPodstawieWzorca}}{{Code|p.WyszukiwanieNaPodstawieWzorca}} == Funkcja wyszukuje począwszy od miejsca pierwszego (trzeci argument) funkcji, czyli z podwójnymi nawiasami klamrowymi, a jeżeli w nim są początki, np. innych szablonów, to wyszukuje kolejne przykładowe dwa miejsca dalej względem poprzedniego przykładowego wyszukiwania. Funkcja do swojego działania wykorzystuje funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WyszukiwanieNaPodstawieWzorca=function(szereg,wzor,numer,funkcja_sprawdzanie_wyszukania,funkcja_wzor,licznik_wzor)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szereg}} | _1 = Jak w: {{LinkPatrz|szereg}}. | 2 = {{Code|wzor}} | _2 = Jak w: {{LinkPatrz|wzor}}. | 3 = {{Code|numer}} | _3 = Numer, od którego ma rozpocząc wyszukiwanie. | 4 = {{Code|funkcja_sprawdzanie_wyszukania}} | _4 = Jak w: {{LinkPatrz|funkcja_sprawdzanie_wyszukania}}. | 5 = {{Code|funkcja_wzor}} | _5 = Jak w: {{LinkPatrz|funkcja_wzor}}. | 6 = {{Code|licznik_wzor}} | _6 = Licznik wykorzystywany w ciele funkcji: {{Code|funkcja_sprawdzanie_wyszukania}}, gdy parametr: {{Code|funkcja_wzor}}, nie jest: {{Code|nil}}, tylko funkcją. }} A {{Code|numer}} w czwartym argumencie (funkcji) ten parametr wskazany jest przez trzeci argument, czyli {{Code|1}}, a jeżeli pierwsze wyszukiwanie się nie powiodło się, ona wyszukuje następne, aż do całkowitego niepowodzenia, lub do nieznalezienia następnych ciągów, wtedy jest zwracana wartość {{Code|nil}}, ale przez tym liczba ponownym wyszukań może być dowolna, w zależności od długości tekstu. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(wzor,licznik_wzor,czy) -- Obojętne jaka definicja, ta funkcja ma definicję, bo w p.ZamianaZnakowaSzeregu jest ona tam potrzebna. end,1); </syntaxhighlight> Opis zmiennych zwracanych w przykładzie: {{OpisParametrów | 1 = {{Code|numer_a}} | _1 = Początek wyszukania. | 2 = {{Code|numer_b}} | _2 = Koniec wyszukania. | 3 = {{Code|zawartosc}} i {{Code|dalej}} | _3 = Zawartość i dalszy element, elementy zwaracane z przechwytywania okazane wzorem {{Code|<nowiki>%{%{(.-)%}%}(%l*)</nowiki>}} za pomocą dwóch części przechwytujących ciągu znakowe. }} Funkcja ta zwraca dwa dalsze parametry, najwięcej dalszych parametrów (od {{Code|zawartość}}) może być dziewięć, taka bowiem jest właściwość funkcji: <syntaxhighlight lang="lua"> local numer_a,numer_b,a,b,c,d,e,f,g,h,i=mw.ustring.find(szereg,wzor,numer); </syntaxhighlight> Ta funkcja jest w definicji omawianej funkcji. Tę funkcję równie dobrze można napisać prościej: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end ); </syntaxhighlight> == {{Śródtytuł|p.ZamianaZnakowaSzeregu}}{{Code|p.ZamianaZnakowaSzeregu}} == Funkcja do podmiany wyszukiwanego tekstu. Wyszukuje tekst wskazany przez pierwszy argument, drugi parametr jako wzór (wyszukuj szablony z podwójnymi nawiasami klamrowymi), a jeżeli ona zawiera początek następnego szablonu (funkcja wskazana przez trzeci argument), to wyszukuje ona dwa miejsca dalej znakowe, czy jest on tym właściwym szablonem bez innych szablonów, których nie ma tam tego. Następnie po wyszukaniu szablonu przez funkcję podaną jako czwarty argument, usuwa w nim odstępy, i robi z niego inny szablon. Funkcja najpierw wyszukuje według piątej funkcji, dla {{Code|licznik_wzor {{=}} 1}}, sprawdza dodatkowo, jakie są małe litery po linku, jeżeli po nim one są tam. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamianaZnakowaSzeregu=function(szereg,wzor,funkcja_sprawdzanie_wyszukania,funkcja_zamiana,funkcja_wzor,funkcja_licznik)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szereg}} {{Patrz|szereg}} | _1 = Szeregi (ciąg znakowy) do przeanalizowania i przetworzenia. | 2 = {{Code|wzor}} {{Patrz|wzor}} | _2 = Wzór w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}} do przeszukiwania ciągów. | 3 = {{Code|funkcja_sprawdzanie_wyszukania}} {{Patrz|funkcja_sprawdzanie_wyszukania}} | _3 = Sprawdza, czy wyszukany ciąg zawiera pewny element, a jeżeli tak, to tą funkcją w nagłówku powtarzane jest wyszukiwanie aż do skutku, lub do końca szeregu. | 4 = {{Code|funkcja_zamiana}} | _4 = Funkcja robiąca operacje na wydzielonych ciągach znakowych. | 5 = {{Code|funkcja_wzor}} {{Patrz|funkcja_wzor}} | _5 = Funkcja ta zwraca wartość w zmiennych: {{Code|__wzor}} i {{Code|czy}}, ta pierwsza mówi, jaki jest wzór wyszukiwania, a druga, czy powtórzyć wyszukiwanie, ale względem innego niż poprzednio, zwracanego wzoru. {{P|Definicja funkcji:}} <syntaxhighlight lang="lua"> __wzor,czy=funkcja_wzor(wzor,licznik_wzor,czy); </syntaxhighlight> {{Hr}} Obecność tej funkcji sugeruje, że trzeba wywołać: <syntaxhighlight lang="lua"> tak,ile=funkcja_sprawdzanie_wyszukania(szereg,numer,licznik_wzor,numer_a,numer_b,a,b,c,d,e,f,g,h,i); </syntaxhighlight> W przeciwnym wypadku: <syntaxhighlight lang="lua"> tak,ile=funkcja_sprawdzanie_wyszukania(szereg,numer,numer_a,numer_b,a,b,c,d,e,f,g,h,i); </syntaxhighlight> Parametr {{Code|tak}}, tak mówi, czy powtórzyć wyszukiwanie, a {{Code|ile}}, wskazuje ile znaków dalej ma wyszukać, a jeżeli wartość ta jest {{Code|nil}}, to ona przyjmuje wartość domyślną {{Code|1}}. | 6 = {{Code|funkcja_licznik}} | _6 = Funkcja robiąca operacje: {{P|Definicja funkcji:}} <syntaxhighlight lang="lua"> licznik_wzor=funkcja_licznik(wzor,licznik_wzor,numer_begin); </syntaxhighlight> Funkcja liczy numer wzoru wyszukiwanego przez funkcję. A: {{Code|wzor}} - jest to wzór podstawowy, {{Code|licznik_wzor}} - numer wzoru, i {{Code|numer_begin}} - jest to początek wyszukiwania. }} Funkcja wykorzystuje do działania: {{LinkŚródtytuł|p.WyszukiwanieNaPodstawieWzorca}}, w celu wyszukiwanych ciągów. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(licznik_wzor,zawartosc,dalej) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"..((licznik_wzor==1)and dalej or ""); end, function(wzor,licznik_wzor,czy) if(czy)then if(licznik_wzor==1)then return wzor.."(%l*)",true;end; end; return wzor,false; end, function(wzor,licznk_wzor,numer_begin) licznik_wzor=licznik_wzor+1; return licznik_wzor; end ); </syntaxhighlight> A jeżeli piąty argument (funkcja) nie zostanie podany, a więc i też szósty, bo wtedy on jest niepotrzebny, to w czwartej funkcji argument pierwszy można pominąć, a w pierwszej zmienną trzecią pomijamy, bo w tych funkcjach po prostu ich nie podajemy, wtedy tę funkcję można napisać w uproszczony sposób: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,numer_a,numer_b,zawartosc) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(zawartosc) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"; end ); </syntaxhighlight> Ta funkcja zwraca zmodyfikowany tekst uzyskany z omawianej funkcji. Tą funkcję możemy wykorzystać do kodowania dowolnego tekstu i operowania na nim, co jest wykorzystane, nie tylko jako przykładach, ale też jako treściwy kod według tego wspomnianego w tym module powyżej. == {{Śródtytuł|p.IteratorLiniiTekstu}}{{Code|p.IteratorLiniiTekstu}} == Funkcja uzyskany tekst iteruje linia po linii według iteracji poniżej przy pomocy operacji {{Code|for}}, gdzie tam możemy robić operacje na liniach, by dodać je póżniej do tablicy linia, by je połączyć przy pomocy łącznika {{Code|\n}}. Poniższy kod robi to samo, co przykład dla funkcji: {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}, tylko, że dłużej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IteratorLiniiTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Tekst, z którego są wydzielane kolejne linie. }} Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local iter=szeregi_modul.IteratorLiniiTekstu(tekst); local tab_linia={}; for linia in iter do linia=mw.ustring.gsub(linia,"%s+",""); table.insert(tab_linia,linia); end; tekst=table.concat(tab_linia,"\n"); </syntaxhighlight> == {{Śródtytuł|p.ZamianaZnakowaLinii}}{{Code|p.ZamianaZnakowaLinii}} == Funkcja zamienia tekst uzyskany wstawiony do pierwszego argumentu tej funkcji, gdzie poszczególne linie są zmieniane przez anonimową funkcję podaną jako drugi argument. Jeżeli ta funkcja zwraca {{Code|nil}} dla jakieś linii, to ta linia nie jest zmieniana, tylko przypisywana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaZnakowaLinii(szereg,funkcja)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szereg}} | _1 = Szereg do przetworzenia, z którego są wydzielane kolejne linie i są robione na nich pewne operacje. | 2 = {{Code|funkcja}} | _2 = Funkcja robiąca operacje na kolejnych liniach, nawet pustych. }} Funkcja korzysta z innej: {{LinkŚródtytuł|p.IteratorLiniiTekstu}}, w celu uzyskiwania kolejnych linii tekstu, linie są oddzielone znakiem: {{Code|\n}}, w ogólnym podanym tekście. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaLinii(tekst,function(linia) local linia,ile=mw.ustring.gsub(linia,"%s+",""); if(ile>0)then return linia;end; return nil; end); </syntaxhighlight> Ta funkcja usuwa wszystkie odstępy w liniach, ale nie pomiędzy liniami. == {{Śródtytuł|p.SzeregiOmijanieFunkcyjne}}{{Code|p.SzeregiOmijanieFunkcyjne}} == Funkcja do operacji na szeregach (ciągach), przy pomocy pewnej funkcji, z pominięciem pewnych ciągów określonym, jako opisywanym przez wzór (zmienna {{Code|wzor}}), podanym do parametru funkcji z operacją na nich podanym jako druga funkcja {{Code|funkcja2}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzeregiOmijanieFunkcyjne(tekst,normalnie,wzor,funkcja,funkcja2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Tekst do przetworzenia, omijając pewne elementy, jeżeli drugi element odpowiada wartości logicznej {{Code|false}}, przeciwnie już nie. | 2 = {{Code|normalnie}} | _2 = Czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi. | 3 = {{Code|wzor}} | _3 = Wzór do elementów pomijanych, wzór może mieć do ośmiu elementów przechwytywanych. | 4 = {{Code|funkcja}} | _4 = Funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. | 5 = {{Code|funkcja2}} | _5 = Co ma robić z częściami elementów pomijanych, czyli z elementami przechwytywanymi, funkcja przyjmuje do ośmiu parametrów przechwytywania w podanym wzorze {{Code|wzor}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Szeregi/SzeregiOmijanieFunkcyjne/}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> mjousfzfmh1j038072hrikm47n3ho7q 558179 558178 2026-10-01T11:31:01Z Persino 2851 /* {{Śródtytuł|p.WyszukiwanieNaPodstawieWzorca}}{{Code|p.WyszukiwanieNaPodstawieWzorca}} */ 558179 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Szeregi}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł służy do obsługi na ciągach (szeregach) języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local szeregi_modul=require("Module:Szeregi"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje opisane w module, która opisuje ta dokumentacja, służą do operacji na szeregach, też na wydzielaniu poszczególnych linii i robienia na nich operacji, a także wykonywania operacji naniepomijanych elementach znakowych. Przykładowe użycie modułu {{Code|{{ld2|Szeregi}}}} jest użyte w module {{Code|{{ld2|Szablonowe/Potrzebne}}}}. Na te stronie będziemy wchodzili do pliku: {{Code|Moduły/Szeregi}} w przestrzeni nazw: {{Code|Wikibooks}}, ściągając jego zawartość w funkcjach: {{LinkŚródtytuł|p.WyszukiwanieNaPodstawieWzorca}}, {{LinkŚródtytuł|p.ZamianaZnakowaSzeregu}}, {{LinkŚródtytuł|p.IteratorLiniiTekstu}}, i {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}. == {{Śródtytuł|p.WyszukiwanieNaPodstawieWzorca}}{{Code|p.WyszukiwanieNaPodstawieWzorca}} == Funkcja wyszukuje począwszy od miejsca pierwszego (trzeci argument) funkcji, czyli z podwójnymi nawiasami klamrowymi, a jeżeli w nim są początki, np. innych szablonów, to wyszukuje kolejne przykładowe dwa miejsca dalej względem poprzedniego przykładowego wyszukiwania. Funkcja do swojego działania wykorzystuje funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WyszukiwanieNaPodstawieWzorca=function(szereg,wzor,numer,funkcja_sprawdzanie_wyszukania,funkcja_wzor,licznik_wzor)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szereg}} | _1 = Jak w: {{LinkPatrz|szereg}}. | 2 = {{Code|wzor}} | _2 = Jak w: {{LinkPatrz|wzor}}. | 3 = {{Code|numer}} | _3 = Numer, od którego ma rozpocząc wyszukiwanie. | 4 = {{Code|funkcja_sprawdzanie_wyszukania}} | _4 = Jak w: {{LinkPatrz|funkcja_sprawdzanie_wyszukania}}. | 5 = {{Code|funkcja_wzor}} | _5 = Jak w: {{LinkPatrz|funkcja_wzor}}. | 6 = {{Code|licznik_wzor}} | _6 = Licznik wykorzystywany w ciele funkcji: {{Code|funkcja_sprawdzanie_wyszukania}}, gdy parametr: {{Code|funkcja_wzor}}, nie jest: {{Code|nil}}, tylko funkcją. }} A {{Code|numer}} w czwartym argumencie (funkcji) ten parametr wskazany jest przez trzeci argument, czyli {{Code|1}}, a jeżeli pierwsze wyszukiwanie się nie powiodło się, ona wyszukuje następne, aż do całkowitego niepowodzenia, lub do nieznalezienia następnych ciągów, wtedy jest zwracana wartość {{Code|nil}}, ale przez tym liczba ponownym wyszukań może być dowolna, w zależności od długości tekstu. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(wzor,licznik_wzor,czy) -- Obojętne jaka definicja, ta funkcja ma definicję, bo w p.ZamianaZnakowaSzeregu jest ona tam potrzebna. end,1); </syntaxhighlight> Opis zmiennych zwracanych w przykładzie: {{OpisParametrów | 1 = {{Code|numer_a}} | _1 = Początek wyszukania. | 2 = {{Code|numer_b}} | _2 = Koniec wyszukania. | 3 = {{Code|zawartosc}} i {{Code|dalej}} | _3 = Zawartość i dalszy element, elementy zwaracane z przechwytywania okazane wzorem {{Code|<nowiki>%{%{(.-)%}%}(%l*)</nowiki>}} za pomocą dwóch części przechwytujących ciągu znakowe. }} Funkcja ta zwraca dwa dalsze parametry, najwięcej dalszych parametrów (od {{Code|zawartość}}) może być dziewięć, taka bowiem jest właściwość funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_analizaspisurzeczy_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy"); local numer_a,numer_b,a,b,c,d,e,f,g,h,i=stronicowyparser_analizaspisurzeczy_modul.SzukanieNaPodstawieWzoru(szereg,wzor,numer,#szereg,false); </syntaxhighlight> Ta funkcja jest w definicji omawianej funkcji. Tę funkcję równie dobrze można napisać prościej: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end ); </syntaxhighlight> == {{Śródtytuł|p.ZamianaZnakowaSzeregu}}{{Code|p.ZamianaZnakowaSzeregu}} == Funkcja do podmiany wyszukiwanego tekstu. Wyszukuje tekst wskazany przez pierwszy argument, drugi parametr jako wzór (wyszukuj szablony z podwójnymi nawiasami klamrowymi), a jeżeli ona zawiera początek następnego szablonu (funkcja wskazana przez trzeci argument), to wyszukuje ona dwa miejsca dalej znakowe, czy jest on tym właściwym szablonem bez innych szablonów, których nie ma tam tego. Następnie po wyszukaniu szablonu przez funkcję podaną jako czwarty argument, usuwa w nim odstępy, i robi z niego inny szablon. Funkcja najpierw wyszukuje według piątej funkcji, dla {{Code|licznik_wzor {{=}} 1}}, sprawdza dodatkowo, jakie są małe litery po linku, jeżeli po nim one są tam. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamianaZnakowaSzeregu=function(szereg,wzor,funkcja_sprawdzanie_wyszukania,funkcja_zamiana,funkcja_wzor,funkcja_licznik)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szereg}} {{Patrz|szereg}} | _1 = Szeregi (ciąg znakowy) do przeanalizowania i przetworzenia. | 2 = {{Code|wzor}} {{Patrz|wzor}} | _2 = Wzór w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}} do przeszukiwania ciągów. | 3 = {{Code|funkcja_sprawdzanie_wyszukania}} {{Patrz|funkcja_sprawdzanie_wyszukania}} | _3 = Sprawdza, czy wyszukany ciąg zawiera pewny element, a jeżeli tak, to tą funkcją w nagłówku powtarzane jest wyszukiwanie aż do skutku, lub do końca szeregu. | 4 = {{Code|funkcja_zamiana}} | _4 = Funkcja robiąca operacje na wydzielonych ciągach znakowych. | 5 = {{Code|funkcja_wzor}} {{Patrz|funkcja_wzor}} | _5 = Funkcja ta zwraca wartość w zmiennych: {{Code|__wzor}} i {{Code|czy}}, ta pierwsza mówi, jaki jest wzór wyszukiwania, a druga, czy powtórzyć wyszukiwanie, ale względem innego niż poprzednio, zwracanego wzoru. {{P|Definicja funkcji:}} <syntaxhighlight lang="lua"> __wzor,czy=funkcja_wzor(wzor,licznik_wzor,czy); </syntaxhighlight> {{Hr}} Obecność tej funkcji sugeruje, że trzeba wywołać: <syntaxhighlight lang="lua"> tak,ile=funkcja_sprawdzanie_wyszukania(szereg,numer,licznik_wzor,numer_a,numer_b,a,b,c,d,e,f,g,h,i); </syntaxhighlight> W przeciwnym wypadku: <syntaxhighlight lang="lua"> tak,ile=funkcja_sprawdzanie_wyszukania(szereg,numer,numer_a,numer_b,a,b,c,d,e,f,g,h,i); </syntaxhighlight> Parametr {{Code|tak}}, tak mówi, czy powtórzyć wyszukiwanie, a {{Code|ile}}, wskazuje ile znaków dalej ma wyszukać, a jeżeli wartość ta jest {{Code|nil}}, to ona przyjmuje wartość domyślną {{Code|1}}. | 6 = {{Code|funkcja_licznik}} | _6 = Funkcja robiąca operacje: {{P|Definicja funkcji:}} <syntaxhighlight lang="lua"> licznik_wzor=funkcja_licznik(wzor,licznik_wzor,numer_begin); </syntaxhighlight> Funkcja liczy numer wzoru wyszukiwanego przez funkcję. A: {{Code|wzor}} - jest to wzór podstawowy, {{Code|licznik_wzor}} - numer wzoru, i {{Code|numer_begin}} - jest to początek wyszukiwania. }} Funkcja wykorzystuje do działania: {{LinkŚródtytuł|p.WyszukiwanieNaPodstawieWzorca}}, w celu wyszukiwanych ciągów. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(licznik_wzor,zawartosc,dalej) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"..((licznik_wzor==1)and dalej or ""); end, function(wzor,licznik_wzor,czy) if(czy)then if(licznik_wzor==1)then return wzor.."(%l*)",true;end; end; return wzor,false; end, function(wzor,licznk_wzor,numer_begin) licznik_wzor=licznik_wzor+1; return licznik_wzor; end ); </syntaxhighlight> A jeżeli piąty argument (funkcja) nie zostanie podany, a więc i też szósty, bo wtedy on jest niepotrzebny, to w czwartej funkcji argument pierwszy można pominąć, a w pierwszej zmienną trzecią pomijamy, bo w tych funkcjach po prostu ich nie podajemy, wtedy tę funkcję można napisać w uproszczony sposób: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,numer_a,numer_b,zawartosc) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(zawartosc) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"; end ); </syntaxhighlight> Ta funkcja zwraca zmodyfikowany tekst uzyskany z omawianej funkcji. Tą funkcję możemy wykorzystać do kodowania dowolnego tekstu i operowania na nim, co jest wykorzystane, nie tylko jako przykładach, ale też jako treściwy kod według tego wspomnianego w tym module powyżej. == {{Śródtytuł|p.IteratorLiniiTekstu}}{{Code|p.IteratorLiniiTekstu}} == Funkcja uzyskany tekst iteruje linia po linii według iteracji poniżej przy pomocy operacji {{Code|for}}, gdzie tam możemy robić operacje na liniach, by dodać je póżniej do tablicy linia, by je połączyć przy pomocy łącznika {{Code|\n}}. Poniższy kod robi to samo, co przykład dla funkcji: {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}, tylko, że dłużej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IteratorLiniiTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Tekst, z którego są wydzielane kolejne linie. }} Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local iter=szeregi_modul.IteratorLiniiTekstu(tekst); local tab_linia={}; for linia in iter do linia=mw.ustring.gsub(linia,"%s+",""); table.insert(tab_linia,linia); end; tekst=table.concat(tab_linia,"\n"); </syntaxhighlight> == {{Śródtytuł|p.ZamianaZnakowaLinii}}{{Code|p.ZamianaZnakowaLinii}} == Funkcja zamienia tekst uzyskany wstawiony do pierwszego argumentu tej funkcji, gdzie poszczególne linie są zmieniane przez anonimową funkcję podaną jako drugi argument. Jeżeli ta funkcja zwraca {{Code|nil}} dla jakieś linii, to ta linia nie jest zmieniana, tylko przypisywana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaZnakowaLinii(szereg,funkcja)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szereg}} | _1 = Szereg do przetworzenia, z którego są wydzielane kolejne linie i są robione na nich pewne operacje. | 2 = {{Code|funkcja}} | _2 = Funkcja robiąca operacje na kolejnych liniach, nawet pustych. }} Funkcja korzysta z innej: {{LinkŚródtytuł|p.IteratorLiniiTekstu}}, w celu uzyskiwania kolejnych linii tekstu, linie są oddzielone znakiem: {{Code|\n}}, w ogólnym podanym tekście. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaLinii(tekst,function(linia) local linia,ile=mw.ustring.gsub(linia,"%s+",""); if(ile>0)then return linia;end; return nil; end); </syntaxhighlight> Ta funkcja usuwa wszystkie odstępy w liniach, ale nie pomiędzy liniami. == {{Śródtytuł|p.SzeregiOmijanieFunkcyjne}}{{Code|p.SzeregiOmijanieFunkcyjne}} == Funkcja do operacji na szeregach (ciągach), przy pomocy pewnej funkcji, z pominięciem pewnych ciągów określonym, jako opisywanym przez wzór (zmienna {{Code|wzor}}), podanym do parametru funkcji z operacją na nich podanym jako druga funkcja {{Code|funkcja2}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzeregiOmijanieFunkcyjne(tekst,normalnie,wzor,funkcja,funkcja2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Tekst do przetworzenia, omijając pewne elementy, jeżeli drugi element odpowiada wartości logicznej {{Code|false}}, przeciwnie już nie. | 2 = {{Code|normalnie}} | _2 = Czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi. | 3 = {{Code|wzor}} | _3 = Wzór do elementów pomijanych, wzór może mieć do ośmiu elementów przechwytywanych. | 4 = {{Code|funkcja}} | _4 = Funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. | 5 = {{Code|funkcja2}} | _5 = Co ma robić z częściami elementów pomijanych, czyli z elementami przechwytywanymi, funkcja przyjmuje do ośmiu parametrów przechwytywania w podanym wzorze {{Code|wzor}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Szeregi/SzeregiOmijanieFunkcyjne/}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> hnsvef224svvj6xqxzo55snaqt1fbsn 558180 558179 2026-10-01T11:50:52Z Persino 2851 /* {{Śródtytuł|p.ZamianaZnakowaSzeregu}}{{Code|p.ZamianaZnakowaSzeregu}} */ 558180 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Szeregi}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł służy do obsługi na ciągach (szeregach) języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local szeregi_modul=require("Module:Szeregi"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje opisane w module, która opisuje ta dokumentacja, służą do operacji na szeregach, też na wydzielaniu poszczególnych linii i robienia na nich operacji, a także wykonywania operacji naniepomijanych elementach znakowych. Przykładowe użycie modułu {{Code|{{ld2|Szeregi}}}} jest użyte w module {{Code|{{ld2|Szablonowe/Potrzebne}}}}. Na te stronie będziemy wchodzili do pliku: {{Code|Moduły/Szeregi}} w przestrzeni nazw: {{Code|Wikibooks}}, ściągając jego zawartość w funkcjach: {{LinkŚródtytuł|p.WyszukiwanieNaPodstawieWzorca}}, {{LinkŚródtytuł|p.ZamianaZnakowaSzeregu}}, {{LinkŚródtytuł|p.IteratorLiniiTekstu}}, i {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}. == {{Śródtytuł|p.WyszukiwanieNaPodstawieWzorca}}{{Code|p.WyszukiwanieNaPodstawieWzorca}} == Funkcja wyszukuje począwszy od miejsca pierwszego (trzeci argument) funkcji, czyli z podwójnymi nawiasami klamrowymi, a jeżeli w nim są początki, np. innych szablonów, to wyszukuje kolejne przykładowe dwa miejsca dalej względem poprzedniego przykładowego wyszukiwania. Funkcja do swojego działania wykorzystuje funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WyszukiwanieNaPodstawieWzorca=function(szereg,wzor,numer,funkcja_sprawdzanie_wyszukania,funkcja_wzor,licznik_wzor)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szereg}} | _1 = Jak w: {{LinkPatrz|szereg}}. | 2 = {{Code|wzor}} | _2 = Jak w: {{LinkPatrz|wzor}}. | 3 = {{Code|numer}} | _3 = Numer, od którego ma rozpocząc wyszukiwanie. | 4 = {{Code|funkcja_sprawdzanie_wyszukania}} | _4 = Jak w: {{LinkPatrz|funkcja_sprawdzanie_wyszukania}}. | 5 = {{Code|funkcja_wzor}} | _5 = Jak w: {{LinkPatrz|funkcja_wzor}}. | 6 = {{Code|licznik_wzor}} | _6 = Licznik wykorzystywany w ciele funkcji: {{Code|funkcja_sprawdzanie_wyszukania}}, gdy parametr: {{Code|funkcja_wzor}}, nie jest: {{Code|nil}}, tylko funkcją. }} A {{Code|numer}} w czwartym argumencie (funkcji) ten parametr wskazany jest przez trzeci argument, czyli {{Code|1}}, a jeżeli pierwsze wyszukiwanie się nie powiodło się, ona wyszukuje następne, aż do całkowitego niepowodzenia, lub do nieznalezienia następnych ciągów, wtedy jest zwracana wartość {{Code|nil}}, ale przez tym liczba ponownym wyszukań może być dowolna, w zależności od długości tekstu. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(wzor,licznik_wzor,czy) -- Obojętne jaka definicja, ta funkcja ma definicję, bo w p.ZamianaZnakowaSzeregu jest ona tam potrzebna. end,1); </syntaxhighlight> Opis zmiennych zwracanych w przykładzie: {{OpisParametrów | 1 = {{Code|numer_a}} | _1 = Początek wyszukania. | 2 = {{Code|numer_b}} | _2 = Koniec wyszukania. | 3 = {{Code|zawartosc}} i {{Code|dalej}} | _3 = Zawartość i dalszy element, elementy zwaracane z przechwytywania okazane wzorem {{Code|<nowiki>%{%{(.-)%}%}(%l*)</nowiki>}} za pomocą dwóch części przechwytujących ciągu znakowe. }} Funkcja ta zwraca dwa dalsze parametry, najwięcej dalszych parametrów (od {{Code|zawartość}}) może być dziewięć, taka bowiem jest właściwość funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_analizaspisurzeczy_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy"); local numer_a,numer_b,a,b,c,d,e,f,g,h,i=stronicowyparser_analizaspisurzeczy_modul.SzukanieNaPodstawieWzoru(szereg,wzor,numer,#szereg,false); </syntaxhighlight> Ta funkcja jest w definicji omawianej funkcji. Tę funkcję równie dobrze można napisać prościej: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end ); </syntaxhighlight> == {{Śródtytuł|p.ZamianaZnakowaSzeregu}}{{Code|p.ZamianaZnakowaSzeregu}} == Funkcja do podmiany wyszukiwanego tekstu. Wyszukuje tekst wskazany przez pierwszy argument, drugi parametr jako wzór (wyszukuj szablony z podwójnymi nawiasami klamrowymi), a jeżeli ona zawiera początek następnego szablonu (funkcja wskazana przez trzeci argument), to wyszukuje ona dwa miejsca dalej znakowe, czy jest on tym właściwym szablonem bez innych szablonów, których nie ma tam tego. Następnie po wyszukaniu szablonu przez funkcję podaną jako czwarty argument, usuwa w nim odstępy, i robi z niego inny szablon. Funkcja najpierw wyszukuje według piątej funkcji, dla {{Code|licznik_wzor {{=}} 1}}, sprawdza dodatkowo, jakie są małe litery po linku, jeżeli po nim one są tam. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamianaZnakowaSzeregu=function(szereg,wzor,funkcja_sprawdzanie_wyszukania,funkcja_zamiana,funkcja_wzor,funkcja_licznik)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szereg}} {{Patrz|szereg}} | _1 = Szeregi (ciąg znakowy) do przeanalizowania i przetworzenia. | 2 = {{Code|wzor}} {{Patrz|wzor}} | _2 = Wzór w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}} do przeszukiwania ciągów. | 3 = {{Code|funkcja_sprawdzanie_wyszukania}} {{Patrz|funkcja_sprawdzanie_wyszukania}} | _3 = Sprawdza, czy wyszukany ciąg zawiera pewny element, a jeżeli tak, to tą funkcją w nagłówku powtarzane jest wyszukiwanie aż do skutku, lub do końca szeregu, ale od pewnego znaku, ale dalszego określonego. Obecność funkcji: {{Code|funkcja_wzor}} {{LinkPatrz|funkcja_wzor}}, sugeruje, że trzeba wywołać: <syntaxhighlight lang="lua"> tak,ile=funkcja_sprawdzanie_wyszukania(szereg,numer,licznik_wzor,numer_a,numer_b,a,b,c,d,e,f,g,h,i); </syntaxhighlight> W przeciwnym wypadku: <syntaxhighlight lang="lua"> tak,ile=funkcja_sprawdzanie_wyszukania(szereg,numer,numer_a,numer_b,a,b,c,d,e,f,g,h,i); </syntaxhighlight> Parametr {{Code|tak}}, tak mówi, czy powtórzyć wyszukiwanie, a {{Code|ile}}, wskazuje ile znaków dalej ma wyszukać, a jeżeli wartość ta jest {{Code|nil}}, to ona przyjmuje wartość domyślną {{Code|1}}. | 4 = {{Code|funkcja_zamiana}} {{Patrz|funkcja_zamiana}} | _4 = Funkcja robiąca operacje na wydzielonych ciągach znakowych. Obecność funkcji: {{Code|funkcja_wzor}} {{LinkPatrz|funkcja_wzor}}, wskazuje na: <syntaxhighlight lang="lua"> ciag=funkcja_zamiana(licznik_wzor,a,b,c,d,e,f,g,h,i); </syntaxhighlight> Przeciwnie na: <syntaxhighlight> ciag=funkcja_zamiana(a,b,c,d,e,f,g,h,i); </syntaxhighlight> | 5 = {{Code|funkcja_wzor}} {{Patrz|funkcja_wzor}} | _5 = Funkcja sterująca powtarzaniem wyszukiwania ciągu, ale od tego samego numeru znaku, jeżeli poprzednie wyszukiwanie się nie powiodło. Funkcja może być niepodana, wtedy zmienia się zespół parametrów pewnych funkcji tych podawanych jako parametry, tzn.: {{Code|funkcja_sprawdzanie_wyszukania}} {{LinkPatrz|funkcja_sprawdzanie_wyszukania}}, i {{Code|funkcja_zamiana}} {{LinkPatrz|funkcja_zamiana}}. {{P|Definicja funkcji:}} <syntaxhighlight lang="lua"> __wzor,czy=funkcja_wzor(wzor,licznik_wzor,czy); </syntaxhighlight> Funkcja ta zwraca wartość w zmiennych: {{Code|__wzor}} i {{Code|czy}}, ta pierwsza mówi, jaki jest wzór wyszukiwania, a druga, czy powtórzyć wyszukiwanie, ale względem innego niż poprzednio, zwracanego wzoru. | 6 = {{Code|funkcja_licznik}} | _6 = Funkcja liczy numer wzoru wyszukiwanego, na podstawie tego podstawowego. {{P|Definicja funkcji:}} <syntaxhighlight lang="lua"> licznik_wzor=funkcja_licznik(wzor,licznik_wzor,numer_begin); </syntaxhighlight> Parametry: {{Code|wzor}} - jest to wzór podstawowy, {{Code|licznik_wzor}} - numer wzoru, i {{Code|numer_begin}} - jest to początek wyszukiwania. }} Funkcja wykorzystuje do działania: {{LinkŚródtytuł|p.WyszukiwanieNaPodstawieWzorca}}, w celu wyszukiwanych ciągów. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(licznik_wzor,zawartosc,dalej) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"..((licznik_wzor==1)and dalej or ""); end, function(wzor,licznik_wzor,czy) if(czy)then if(licznik_wzor==1)then return wzor.."(%l*)",true;end; end; return wzor,false; end, function(wzor,licznk_wzor,numer_begin) licznik_wzor=licznik_wzor+1; return licznik_wzor; end ); </syntaxhighlight> A jeżeli piąty argument (funkcja) nie zostanie podany, a więc i też szósty, bo wtedy on jest niepotrzebny, to w czwartej funkcji argument pierwszy można pominąć, a w pierwszej zmienną trzecią pomijamy, bo w tych funkcjach po prostu ich nie podajemy, wtedy tę funkcję można napisać w uproszczony sposób: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,numer_a,numer_b,zawartosc) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(zawartosc) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"; end ); </syntaxhighlight> Ta funkcja zwraca zmodyfikowany tekst uzyskany z omawianej funkcji. Tą funkcję możemy wykorzystać do kodowania dowolnego tekstu i operowania na nim, co jest wykorzystane, nie tylko jako przykładach, ale też jako treściwy kod według tego wspomnianego w tym module powyżej. == {{Śródtytuł|p.IteratorLiniiTekstu}}{{Code|p.IteratorLiniiTekstu}} == Funkcja uzyskany tekst iteruje linia po linii według iteracji poniżej przy pomocy operacji {{Code|for}}, gdzie tam możemy robić operacje na liniach, by dodać je póżniej do tablicy linia, by je połączyć przy pomocy łącznika {{Code|\n}}. Poniższy kod robi to samo, co przykład dla funkcji: {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}, tylko, że dłużej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IteratorLiniiTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Tekst, z którego są wydzielane kolejne linie. }} Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local iter=szeregi_modul.IteratorLiniiTekstu(tekst); local tab_linia={}; for linia in iter do linia=mw.ustring.gsub(linia,"%s+",""); table.insert(tab_linia,linia); end; tekst=table.concat(tab_linia,"\n"); </syntaxhighlight> == {{Śródtytuł|p.ZamianaZnakowaLinii}}{{Code|p.ZamianaZnakowaLinii}} == Funkcja zamienia tekst uzyskany wstawiony do pierwszego argumentu tej funkcji, gdzie poszczególne linie są zmieniane przez anonimową funkcję podaną jako drugi argument. Jeżeli ta funkcja zwraca {{Code|nil}} dla jakieś linii, to ta linia nie jest zmieniana, tylko przypisywana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaZnakowaLinii(szereg,funkcja)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szereg}} | _1 = Szereg do przetworzenia, z którego są wydzielane kolejne linie i są robione na nich pewne operacje. | 2 = {{Code|funkcja}} | _2 = Funkcja robiąca operacje na kolejnych liniach, nawet pustych. }} Funkcja korzysta z innej: {{LinkŚródtytuł|p.IteratorLiniiTekstu}}, w celu uzyskiwania kolejnych linii tekstu, linie są oddzielone znakiem: {{Code|\n}}, w ogólnym podanym tekście. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaLinii(tekst,function(linia) local linia,ile=mw.ustring.gsub(linia,"%s+",""); if(ile>0)then return linia;end; return nil; end); </syntaxhighlight> Ta funkcja usuwa wszystkie odstępy w liniach, ale nie pomiędzy liniami. == {{Śródtytuł|p.SzeregiOmijanieFunkcyjne}}{{Code|p.SzeregiOmijanieFunkcyjne}} == Funkcja do operacji na szeregach (ciągach), przy pomocy pewnej funkcji, z pominięciem pewnych ciągów określonym, jako opisywanym przez wzór (zmienna {{Code|wzor}}), podanym do parametru funkcji z operacją na nich podanym jako druga funkcja {{Code|funkcja2}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzeregiOmijanieFunkcyjne(tekst,normalnie,wzor,funkcja,funkcja2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Tekst do przetworzenia, omijając pewne elementy, jeżeli drugi element odpowiada wartości logicznej {{Code|false}}, przeciwnie już nie. | 2 = {{Code|normalnie}} | _2 = Czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi. | 3 = {{Code|wzor}} | _3 = Wzór do elementów pomijanych, wzór może mieć do ośmiu elementów przechwytywanych. | 4 = {{Code|funkcja}} | _4 = Funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. | 5 = {{Code|funkcja2}} | _5 = Co ma robić z częściami elementów pomijanych, czyli z elementami przechwytywanymi, funkcja przyjmuje do ośmiu parametrów przechwytywania w podanym wzorze {{Code|wzor}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Szeregi/SzeregiOmijanieFunkcyjne/}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ceoog5zs6cc2gtf9ttmf4mmkimd3iiz 558181 558180 2026-10-01T11:51:40Z Persino 2851 /* {{Śródtytuł|p.ZamianaZnakowaSzeregu}}{{Code|p.ZamianaZnakowaSzeregu}} */ 558181 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Szeregi}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł służy do obsługi na ciągach (szeregach) języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local szeregi_modul=require("Module:Szeregi"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje opisane w module, która opisuje ta dokumentacja, służą do operacji na szeregach, też na wydzielaniu poszczególnych linii i robienia na nich operacji, a także wykonywania operacji naniepomijanych elementach znakowych. Przykładowe użycie modułu {{Code|{{ld2|Szeregi}}}} jest użyte w module {{Code|{{ld2|Szablonowe/Potrzebne}}}}. Na te stronie będziemy wchodzili do pliku: {{Code|Moduły/Szeregi}} w przestrzeni nazw: {{Code|Wikibooks}}, ściągając jego zawartość w funkcjach: {{LinkŚródtytuł|p.WyszukiwanieNaPodstawieWzorca}}, {{LinkŚródtytuł|p.ZamianaZnakowaSzeregu}}, {{LinkŚródtytuł|p.IteratorLiniiTekstu}}, i {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}. == {{Śródtytuł|p.WyszukiwanieNaPodstawieWzorca}}{{Code|p.WyszukiwanieNaPodstawieWzorca}} == Funkcja wyszukuje począwszy od miejsca pierwszego (trzeci argument) funkcji, czyli z podwójnymi nawiasami klamrowymi, a jeżeli w nim są początki, np. innych szablonów, to wyszukuje kolejne przykładowe dwa miejsca dalej względem poprzedniego przykładowego wyszukiwania. Funkcja do swojego działania wykorzystuje funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WyszukiwanieNaPodstawieWzorca=function(szereg,wzor,numer,funkcja_sprawdzanie_wyszukania,funkcja_wzor,licznik_wzor)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szereg}} | _1 = Jak w: {{LinkPatrz|szereg}}. | 2 = {{Code|wzor}} | _2 = Jak w: {{LinkPatrz|wzor}}. | 3 = {{Code|numer}} | _3 = Numer, od którego ma rozpocząc wyszukiwanie. | 4 = {{Code|funkcja_sprawdzanie_wyszukania}} | _4 = Jak w: {{LinkPatrz|funkcja_sprawdzanie_wyszukania}}. | 5 = {{Code|funkcja_wzor}} | _5 = Jak w: {{LinkPatrz|funkcja_wzor}}. | 6 = {{Code|licznik_wzor}} | _6 = Licznik wykorzystywany w ciele funkcji: {{Code|funkcja_sprawdzanie_wyszukania}}, gdy parametr: {{Code|funkcja_wzor}}, nie jest: {{Code|nil}}, tylko funkcją. }} A {{Code|numer}} w czwartym argumencie (funkcji) ten parametr wskazany jest przez trzeci argument, czyli {{Code|1}}, a jeżeli pierwsze wyszukiwanie się nie powiodło się, ona wyszukuje następne, aż do całkowitego niepowodzenia, lub do nieznalezienia następnych ciągów, wtedy jest zwracana wartość {{Code|nil}}, ale przez tym liczba ponownym wyszukań może być dowolna, w zależności od długości tekstu. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(wzor,licznik_wzor,czy) -- Obojętne jaka definicja, ta funkcja ma definicję, bo w p.ZamianaZnakowaSzeregu jest ona tam potrzebna. end,1); </syntaxhighlight> Opis zmiennych zwracanych w przykładzie: {{OpisParametrów | 1 = {{Code|numer_a}} | _1 = Początek wyszukania. | 2 = {{Code|numer_b}} | _2 = Koniec wyszukania. | 3 = {{Code|zawartosc}} i {{Code|dalej}} | _3 = Zawartość i dalszy element, elementy zwaracane z przechwytywania okazane wzorem {{Code|<nowiki>%{%{(.-)%}%}(%l*)</nowiki>}} za pomocą dwóch części przechwytujących ciągu znakowe. }} Funkcja ta zwraca dwa dalsze parametry, najwięcej dalszych parametrów (od {{Code|zawartość}}) może być dziewięć, taka bowiem jest właściwość funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_analizaspisurzeczy_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy"); local numer_a,numer_b,a,b,c,d,e,f,g,h,i=stronicowyparser_analizaspisurzeczy_modul.SzukanieNaPodstawieWzoru(szereg,wzor,numer,#szereg,false); </syntaxhighlight> Ta funkcja jest w definicji omawianej funkcji. Tę funkcję równie dobrze można napisać prościej: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end ); </syntaxhighlight> == {{Śródtytuł|p.ZamianaZnakowaSzeregu}}{{Code|p.ZamianaZnakowaSzeregu}} == Funkcja do podmiany wyszukiwanego tekstu. Wyszukuje tekst wskazany przez pierwszy argument, drugi parametr jako wzór (wyszukuj szablony z podwójnymi nawiasami klamrowymi), a jeżeli ona zawiera początek następnego szablonu (funkcja wskazana przez trzeci argument), to wyszukuje ona dwa miejsca dalej znakowe, czy jest on tym właściwym szablonem bez innych szablonów, których nie ma tam tego. Następnie po wyszukaniu szablonu przez funkcję podaną jako czwarty argument, usuwa w nim odstępy, i robi z niego inny szablon. Funkcja najpierw wyszukuje według piątej funkcji, dla {{Code|licznik_wzor {{=}} 1}}, sprawdza dodatkowo, jakie są małe litery po linku, jeżeli po nim one są tam. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamianaZnakowaSzeregu=function(szereg,wzor,funkcja_sprawdzanie_wyszukania,funkcja_zamiana,funkcja_wzor,funkcja_licznik)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szereg}} {{Patrz|szereg}} | _1 = Szeregi (ciąg znakowy) do przeanalizowania i przetworzenia. | 2 = {{Code|wzor}} {{Patrz|wzor}} | _2 = Wzór w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}} do przeszukiwania ciągów. | 3 = {{Code|funkcja_sprawdzanie_wyszukania}} {{Patrz|funkcja_sprawdzanie_wyszukania}} | _3 = Sprawdza, czy wyszukany ciąg zawiera pewny element, a jeżeli tak, to tą funkcją w nagłówku powtarzane jest wyszukiwanie aż do skutku, lub do końca szeregu, ale od pewnego znaku, ale dalszego określonego. Obecność funkcji: {{Code|funkcja_wzor}} {{LinkPatrz|funkcja_wzor}}, sugeruje, że trzeba wywołać: <syntaxhighlight lang="lua"> tak,ile=funkcja_sprawdzanie_wyszukania(szereg,numer,licznik_wzor,numer_a,numer_b,a,b,c,d,e,f,g,h,i); </syntaxhighlight> W przeciwnym wypadku: <syntaxhighlight lang="lua"> tak,ile=funkcja_sprawdzanie_wyszukania(szereg,numer,numer_a,numer_b,a,b,c,d,e,f,g,h,i); </syntaxhighlight> Parametr {{Code|tak}}, tak mówi, czy powtórzyć wyszukiwanie, a {{Code|ile}}, wskazuje ile znaków dalej ma wyszukać, a jeżeli wartość ta jest {{Code|nil}}, to ona przyjmuje wartość domyślną {{Code|1}}. | 4 = {{Code|funkcja_zamiana}} {{Patrz|funkcja_zamiana}} | _4 = Funkcja robiąca operacje na wydzielonych ciągach znakowych. Obecność funkcji: {{Code|funkcja_wzor}} {{LinkPatrz|funkcja_wzor}}, wskazuje na: <syntaxhighlight lang="lua"> ciag=funkcja_zamiana(licznik_wzor,a,b,c,d,e,f,g,h,i); </syntaxhighlight> Przeciwnie na: <syntaxhighlight lang="lua"> ciag=funkcja_zamiana(a,b,c,d,e,f,g,h,i); </syntaxhighlight> | 5 = {{Code|funkcja_wzor}} {{Patrz|funkcja_wzor}} | _5 = Funkcja sterująca powtarzaniem wyszukiwania ciągu, ale od tego samego numeru znaku, jeżeli poprzednie wyszukiwanie się nie powiodło. Funkcja może być niepodana, wtedy zmienia się zespół parametrów pewnych funkcji tych podawanych jako parametry, tzn.: {{Code|funkcja_sprawdzanie_wyszukania}} {{LinkPatrz|funkcja_sprawdzanie_wyszukania}}, i {{Code|funkcja_zamiana}} {{LinkPatrz|funkcja_zamiana}}. {{P|Definicja funkcji:}} <syntaxhighlight lang="lua"> __wzor,czy=funkcja_wzor(wzor,licznik_wzor,czy); </syntaxhighlight> Funkcja ta zwraca wartość w zmiennych: {{Code|__wzor}} i {{Code|czy}}, ta pierwsza mówi, jaki jest wzór wyszukiwania, a druga, czy powtórzyć wyszukiwanie, ale względem innego niż poprzednio, zwracanego wzoru. | 6 = {{Code|funkcja_licznik}} | _6 = Funkcja liczy numer wzoru wyszukiwanego, na podstawie tego podstawowego. {{P|Definicja funkcji:}} <syntaxhighlight lang="lua"> licznik_wzor=funkcja_licznik(wzor,licznik_wzor,numer_begin); </syntaxhighlight> Parametry: {{Code|wzor}} - jest to wzór podstawowy, {{Code|licznik_wzor}} - numer wzoru, i {{Code|numer_begin}} - jest to początek wyszukiwania. }} Funkcja wykorzystuje do działania: {{LinkŚródtytuł|p.WyszukiwanieNaPodstawieWzorca}}, w celu wyszukiwanych ciągów. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(licznik_wzor,zawartosc,dalej) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"..((licznik_wzor==1)and dalej or ""); end, function(wzor,licznik_wzor,czy) if(czy)then if(licznik_wzor==1)then return wzor.."(%l*)",true;end; end; return wzor,false; end, function(wzor,licznk_wzor,numer_begin) licznik_wzor=licznik_wzor+1; return licznik_wzor; end ); </syntaxhighlight> A jeżeli piąty argument (funkcja) nie zostanie podany, a więc i też szósty, bo wtedy on jest niepotrzebny, to w czwartej funkcji argument pierwszy można pominąć, a w pierwszej zmienną trzecią pomijamy, bo w tych funkcjach po prostu ich nie podajemy, wtedy tę funkcję można napisać w uproszczony sposób: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,numer_a,numer_b,zawartosc) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(zawartosc) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"; end ); </syntaxhighlight> Ta funkcja zwraca zmodyfikowany tekst uzyskany z omawianej funkcji. Tą funkcję możemy wykorzystać do kodowania dowolnego tekstu i operowania na nim, co jest wykorzystane, nie tylko jako przykładach, ale też jako treściwy kod według tego wspomnianego w tym module powyżej. == {{Śródtytuł|p.IteratorLiniiTekstu}}{{Code|p.IteratorLiniiTekstu}} == Funkcja uzyskany tekst iteruje linia po linii według iteracji poniżej przy pomocy operacji {{Code|for}}, gdzie tam możemy robić operacje na liniach, by dodać je póżniej do tablicy linia, by je połączyć przy pomocy łącznika {{Code|\n}}. Poniższy kod robi to samo, co przykład dla funkcji: {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}, tylko, że dłużej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IteratorLiniiTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Tekst, z którego są wydzielane kolejne linie. }} Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local iter=szeregi_modul.IteratorLiniiTekstu(tekst); local tab_linia={}; for linia in iter do linia=mw.ustring.gsub(linia,"%s+",""); table.insert(tab_linia,linia); end; tekst=table.concat(tab_linia,"\n"); </syntaxhighlight> == {{Śródtytuł|p.ZamianaZnakowaLinii}}{{Code|p.ZamianaZnakowaLinii}} == Funkcja zamienia tekst uzyskany wstawiony do pierwszego argumentu tej funkcji, gdzie poszczególne linie są zmieniane przez anonimową funkcję podaną jako drugi argument. Jeżeli ta funkcja zwraca {{Code|nil}} dla jakieś linii, to ta linia nie jest zmieniana, tylko przypisywana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaZnakowaLinii(szereg,funkcja)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szereg}} | _1 = Szereg do przetworzenia, z którego są wydzielane kolejne linie i są robione na nich pewne operacje. | 2 = {{Code|funkcja}} | _2 = Funkcja robiąca operacje na kolejnych liniach, nawet pustych. }} Funkcja korzysta z innej: {{LinkŚródtytuł|p.IteratorLiniiTekstu}}, w celu uzyskiwania kolejnych linii tekstu, linie są oddzielone znakiem: {{Code|\n}}, w ogólnym podanym tekście. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaLinii(tekst,function(linia) local linia,ile=mw.ustring.gsub(linia,"%s+",""); if(ile>0)then return linia;end; return nil; end); </syntaxhighlight> Ta funkcja usuwa wszystkie odstępy w liniach, ale nie pomiędzy liniami. == {{Śródtytuł|p.SzeregiOmijanieFunkcyjne}}{{Code|p.SzeregiOmijanieFunkcyjne}} == Funkcja do operacji na szeregach (ciągach), przy pomocy pewnej funkcji, z pominięciem pewnych ciągów określonym, jako opisywanym przez wzór (zmienna {{Code|wzor}}), podanym do parametru funkcji z operacją na nich podanym jako druga funkcja {{Code|funkcja2}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzeregiOmijanieFunkcyjne(tekst,normalnie,wzor,funkcja,funkcja2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Tekst do przetworzenia, omijając pewne elementy, jeżeli drugi element odpowiada wartości logicznej {{Code|false}}, przeciwnie już nie. | 2 = {{Code|normalnie}} | _2 = Czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi. | 3 = {{Code|wzor}} | _3 = Wzór do elementów pomijanych, wzór może mieć do ośmiu elementów przechwytywanych. | 4 = {{Code|funkcja}} | _4 = Funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. | 5 = {{Code|funkcja2}} | _5 = Co ma robić z częściami elementów pomijanych, czyli z elementami przechwytywanymi, funkcja przyjmuje do ośmiu parametrów przechwytywania w podanym wzorze {{Code|wzor}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Szeregi/SzeregiOmijanieFunkcyjne/}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> q56gg3cik97knbu0gicw1v3biwtpyjb 558182 558181 2026-10-01T11:57:31Z Persino 2851 /* {{Śródtytuł|p.ZamianaZnakowaSzeregu}}{{Code|p.ZamianaZnakowaSzeregu}} */ 558182 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Szeregi}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł służy do obsługi na ciągach (szeregach) języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local szeregi_modul=require("Module:Szeregi"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje opisane w module, która opisuje ta dokumentacja, służą do operacji na szeregach, też na wydzielaniu poszczególnych linii i robienia na nich operacji, a także wykonywania operacji naniepomijanych elementach znakowych. Przykładowe użycie modułu {{Code|{{ld2|Szeregi}}}} jest użyte w module {{Code|{{ld2|Szablonowe/Potrzebne}}}}. Na te stronie będziemy wchodzili do pliku: {{Code|Moduły/Szeregi}} w przestrzeni nazw: {{Code|Wikibooks}}, ściągając jego zawartość w funkcjach: {{LinkŚródtytuł|p.WyszukiwanieNaPodstawieWzorca}}, {{LinkŚródtytuł|p.ZamianaZnakowaSzeregu}}, {{LinkŚródtytuł|p.IteratorLiniiTekstu}}, i {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}. == {{Śródtytuł|p.WyszukiwanieNaPodstawieWzorca}}{{Code|p.WyszukiwanieNaPodstawieWzorca}} == Funkcja wyszukuje począwszy od miejsca pierwszego (trzeci argument) funkcji, czyli z podwójnymi nawiasami klamrowymi, a jeżeli w nim są początki, np. innych szablonów, to wyszukuje kolejne przykładowe dwa miejsca dalej względem poprzedniego przykładowego wyszukiwania. Funkcja do swojego działania wykorzystuje funkcję: {{LinkŚródtytuł|p.SzukanieNaPodstawieWzoru|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WyszukiwanieNaPodstawieWzorca=function(szereg,wzor,numer,funkcja_sprawdzanie_wyszukania,funkcja_wzor,licznik_wzor)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szereg}} | _1 = Jak w: {{LinkPatrz|szereg}}. | 2 = {{Code|wzor}} | _2 = Jak w: {{LinkPatrz|wzor}}. | 3 = {{Code|numer}} | _3 = Numer, od którego ma rozpocząc wyszukiwanie. | 4 = {{Code|funkcja_sprawdzanie_wyszukania}} | _4 = Jak w: {{LinkPatrz|funkcja_sprawdzanie_wyszukania}}. | 5 = {{Code|funkcja_wzor}} | _5 = Jak w: {{LinkPatrz|funkcja_wzor}}. | 6 = {{Code|licznik_wzor}} | _6 = Licznik wykorzystywany w ciele funkcji: {{Code|funkcja_sprawdzanie_wyszukania}}, gdy parametr: {{Code|funkcja_wzor}}, nie jest: {{Code|nil}}, tylko funkcją. }} A {{Code|numer}} w czwartym argumencie (funkcji) ten parametr wskazany jest przez trzeci argument, czyli {{Code|1}}, a jeżeli pierwsze wyszukiwanie się nie powiodło się, ona wyszukuje następne, aż do całkowitego niepowodzenia, lub do nieznalezienia następnych ciągów, wtedy jest zwracana wartość {{Code|nil}}, ale przez tym liczba ponownym wyszukań może być dowolna, w zależności od długości tekstu. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(wzor,licznik_wzor,czy) -- Obojętne jaka definicja, ta funkcja ma definicję, bo w p.ZamianaZnakowaSzeregu jest ona tam potrzebna. end,1); </syntaxhighlight> Opis zmiennych zwracanych w przykładzie: {{OpisParametrów | 1 = {{Code|numer_a}} | _1 = Początek wyszukania. | 2 = {{Code|numer_b}} | _2 = Koniec wyszukania. | 3 = {{Code|zawartosc}} i {{Code|dalej}} | _3 = Zawartość i dalszy element, elementy zwaracane z przechwytywania okazane wzorem {{Code|<nowiki>%{%{(.-)%}%}(%l*)</nowiki>}} za pomocą dwóch części przechwytujących ciągu znakowe. }} Funkcja ta zwraca dwa dalsze parametry, najwięcej dalszych parametrów (od {{Code|zawartość}}) może być dziewięć, taka bowiem jest właściwość funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_analizaspisurzeczy_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy"); local numer_a,numer_b,a,b,c,d,e,f,g,h,i=stronicowyparser_analizaspisurzeczy_modul.SzukanieNaPodstawieWzoru(szereg,wzor,numer,#szereg,false); </syntaxhighlight> Ta funkcja jest w definicji omawianej funkcji. Tę funkcję równie dobrze można napisać prościej: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local numer_a,numer_b,zawartosc,dalej=szeregi_modul.WyszukiwanieNaPodstawieWzorca(tekst,"%{%{(.-)%}%}(%l*)",1, function(tekst,numer,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end ); </syntaxhighlight> == {{Śródtytuł|p.ZamianaZnakowaSzeregu}}{{Code|p.ZamianaZnakowaSzeregu}} == Funkcja do podmiany wyszukiwanego tekstu. Wyszukuje tekst wskazany przez pierwszy argument, drugi parametr jako wzór (wyszukuj szablony z podwójnymi nawiasami klamrowymi), a jeżeli ona zawiera początek następnego szablonu (funkcja wskazana przez trzeci argument), to wyszukuje ona dwa miejsca dalej znakowe, czy jest on tym właściwym szablonem bez innych szablonów, których nie ma tam tego. Następnie po wyszukaniu szablonu przez funkcję podaną jako czwarty argument, usuwa w nim odstępy, i robi z niego inny szablon. Funkcja najpierw wyszukuje według piątej funkcji, dla {{Code|licznik_wzor {{=}} 1}}, sprawdza dodatkowo, jakie są małe litery po linku, jeżeli po nim one są tam. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamianaZnakowaSzeregu=function(szereg,wzor,funkcja_sprawdzanie_wyszukania,funkcja_zamiana,funkcja_wzor,funkcja_licznik)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szereg}} {{Patrz|szereg}} | _1 = Szeregi (ciąg znakowy) do przeanalizowania i przetworzenia. | 2 = {{Code|wzor}} {{Patrz|wzor}} | _2 = Wzór w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}} do przeszukiwania ciągów. | 3 = {{Code|funkcja_sprawdzanie_wyszukania}} {{Patrz|funkcja_sprawdzanie_wyszukania}} | _3 = Sprawdza, czy wyszukany ciąg zawiera pewny element, a jeżeli tak, to tą funkcją w nagłówku powtarzane jest wyszukiwanie aż do skutku, lub do końca szeregu, ale od pewnego znaku, ale dalszego określonego. Obecność funkcji: {{Code|funkcja_wzor}} {{LinkPatrz|funkcja_wzor}}, sugeruje, że trzeba wywołać: <syntaxhighlight lang="lua"> tak,ile=funkcja_sprawdzanie_wyszukania(szereg,numer,licznik_wzor,numer_a,numer_b,a,b,c,d,e,f,g,h,i); </syntaxhighlight> W przeciwnym wypadku: <syntaxhighlight lang="lua"> tak,ile=funkcja_sprawdzanie_wyszukania(szereg,numer,numer_a,numer_b,a,b,c,d,e,f,g,h,i); </syntaxhighlight> Parametr {{Code|tak}}, tak mówi, czy powtórzyć wyszukiwanie, a {{Code|ile}}, wskazuje ile znaków dalej ma wyszukać, a jeżeli wartość ta jest {{Code|nil}}, to ona przyjmuje wartość domyślną {{Code|1}}. | 4 = {{Code|funkcja_zamiana}} {{Patrz|funkcja_zamiana}} | _4 = Funkcja robiąca operacje na wydzielonych ciągach znakowych. Obecność funkcji: {{Code|funkcja_wzor}} {{LinkPatrz|funkcja_wzor}}, wskazuje na: <syntaxhighlight lang="lua"> ciag=funkcja_zamiana(licznik_wzor,a,b,c,d,e,f,g,h,i); </syntaxhighlight> Przeciwnie na: <syntaxhighlight lang="lua"> ciag=funkcja_zamiana(a,b,c,d,e,f,g,h,i); </syntaxhighlight> | 5 = {{Code|funkcja_wzor}} {{Patrz|funkcja_wzor}} | _5 = Funkcja sterująca powtarzaniem wyszukiwania ciągu, ale od tego samego numeru znaku, jeżeli poprzednie wyszukiwanie się nie powiodło. Funkcja może być niepodana, wtedy zmienia się zespół parametrów pewnych funkcji tych podawanych jako parametry, tzn.: {{Code|funkcja_sprawdzanie_wyszukania}} {{LinkPatrz|funkcja_sprawdzanie_wyszukania}}, i {{Code|funkcja_zamiana}} {{LinkPatrz|funkcja_zamiana}}. {{P|Definicja funkcji:}} <syntaxhighlight lang="lua"> __wzor,czy=funkcja_wzor(wzor,licznik_wzor,czy); </syntaxhighlight> Funkcja ta zwraca wartość w zmiennych: {{Code|__wzor}} i {{Code|czy}}, ta pierwsza mówi, jaki jest wzór wyszukiwania, a druga, czy powtórzyć wyszukiwanie, ale względem innego niż poprzednio, zwracanego wzoru. | 6 = {{Code|funkcja_licznik}} {{Patrz|funkcja_licznik}} | _6 = Funkcja liczy numer wzoru wyszukiwanego, na podstawie tego podstawowego. Funkcja używana w skojarzeniu z funkcją: {{Code|funkcja_wzor}} {{LinkPatrz|funkcja_wzor}}, wtedy jedynie ona jest wywoływana i liczona, przeciwnie nie jest wcale używana. {{P|Definicja funkcji:}} <syntaxhighlight lang="lua"> licznik_wzor=funkcja_licznik(wzor,licznik_wzor,numer_begin); </syntaxhighlight> Parametry: {{Code|wzor}} - jest to wzór podstawowy, {{Code|licznik_wzor}} - numer wzoru, i {{Code|numer_begin}} - jest to początek wyszukiwania. }} Funkcja wykorzystuje do działania: {{LinkŚródtytuł|p.WyszukiwanieNaPodstawieWzorca}}, w celu wyszukiwanych ciągów. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,licznik_wzor,numer_a,numer_b,zawartosc,dalej) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(licznik_wzor,zawartosc,dalej) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"..((licznik_wzor==1)and dalej or ""); end, function(wzor,licznik_wzor,czy) if(czy)then if(licznik_wzor==1)then return wzor.."(%l*)",true;end; end; return wzor,false; end, function(wzor,licznk_wzor,numer_begin) licznik_wzor=licznik_wzor+1; return licznik_wzor; end ); </syntaxhighlight> A jeżeli piąty argument (funkcja) nie zostanie podany, a więc i też szósty, bo wtedy on jest niepotrzebny, to w czwartej funkcji argument pierwszy można pominąć, a w pierwszej zmienną trzecią pomijamy, bo w tych funkcjach po prostu ich nie podajemy, wtedy tę funkcję można napisać w uproszczony sposób: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaSzeregu(tekst,"%{%{(.-)%}%}", function(tekst,numer,numer_a,numer_b,zawartosc) return mw.ustring.match(zawartosc,"%{%{"),2; end, function(zawartosc) zawartosc=mw.ustring.gsub(zawartosc,"%s+",""); return "[["..zawartosc.."]]"; end ); </syntaxhighlight> Ta funkcja zwraca zmodyfikowany tekst uzyskany z omawianej funkcji. Tą funkcję możemy wykorzystać do kodowania dowolnego tekstu i operowania na nim, co jest wykorzystane, nie tylko jako przykładach, ale też jako treściwy kod według tego wspomnianego w tym module powyżej. == {{Śródtytuł|p.IteratorLiniiTekstu}}{{Code|p.IteratorLiniiTekstu}} == Funkcja uzyskany tekst iteruje linia po linii według iteracji poniżej przy pomocy operacji {{Code|for}}, gdzie tam możemy robić operacje na liniach, by dodać je póżniej do tablicy linia, by je połączyć przy pomocy łącznika {{Code|\n}}. Poniższy kod robi to samo, co przykład dla funkcji: {{LinkŚródtytuł|p.ZamianaZnakowaLinii}}, tylko, że dłużej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IteratorLiniiTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Tekst, z którego są wydzielane kolejne linie. }} Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); local iter=szeregi_modul.IteratorLiniiTekstu(tekst); local tab_linia={}; for linia in iter do linia=mw.ustring.gsub(linia,"%s+",""); table.insert(tab_linia,linia); end; tekst=table.concat(tab_linia,"\n"); </syntaxhighlight> == {{Śródtytuł|p.ZamianaZnakowaLinii}}{{Code|p.ZamianaZnakowaLinii}} == Funkcja zamienia tekst uzyskany wstawiony do pierwszego argumentu tej funkcji, gdzie poszczególne linie są zmieniane przez anonimową funkcję podaną jako drugi argument. Jeżeli ta funkcja zwraca {{Code|nil}} dla jakieś linii, to ta linia nie jest zmieniana, tylko przypisywana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaZnakowaLinii(szereg,funkcja)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szereg}} | _1 = Szereg do przetworzenia, z którego są wydzielane kolejne linie i są robione na nich pewne operacje. | 2 = {{Code|funkcja}} | _2 = Funkcja robiąca operacje na kolejnych liniach, nawet pustych. }} Funkcja korzysta z innej: {{LinkŚródtytuł|p.IteratorLiniiTekstu}}, w celu uzyskiwania kolejnych linii tekstu, linie są oddzielone znakiem: {{Code|\n}}, w ogólnym podanym tekście. Przykład wywołania: <syntaxhighlight lang="lua"> local title=mw.title.makeTitle("Wikibooks","Moduły/Szeregi"); local tekst=title:getContent(); local szeregi_modul=require("Module:Szeregi"); tekst=szeregi_modul.ZamianaZnakowaLinii(tekst,function(linia) local linia,ile=mw.ustring.gsub(linia,"%s+",""); if(ile>0)then return linia;end; return nil; end); </syntaxhighlight> Ta funkcja usuwa wszystkie odstępy w liniach, ale nie pomiędzy liniami. == {{Śródtytuł|p.SzeregiOmijanieFunkcyjne}}{{Code|p.SzeregiOmijanieFunkcyjne}} == Funkcja do operacji na szeregach (ciągach), przy pomocy pewnej funkcji, z pominięciem pewnych ciągów określonym, jako opisywanym przez wzór (zmienna {{Code|wzor}}), podanym do parametru funkcji z operacją na nich podanym jako druga funkcja {{Code|funkcja2}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzeregiOmijanieFunkcyjne(tekst,normalnie,wzor,funkcja,funkcja2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Tekst do przetworzenia, omijając pewne elementy, jeżeli drugi element odpowiada wartości logicznej {{Code|false}}, przeciwnie już nie. | 2 = {{Code|normalnie}} | _2 = Czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi. | 3 = {{Code|wzor}} | _3 = Wzór do elementów pomijanych, wzór może mieć do ośmiu elementów przechwytywanych. | 4 = {{Code|funkcja}} | _4 = Funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. | 5 = {{Code|funkcja2}} | _5 = Co ma robić z częściami elementów pomijanych, czyli z elementami przechwytywanymi, funkcja przyjmuje do ośmiu parametrów przechwytywania w podanym wzorze {{Code|wzor}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Szeregi/SzeregiOmijanieFunkcyjne/}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> igzlzu3ega23yqharod9tn20i50q9jp Szablon:AktualnaKsiążka/opis/Zobacz też 10 63599 558104 544345 2026-09-30T13:08:33Z Persino 2851 558104 wikitext text/x-wiki <includeonly> ; Szablon zaprojektowane do posługiwania się wewnątrz podręcznika{{dk}} * {{s|SpisTreści}} - szablon spisu treści, wywoływany dla każdego artykułu w niej na stronie głównej książki, * {{s|Sekcja referencyjna}} (skrót: {{s|sr}}) - szablon linku wewnętrznego posługiwania się artykułami w obrębie jednego podręcznika. ; Ogólne szablony linków wewnętrznych{{dk}} * {{s|Link wewnętrzny}} (skrót: {{s|ly}}) - szablon linków wewnętrznych wewnątrz- i między-projektowych. ; Szablony ogólne linków wewnętrznych{{dk}} * {{s|LinkOgólne}} (skrót: {{s|lo}}) i {{s|LinkOgólne2}} (skrót: {{s|lo2}}) - ogólne szablony linków wewnętrznych zaprojektowanych dla różnych przestrzeni nazw, szablon operuje na linkach wewnątrz- i między-projektowych. ; Szablony szczególne linków wewnętrznych{{dk}} * {{s|LinkGłówna}} (skrót: {{s|lg}}) - szablon linków wewnętrznych posługujących się na linkach w przestrzeni nazw {{Np|(main)|link=tak}}, * {{s|LinkWikijunior}} (skrót: {{s|lj}}) i {{s|LinkWikijunior2}} (skrót: {{s|lj2}}) - szablony linków wewnętrznych posługujących się na linkach w przestrzeni nazw {{Np|Wikijunior|link=tak}}, kolejno bez wyświetlania i z wyświetlaniem tej nazwy przestrzeni nazw, * {{s|LinkProjekt}} (skrót: {{s|lr}}) i {{s|LinkProjekt2}} (skrót: {{s|lr2}}) - szablony linków wewnętrznych posługujących się na linkach w przestrzeni nazw {{Np|Project|link=tak}}, kolejno bez wyświetlania i z wyświetlaniem tej nazwy przestrzeni nazw, * {{s|LinkUżytkownik}} (skrót: {{s|lż}}) i {{s|LinkUżytkownik2}} (skrót: {{s|lż2}}) - szablony linków wewnętrznych posługujących się na linkach w przestrzeni nazw {{Np|User|link=tak}}, kolejno bez wyświetlania i z wyświetlaniem tej nazwy przestrzeni nazw. ---- ; Z powyższych szablonów korzystają szablony{{dk}} * Szablony nawigacji: {{s|AktualnaKsiążka}}, {{s|NastępnyArtykuł}} i {{s|PoprzedniArtykuł}} lub {{s|NazwaAktualnyArtykuł}}, bądź {{s|LinkAktualnaKsiążka}}, {{s|LinkNastępnyArtykuł}} i {{s|LinkPoprzedniArtykuł}}. * Inne szablony: {{s|PierwszyArtykuł}}, {{s|OstatniArtykuł}}, {{s|PomiędzyArtykuł}}, {{s|LosowyArtykuł}}, {{s|PobierzNazwęArtykułu}} i {{s|PobierzNumerArtykułu}}. ---- ---- ; Szablony nagłówkow wyświetlające nazwę nagłówka, na stronie głównej podręcznika ze strony oinngo artykułu teggo podręcznika, ze względu na nazwę szablonu{{Dk}} ;; Szablon losowych nagłówków wyświetlający losowy napis w zależności od np. czasu lub liczby{{dk}} * {{s|LosowyNagłówek}} - wyświetla losowy nagłówek z całego zakresu w ramach spisu rzeczy ze strony głównej podręcznika, * {{s|PomiędzyNagłówek}} - wyświetla losowy nagłówek pomiędzy jego pierwszym i ostatnim z całego zakresu w ramach spisu rzeczy ze strony głównej podręcznika. ;; Szablony wyświetlające skrajne nagłówki na stronie głównej podręcznika{{dk}} * {{s|PierwszyNagłówek}} - pisze pierwszy nagłówek na stronie głównej podręcznika, * {{s|OstatniNagłówek}} - pisze ostatni nagłówek na stronie głównej podręcznika. ;; Liczba nagłówków{{dk}} * {{s|LiczbaNagłówkówSpisu}} - liczna nagłówków na stronie głównej podręcznika.<!--- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon powtarzalny do wsadzania pod sekcję: '''Zobacz też''', do opisu szablonów związanych z {{s|AktualnaKsiążka}}.}}<!-- -->{{Kategoria|Szablony pomocnicze potrzebne do dokumentacji szablonów}}<!-- --></noinclude> cvrpcqmlcegk5aemy8xmk4g6wj28oe7 Szablon:Mbox/opis/Zobacz też 10 63608 558108 544495 2026-09-30T13:13:43Z Persino 2851 558108 wikitext text/x-wiki <includeonly> ; Złożone szablony komunikatów{{dk}} * {{s|Ambox}} - szablon do tworzenia komunikatów stosowany w artykułach w przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}}, * {{s|Tmbox}} - szablon do tworzenia pól wiadomości informacyjnych dla stron dyskusji, * {{s|Fmbox}} - szablon do tworzenia pól wiadomości komunikatów systemowych w przestrzeniach nazw: {{Np|MediaWiki|link=tak}} i {{Np|Special|link=tak}}, * {{s|Imbox}} - szablon do tworzenia pól wiadomości dla stron obrazów (plików) dla przestrzeni nazw: {{Np|File|link=tak}}, * {{s|Cmbox}} - szablon do tworzenia pól komunikatów dla stron kategorii dla przestrzeni nazw: {{Np|Category|link=tak}}, * {{s|Ombox}} - szablon do tworzenia pól wiadomości informacyjnych i ostrzegawczych - odpowiednik dla pozostałych przestrzeni nazw. ; Szablony zbudowane w oparciu o złożone szablony komunikatów{{dk}} * {{s|AmboxProsty}} - prosty szablon komunikatów informacyjny, używający klas szablonu {{s|Ambox}}, stosowany w artykułach w przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}}. ; Szablony komunikatów - kombajny{{dk}} * {{s|Mbox}} - szablon komunikatów kombajn wywołujący, złożone szablony komunikatów, w zależności od ustawionej przestrzeni nazw od szablonów {{m|Pudełko}} lub w jakiej przestrzeni się znalazł, szablon wykorzystywany w różnych {{lpp|Przestrzeń nazw|przestrzeniach nazw}}, automatycznie wybiera odpowiedni szablon komunikatów dla danej przestrzeni nazw. ; Szablony stron ujednoznaczniających i przekierowań na inne szczegółowe strony ze stron ogólnych{{dk}} * {{s|Dmbox}} - szablon komunikatów umieszczany na tych stronach, * {{s|Ujednoznacznienie}} - szablon umieszczany na stronach ujednoznaczniających, zwyczajowo na górze strony, * {{s|Przekierowanie}} - szablon wstawiany na samej górze do stron głównych książek, do których istnieje przekierowanie, które z kolei posiada jeszcze własną {{lpr|Strona ujednoznaczniająca|stronę ujednoznaczniającą}}, * {{s|Inne znaczenia}} - szablon stron ujednoznaczniających kierujących do innych znaczeń danego pojęcia, * {{s|Nie mylić z}} - szablon ostrzega przed myleniem jakiegoś pojęcia z innym, * {{s|Linki niejednoznaczne}} - szablon używany, gdy nie udało się wybrać właściwego znaczenia spośród dostępnych na stronie ujednoznaczniające. ; Inne szablony - kombajny{{dk}} * {{s|Mbox-strona}} - szablon komunikatów taki jak: {{s|Mbox}}, z wiadomością, tylko, że jest to ramka pływająca umieszczona z prawej strony. ;; Szczególne stronicowe szablony komuniaktów{{dk}} * {{s|Wymaga znajomości}} - szablon komunikatów zbudowany w oparciu o: {{s|Mbox-strona}}, z parametrem: {{Parametr|typ|notatki}}, linkujący do artykułu. ; Inne{{dk}} * {{lpr|Szablony komunikatów|Wikipedia:Szablony komunikatów}}.<!--- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon powtarzalny do wsadzania pod sekcję: '''Zobacz też''', do opisu szablonów związanych z {{s|Mbox}}.}}<!-- -->{{Kategoria|Szablony pomocnicze potrzebne do dokumentacji szablonów}}<!-- --></noinclude> n8bmp8imfb5j3zgguh64xu2cgkj1y2e Szablon:Mbox/opis/CSS 10 63611 558103 544514 2026-09-30T13:06:30Z Persino 2851 558103 wikitext text/x-wiki <includeonly> Ten szablon korzysta z klas CSS, więc łatwo można go zmienić według preferencji użytkowników. Klasy CSS mogą być użyte także bezpośrednio w tabelkach: {{Pre| {{s|Tabelka|klasa{{=}}mbox mbox-content{{#switch:{{ROOTPAGENAME}} |#default= |Ambox=&#32;ambox ambox-content |Tmbox=&#32;tmbox tmbox-content |Fmbox=&#32;fmbox fmbox-content |Imbox=&#32;imbox imbox-content |Cmbox=&#32;cmbox cmbox-content |Ombox=&#32;ombox ombox-content }} box-mobilne|<nowiki><!-- --></nowiki>{{s|Wiersz|<nowiki><!-- --></nowiki>{{s|Komórka|klasa{{=}}mbox-image{{#switch:{{ROOTPAGENAME}} |#default= |Ambox=&#32;ambox-image |Tmbox=&#32;tmbox-image |Fmbox=&#32;fmbox-image |Imbox=&#32;imbox-image |Cmbox=&#32;cmbox-image |Ombox=&#32;ombox-image }}|{{s|Ikona|pomuwaga|35}} }}<nowiki><!-- --></nowiki>{{s|Komórka|Jakiś tekst}}<nowiki><!-- --></nowiki>}}<nowiki><!-- --></nowiki>}} }} {{Tabelka|klasa=mbox mbox-content {{#switch:{{ROOTPAGENAME}} |#default= |Ambox=ambox ambox-content |Tmbox=tmbox tmbox-content |Fmbox=fmbox fmbox-content |Imbox=imbox imbox-content |Cmbox=cmbox cmbox-content |Ombox=ombox ombox-content }} box-mobilne|<!-- -->{{Wiersz|<!-- -->{{Komórka|klasa=mbox-image {{#switch:{{ROOTPAGENAME}} |#default= |Ambox=ambox-image |Tmbox=tmbox-image |Fmbox=fmbox-image |Imbox=imbox-image |Cmbox=cmbox-image |Ombox=ombox-image }}|{{Ikona|pomuwaga|35}}}}<!-- -->{{Komórka|Jakiś tekst}}<!-- -->}}<!-- -->}} Ten szablon używa klas CSS {{ls|{{ROOTPAGENAME}}}} styli lokalnych: {{ls2|{{ROOTPAGENAME}}/styles.css}}, więc jest w pełni skórkowalny. Wewnętrznie ten meta-szablon używa znaczników wiki zamiast znaczników HTML dla kodu tabeli. To jest niezwykły sposób, w jaki tworzymy meta-szablony, ponieważ znaczniki wiki mają kilka wad. Na przykład utrudniają używanie {{lmp|ParserFunctions|funkcji parsera}} i znaków specjalnych w parametrach, więc do tego celu użyto je w postaci szablonów, gdzie ich tam użyto w takiej postaci, więc do tego celu w nich użyto instrukcje warunkowe ucinające białe znaki na ich końcach. Domyślne obrazy dla tego meta-szablonu są w formacie png zamiast svg. Głównym powodem jest to, że niektóre starsze przeglądarki internetowe mają problemy z przezroczystym tłem, które {{NS|k=mw|l=tak}} renderuje dla obrazów svg. Obrazy png tutaj mają ręcznie zoptymalizowany przezroczysty kolor tła, więc wyglądają dobrze we wszystkich przeglądarkach. Należy zauważyć, że ikony svg wyglądają nieco źle tylko w starych przeglądarkach, więc taka ręczna optymalizacja jest warta zachodu tylko w przypadku bardzo powszechnie używanych ikon. Więcej szczegółów technicznych znajdziesz na {{ls|{{ROOTPAGENAME}}|stronie dyskusji|d=tak}}. Ponieważ ten szablon działa niemal podobnie, jak i inne szablony komunikatów: „{{lk|Szablony komunikatów mbox}}”, jak również ich strony dyskusji i powiązane strony mogą również zawierać więcej szczegółów.<!--- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon powtarzalny do wsadzania pod sekcję: '''Techniczne szczegóły''' itp., do opisu szablonów związanych z {{s|AktualnaKsiążka}}.}}<!-- -->{{Kategoria|Szablony pomocnicze potrzebne do dokumentacji szablonów}}<!-- --></noinclude> pje6o3oau45niiuo8rywx955gme4xbi Szablon:DNU/opis/Zobacz też 10 63613 558105 544537 2026-09-30T13:10:22Z Persino 2851 558105 wikitext text/x-wiki <includeonly> Zobacz też dokumentację szablonów: * {{s|DNU}} - używany, gdy trwa dyskusja nad usunięciem lub naprawieniem strony, albo w sytuacji, gdy zakończone dyskusją z ustaleniem, co należy dalej zrobić, * {{s|SdU}} i {{s|DoSkasowania}} - używany, gdy trwa trwa dyskusja nad usunięciem lub naprawieniem strony, podobnie jak {{s|DNU}}, * {{s|SdUwynik}} - używany w sytuacji, gdy ustalono, co dalej trzeba zrobić ze stroną, podobnie jak {{s|DNU}}, * {{s|Kasowanie po przeniesieniu}} i {{s|Kpp}} - powiadamia autora podręcznika lub artykułu, nawet dla dzieci, albo pliku przed jakim czasem może skopiować zawartość (ten plik) przed jego skasowaniem, * {{s|Ek}}, {{s|Ek2}} i {{s|Delete}} - używany do zgłoszenia strony, ale nie podręcznika, do usunięcia przez {{lr|Administratorzy|administratora Wikibooks}}, * {{s|NPA}} i {{s|NPA całość}} - używane do zgłaszanie naruszenia praw autorskich (NPA) przez artykuł i podręcznik w przestrzeni nazw: {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}}, lub plik w przestrzeni nazw: {{Np|File|link=tak}}, kolejno wstawiane ręcznie lub przez bota, * {{s|Zgłoś błąd}} i {{s|ZB}} - używane do zgłaszania błędów. * {{lpr|Zasady ekspresowego kasowania|Wikipedia:Zasady ekspresowego kasowania}} * {{lpr|Narzędzia/QuickEK|Wikipedia:Narzędzia/QuickEK}}<!--- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon powtarzalny do wsadzania pod sekcję: '''Zobacz też''', do opisu szablonów związanych z {{s|DNU}}.}}<!-- -->{{Kategoria|Szablony pomocnicze potrzebne do dokumentacji szablonów}}<!-- --></noinclude> 0bpo12psdkh2pziag4cukwc9a68xuv1 Szablon:Link wewnętrzny/opis/Zobacz też 10 63615 558102 544585 2026-09-30T13:05:03Z Persino 2851 558102 wikitext text/x-wiki <includeonly> === Zwykłe szablony linków === ; Ogólne szablony linków inteligentnych, kolorujących linki, w zależności do jakiej kategorii one należą, w tym celu wykorzystuje projekt {{NS|k=d|l=tak|pk=m}}{{dk}} * {{s|LinkOgólne}} (skrót: {{s|lo}}) - najogólniejszy szablon linków, budulec innych szablonów linków, w tym również {{s|LinkUstęp}} (skrót: {{s|lu}}), i pośrednio innych podobnych tego typu, * {{s|LinkOgólne2}} (skrót: {{s|lo2}}) - jest to szablon linków, oparty o szablon {{s|LinkOgólne}} (skrót: {{s|lo}}), wyświetla link, przy niepodanym drugim parametrze, z nazwą przestrzeni nazw strony, * {{s|Link wewnętrzny}} (skrót: {{s|ly}}) - szablon służy do budowania linków inteligentnych, szablon nie ma parametru nazwy przestrzeni nazw, w przeciwieństwie do {{s|LinkOgólne}} (skrót: {{s|lo}}), * {{s|Sekcja referencyjna}} (skrót: {{s|sr}})- szablon sekcji podręczników, używana w ramach jednej książki, szablon na substronie: {{Code|Wersja do druku}} lub równej {{Tt|subnazwie książki}}, albo na {{Tt|rozdziałowych stronach zbiorczych}}, wyświetla tylko linki manewrowania po całej tej stronie, a wewnątrz podręcznika, pomiędzy jego artykułami, * {{s|LinkURL}} (skrót: {{s|lz}}) - szablon tworzy, pełny adres URL, na podstawie użytych parametrów. === Szablony ustępu === ; Szablony ogólne linków do ustępu{{dk}} * {{S|LinkUstęp}} (skrót: {{s|lu}}) - szablon ogólny, budulec do tworzenia innych szablonów do ustępu na danej stronie. ; Szablony linków, do ustępu, wewnętrznych, z opcją do odwołania się do serwisów siostrzanych lub wersji językowych, polskiego {{NS|l=tak}}{{dk}} * {{s|LinkGłównaUstęp}} (skrót: {{s|lgu}}), {{s|LinkWikijuniorUstęp}} (skrót: {{s|lju}}), {{s|LinkSzablonUstęp}} (skrót: {{s|lsu}}), {{s|LinkModułUstęp}} (skrót: {{s|ldu}}), {{s|LinkPomocUstęp}} (skrót: {{s|lpu}}), {{s|LinkProjektUstęp}} (skrót: {{s|lru}}), {{s|LinkKategoriaUstęp}} (skrót: {{s|lku}}), {{s|LinkUżytkownikUstęp}} (skrót: {{s|lżu}}) i {{s|LinkSpecjalnaUstęp}} (skrót: {{s|lcu}}) - szablony linku do stron, do ustępu, w przestrzeni nazw kolejno: {{Np|(main)|link=tak}}, {{Np|Wikijunior|link=tak}}, {{Np|Template|link=tak}}, {{Np|Help|link=tak}}, {{Np|Project|link=tak}}, {{Np|Category|link=tak}}, {{Np|User|link=tak}} i {{Np|Special|link=tak}}, domyślnie na polskim {{NAZWASERWISU|link=tak|po=ie}}. ; Szablony odwołujące się do do stron, do ustępu, serwisu{{dk}} polskiej {{NS|l=tak|k=w|pk=d}}, projektu siostrzanego polskiego {{NAZWASERWISU|link=tak}}{{dk}} * {{S|LinkPediaGłównaUstęp}} (skrót: {{s|lpgu}}), {{s|LinkPediaSzablonUstęp}} (skrót: {{s|lpsu}}), {{s|LinkPediaPomocUstęp}} (skrót: {{s|lppu}}) i {{s|LinkPediaProjektUstęp}} (skrót: {{s|lpru}}) - szablony linku do stron, do ustępu, w przestrzeni nazw kolejno: {{NpDane|(main)|klucz projektu=w|link=tak}}, {{NpDane|Template|klucz projektu=w|link=tak}}, {{NpDane|Help|klucz projektu=w|link=tak}} i {{NpDane|Project|klucz projektu=w|link=tak}}, na polskiej {{NS|l=tak|k=w|pk=d}}. === Czyste bezznacznikowe linki uzyskane z podanego wikitekstu === ; Szablony wydobywające linki{{dk}} * {{s|WydobądźLinki}} - wydobywa linki wewnętrzne i zewnętrzne, jeżeli występują. === Inne === ; Kategorie skojarzone z szablonem{{dk}} * Szablon zgłasza błędy parametrów w kategorii: {{lk2|Szablon {{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^(.[%l%s]*)$}}|{{lcfirst:{{ROOTPAGENAME}}}}|{{ROOTPAGENAME}}}} do sprawdzenia}} (Liczba stron: {{Łączna_liczba_stron_w_kategoriach|Szablon {{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^(.[%l%s]*)$}}|{{lcfirst:{{ROOTPAGENAME}}}}|{{ROOTPAGENAME}}}} do sprawdzenia}}).<!--- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon powtarzalny do wsadzania pod sekcję: '''Zobacz też''', do opisu szablonów związanych z {{s|Link wewnętrzny}} (skrót: {{s|ly}}).}}<!-- -->{{Kategoria|Szablony pomocnicze potrzebne do dokumentacji szablonów}}<!-- --></noinclude> 7q1dt6qau9zxd4pdso98wzrhphpot3s Szablon:Link FA/opis 10 63838 558113 553794 2026-09-30T13:46:39Z Persino 2851 /* Opis parametrów */ 558113 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == ; Zastosowanie szablonu * umieszczamy w linkach w identyfikatorze, * używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innym {{NS|l=tak|w=tak|pk=mj}}. == Opis parametrów == ; Parametry podstawowe * {{Code|1}} - kod języka projektu językowego odpowiednika polskiego {{NS|l=tak|w=tak|pk=d}}, * {{Code|linia}} - lub gdy ten szablon ma być umieszczony nie w sekcji interwiki, tylko w tekście. ; Parametry dodatkowe * {{Code|styl plik}} - styl dla ramki z plikiem, * {{Code|styl tekst}} - styl, dla znacznika {{s|span}}, dla całości i ramki z tekstem, * {{Code|id}} - zastępczy identyfikator plik. ; Parametry pudełkowe * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} - parametry pudełkowe modułu: {{Code|{{m|Pudełko}}}}, '''nazwy przestrzeni nazw''' (jest to przestrzeń nazw) i '''nazwy jednostki''' (jest to nazwa strony bez przestrzeni nazw), one symbolizują adres danej pozycji z przestrzeni książkowych. == Przykład == * {{s|Link FA|de}} - wynik wywołania jest pokazany na górnym prawym rogu strony, w jej linii tytułu lub nad stroną. {{Link FA|de|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}} * {{s|Link FA|de|linia{{=}}tak}} - wynik: {{Link FA|de|linia=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}}. == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Kod języka projektu językowego dla innych wersji polskiego Wikibooks.", "type": "string", "required": true }, "linia": { "description": "Gdy ten szablon ma być umieszczony nie w sekcji interwiki, tylko w tekście.", "type": "string" }, "styl plik": { "description": "Style, kaskadowych arkuszy stylów CSS, dla pliku.", "type": "string" }, "styl tekst": { "description": "Style, kaskadowych arkuszy stylów CSS, dla całości i ramki z tekstem.", "type": "string" }, "id": { "description": "Zastępczy identyfikator pliku.", "type": "string" }, "nazwa przestrzeni nazw": { "description": "Nazwa przestrzeni nazw strony symulująca stronę bieżącą.", "type": "string" }, "nazwa jednostki": { "description": "Nazwa jednostki (nazwa strony bez przestrzeni nazw) strony symulująca stronę bieżącą.", "type": "string" } }, "description": "Umieszczamy w linkach w identyfikatorze lub w tekście po podaniu: „|linia=tak”. Używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks." } </templatedata> == Zobacz też == {{Link FA/opis/Zobacz też}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe woluminów}} </includeonly> lk0j8zqyjz7ki6itkwbz5qa1dw3m7mk Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom V/Część I 4 63907 558120 556358 2026-09-30T17:34:01Z Persino 2851 /* Zmiana tekstu (Krok 1) - Upraszczanie jakikolwiek linii do najprostszej możliwej postaci, aby było możliwe rozpoznanie pewnych obiektów, nie tylko linkowych przez {{ld|StronicowyParser|Stronicowy parser}} */ 558120 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} == Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowany, funkcja modyfikuje nagłówki i ich zawartości rozdziałów, upraszczając je na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co jest nie potrzebne. Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie równaniowe, czy również dodatnie nierównaniowe (centrowane szablonowo, czy znaczniowo), ujemne (będące częścią pozycji listy) i zerowe (nie są tymi wcześniejszymi), do tego służy zmienna: {{Code|czy_inne_rozdzialy_analizowac}} {{LinkPatrz|czy_inne_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca całą linię rozdziału, i jego wnętrze, i nazwę rozdziału, także zwraca inne parametry, charakteryzujące nagłówek. * Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego dalszego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego. Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_inne_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU) ... return function() .... return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany; end,tekst_rozwiniety_calego_artykulu; end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony, | 2 = Nazwy strony danego określonego spisu: | nagłówek2 = tak | 3 = {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} | _3 = Jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}}, | 4 = {{Code|czy_inne_rozdzialy_analizowac}} {{Patrz|czy_inne_rozdzialy_analizowac}} | _4 = Czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe, | 5 = {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} | _5 = czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu, | 6 = Tablice wynikłe z zakodowanych zmiennych: | nagłówek6 = tak | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}. | 8 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _8 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}}, | 9 = Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:|nagłówek9 = tak | 10 = {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} | _10 = Funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zwraca jego zawartość. | 11 = {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} | _11 = Funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału), | 12 = {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} | _12 = Funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja w niej zwróci ściśle określoną wartość, która to właśnie powoduje, że ta właściwa część tej funkcji nie jest uruchamiana, ta inna część funkcja bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}. Jeśli ta funkcja nie istnieje, lub zwraca wartość nilową, to ta zmienna {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} nie zmienia się, w przeciwnym wypadku, ta ona przyjmuje wartość zwróconą z tej funkcji. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = Funkcja nie przyjmuje żadnych parametrów. | nagłówek1 = tak }} Jednoczesne parametry zwracane przez funkcję zwracaną: {{OpisParametrów | 1 = {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} | _1 = To jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią. | 2 = {{Code|str}} {{Patrz|str}} | _2 = Tekst napisu wprowadzenia tekstu (zawartość rozdziału). | 3 = {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} | _3 = Poziom aktualnego rozdziału. | 4 = {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} | _4 = Przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału. | 5 = {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} | _5 = Numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}}. | 6 = {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} | _6 = Przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym. }} === Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} === Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}. ==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ==== Pierwszą tablicą jest {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych nagłówków są w: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. ==== Szablony, projektów i tekstów, usuwane z tekstu ==== Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}: <syntaxhighlight lang="lua"> p.szablony_do_usuwania_z_tekstu={ --- szablony książkowe umieszczane na stronie głównej podręcznika ["Kolekcja"]=true, ["TODO"]=true, ["Wersja do druku"]=true, --- szablony typowo linkowe ["Dane tekstu"]=true, --- szablony linkowania do innych projektow ["MediaWiki"]=true, ["Wikipedia"]=true, ["Wikipedia kat"]=true, ["Wikipedia2"]=true, ["Commons"]=true, ["Commons ilustr kat"]=true, ["Commonsall"]=true, ["Commonscat"]=true, ["Wikiatlas"]=true, ["Wikicytaty"]=true, ["Wikicytaty przysłowia"]=true, ["Inkubator"]=true, ["Meta"]=true, ["Wikinews"]=true, ["Wikinewscat"]=true, ["Wikinewsy"]=true, ["Portal Wikinews"]=true, ["Wikisłownik"]=true, ["Wikisłownik-cat"]=true, ["Wikimedia"]=true, ["Multiwmpl"]=true, ["Wikipodróże"]=true, ["Wikispecies"]=true, ["Multisource"]=true, ["Wikiźródła"]=true, ["Wikiźródła autor"]=true, ["Wikiźródła kat"]=true, ["Wikiźródła kuch kat"]=true, ["Wikiźródła krótki"]=true, ["Wikisource-lang"]=true, }; </syntaxhighlight> Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}. Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich. ==== Szablony, z których z których zostawiane są tylko zawartości ==== Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}. ==== Inne szablony usuwane z tekstu ==== Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}: <syntaxhighlight lang="lua"> p.szablony_bez_generowania_napisowego={ ["Status"]=true, }; </syntaxhighlight> Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu. Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}: <syntaxhighlight lang="lua"> p.szablony_nie_typowo_linkowe={ ["Plik"]=true, ["Kategoria"]=true, ["Kategorie"]=true, ["Wolumin"]=true, ["SortWolumin"]=true, ["SortKuchWolumin"]=true, }; </syntaxhighlight> Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika. ==== Znaczniki szablonowe ==== Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}: <syntaxhighlight lang="lua"> p.znaczniki_szablonowe={ ["Znacznik"]=1, ["Div"]=1, ["Code"]=1, ["Tt"]=1, ["P"]=1, ["Sub"]=1, ["Sup"]=1, ["Span"]=1, ["Bdo"]=1, ["Small"]=1, ["Big"]=1, ["Strong"]=1, }; </syntaxhighlight> Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu, to jest właśnie to. ==== Szablony generujące poziomy o dowolnym poziomie ==== Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}: <syntaxhighlight lang="lua"> p.szablony_sztucznego_wprowadzenia_tekstu={ ["HNumer"]=1, }; </syntaxhighlight> Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o numerze stojącego przy wartości elementów w tej tablicy, jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}. ==== Magiczne derektywy ==== Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, ich definicja {{Patrz|p.magiczne_derektywy}}: <syntaxhighlight lang="lua"> p.magiczne_derektywy={ ["TOC"]=true, ["NOTOC"]=true, ["NOEDITSECTION"]=true, }; </syntaxhighlight> ==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ==== Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}: <syntaxhighlight lang="lua"> p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={ ["spis treści"]=true, ["spis tresci"]=true, ["spis rzeczy"]=true, }; </syntaxhighlight> Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}. ==== Artykuły nieartykularne (okładki) ==== Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}: <syntaxhighlight lang="lua"> p.artykularne_niespisowe={ [1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$", --[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$", }; </syntaxhighlight> Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły. === Przykłady === Przykładowe użycia: <syntaxhighlight lang="lua"> local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); local __FUNKCJA_PARAMETRY=nil; local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw) return nil; end; local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow) ... ---- Funkcja aktualnie nieużywana; local szablonowe_modul=require("Module:Szablonowe"); if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end; --- pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu; local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true); return tekst; end; local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek) ... return str; end; local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy"); local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); return tekst; end; local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU); ---- iterator - iterator; ---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy; local parsuj_rozdzialami=nil; for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do ... --- Gdy tekst ma rozdziały iterowalne; if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end end; if(not parsuj_rozdzialami)then ... ---- Gdy tekst nie ma rozdziałów iterowalnych; end; </syntaxhighlight> === Opis dalszy funkcji === Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną. Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne. Funkcja decyduje, czy wybrać blok z sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy kolejno, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej. ==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ==== Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana. ===== Definicje potrzebnych funkcji do opisu działającego kodu ===== Przedstawiamy tutaj definicję lokalnych funkcji. ====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ====== Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwanieNowychLiniiZnacznikowe(szablon)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szablon}} | _1 = Tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}. }} Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}. Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp). Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}. ====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ====== Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charakteryzujący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}: {{OpisParametrów | 1 = {{Code|szablon}} | _1 = Tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}. }} Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}. Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}. ====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ====== Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}, zamieniając to na spację. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local Modyfikacja=function(szablon,obiekt,kod)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}. |nagłówek1 = tak }} Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji. ====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ====== Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}. Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków. Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. * W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło. * W innych zakresach funkcja nic nie zwraca. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end; </syntaxhighlight> Parametry funkcji {{Nobold|{{ZobaczTeż|parametry znacznikowe}}}}: {{OpisParametrów | 1 = Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}. | komórka1 = tak | 2 = Parametry w wersji - szablonowe: | nagłówek2 = tak | 3 = Parametry szablonowe, gdy obiekt wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu: {{Code|SZABLON}}, wtedy one mają taką słuszność:| komórka3 = tak | 4 = {{Code|parametr1}} {{Patrz|parametr1-szablonowe}} | _4 = To nic innego jak: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika. | 5 = {{Code|parametr2}} {{Patrz|parametr2-szablonowe}} | _5 = To nic innego jak: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}}, czyli zawartość znacznika. | 6 = {{Code|parametr3}} {{Patrz|parametr3-szablonowe}} | _6 = To nic innego jak: {{Code|tabela_modyfikatorow}} {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika. | 7 = Parametry w wersji - znacznikowe:| nagłówek7 = tak | 8 = Parametry znacznikowe, gdy obiekt: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu: {{Code|ZNACZNIK}}, tutaj wtedy mamy ów:|komórka8 = tak | 9 = {{Code|parametr1}} {{Patrz|parametr1-znacznikowe}} | _9 = To nic innego jak: {{Code|nazwa}} {{LinkPatrz|nazwa|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika, | 10 = {{Code|parametr2}} {{Patrz|parametr2-znacznikowe}} | _10 = To nic innego jak: {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały}}, czyli zawartość znacznika, | 11 = {{Code|parametr3}} {{Patrz|parametr3-znacznikowe}} | _11 = To nic innego jak: {{Code|atrybuty}} {{LinkPatrz|atrybuty|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika. }} Jeżeli nic się nie zmieniło, to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie, to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}. ====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ====== Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. ; Funkcja służy do tego{{dk}} * Jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, ** Bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego. * Element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. * Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku może występować dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|komorka}} | _1 = Przetwarzana komórka - linia, | 2 = {{Code|nie_trimowanie}} | _2 = Czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować. }} Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki|&nbsp;}}}}, {{Code|{{Nowiki|&#32;}}}} i {{Code|{{Nowiki|&#x20}}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować. Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp. Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana wartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}. ====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ====== Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, ale to aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNaKody(zawartosc,czy_szablon)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zawartosc}} | _1 = Zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} | 2 = {{Code|czy_szablon}} {{Patrz|czy_szablon}} | _2 = Czy zawartość modyfikowana jest od szablonu. }} Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}. Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio. Funkcja w ten sposób zwraca zmodyfikowaną zawartość, jeśli były elementy nabierające magicznego kontrastu, lub nie. ====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ====== Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni równaniowy {{LinkPatrz|czy_rozdział_dodatni}}. ; Funkcja w przypadku rozdziału dodatniego równaniowego (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (przypominające rozdziały ujemne){{dk}} * Rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, * Jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nim we wnętrzu według jego definicji jest dowolna liczba równa się po lewej i po prawej stronie jego, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest,, ** Funkcja zastąpuje je ich zawartościami, i zastępując wszystkie znaczniki nowych linii {{Tag|br}} i kresek {{Tag|hr}}, czy szablony kolejno: {{s|Br}} i {{s|Hr}}, wtedy w głównym rozdziale dodatnim, czy przypominającym ujemnym, tego już nie ma, i mamy czyste te, które pisze się dokładnie jedną linią, a nie wieloma. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|wzór}} {{Patrz|wzor}} | _1 = Wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy). | 2 = {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} | _2 = Czy linia reprezentuje rozdział dodatni równaniowy. }} Funkcja wydziela poszczególne linie wewnątrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}. Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}, i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, jest robione, co w nagłówku powiedziane jest, a dla znaczników mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', obiektów {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} równym: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|NOWIKI}}, są specjalne znaki znacznika: {{Tag|nowiki}}, są zamieniane na kody '''{{lpg|HTML}}''', dla znaków: {{Code|<nowiki>[%!{}|=<>%[%]]</nowiki>}}, na podstawie wywołanej tam funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}, co później w ostatecznym tym elemencie znak nowej linii: {{Code|<nowiki>\n</nowiki>}}, jest zastąpiony jedną spacją. A gdy jednak te znaczniki nie mają zawartości, to są zastępowane ciagiem pustym. ===== Dalszy opis ===== Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. ====== Zmiana tekstu (Krok 1) - Upraszczanie jakikolwiek linii do najprostszej możliwej postaci, aby było możliwe rozpoznanie pewnych obiektów, nie tylko linkowych przez {{ld|StronicowyParser|Stronicowy parser}} ====== {{Tab}}Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji: {{s|R}}, {{s|RN}} i {{s|RNota}}, {{s|U}}, {{s|UN}} i {{s|UNota}}, {{s|O}} i {{s|Ref}} oraz {{s|Refn}}, znaczniki '''mechanizmu {{NS|k=mw|w=tak|l=tak}}''': {{Tag|ref}}, a także dopisująca linkom zewnętrznym nienazwanym ich numerkowe nazwy, by napisać ich numerki uruchomień, aby się zgadzała ich kolejność, a te elementy za to referencji są zamieniane w odpowiednie kody {{Strong|HTML}}, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}} (która robi inne operacje, które wykorzystamy do definicji funkcji tutaj, która coś robi), która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w opisywanym module. {{Tab}}Funkcja ta doprowadza, za pomocą funkcji: {{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}} - pierwsza funkcja w niej, do najprostrzej postaci wikitekst zakodowany: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, aby w tekście były tylko linki szablonowe, nawet iteligentne, bądź spisowe, czy typu linki wewnętrzne {{Code|LINKW}}, a nawet zewnętrzne {{Code|LINKZ}}: i rozdziały niezależnie jak są reprezentowane, czy znacznikowo, czy szablonowo, i niektóre inne, aby one były w najprostrzej postaci, aby nie było rozdziałów zagnieżdżonych jeden w drugim, szablony typu stucznego reprezentowania rozdziałów dodatnich równaniowych, są zastępowane ich zawartościami. W rozdziałach szablonowych mogą być linki, niezależnie jakie. {{HNumer|1= ======= Opis funkcji {{nobold|{{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}}}, a w nim jest, jako pierwszy argument modyfikowany tekst wnętrzna elementu innego niż przypadek szablonów i znaczników referencji - nazwane i nienazwane ======= }} Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Parametry podstawowe: | nagłówek1 = tak | 2 = Parametry tej funkcji, jak w: {{LinkZobaczTeż|parametry znacznikowe}}. | komórka2 = tak | 3 = Inne parametry: | nagłówek3 = tak | 4 = {{Code|tekst}} | _4 = Jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}. }} Funkcja modyfikuje wnętrza obiektów: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, o typie: * {{Code|SZABLON}} - pewne szablony są zastępowane ich wnętrzem lub są zastępowane ciągiem pustym, ** Szablony typu: {{s|HNumer}}, jeśli można są modyfikowane, ** Szablony cenntrowania z: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zachowywane, chyba że w swojej zawartości mają inne rozdziały dodatnie równaniowe i pozycje listy, wtedy one są zachowywane ich zawartościami. * {{Code|ZNACZNIK}} - elementy ze znacznikami są zastępowane ich zawartościami, a znaczniki typu: ** centrowania: {{Tag|center}} i nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zachowywane, lub zastępowane ich zawartościami, jeśli w sobie mają rozdziały dodatnie równaniowe lub pozycje listy. * {{Code|INNEPRE}} - składająca się z samych odstępów są zastępowane ciągiem pustym, a inne ich zawartościami, * {{Code|LINKW}} i {{Code|LINKZ}} - w nich znaczniki normalne są zastępowane ich zawartościami, lub one znaczniki nowych linii: {{Tag|br}}, i kresek: {{Tag|hr}}, są zamieniane na spacje, i analogicznie podobnie znaczniki szablonowe i też szablony nowych linii: {{s|Br}}, i kresek: {{s|Hr}}, * {{Code|WIKITABELA}} - komórki, w niej, są upraszczne do zbioru nowych linii, aby była zachowana, kolejność wierszy i komórek. ; Szablony i znaczniki nagłówków jakie modyfikujemy w funkcji są{{dk}} * Elementy do centrowania obiektów na stronie '''{{lpg|HTML}}''' w '''mechanizmie {{NS|l=tak|w=tak|k=mw}}''': ** {{s|Ce}}, {{s|Centruj}} i {{s|Center}} - szablony centrowania rozdziałów, ** {{Tag|center}} - znaczniki centrowania, * {{s|HNumer}} - szablonu sztucznych rozdziałów, * {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}} - szablony znaczników nagłówków. : Zagieżdżone formy szablonów nagłówków w nich są usuwane, także szablony i znaczniki, nowej linii i kresek, są tam zastępowane spacją. ; Szablony sztucznych nagłówków{{dk}} * {{s|HNumer}} - jeśli w sobie posiadają znaczniki {{Tag|div}}, i w nich nie ma nowej linii, ale on bezpośrednio znajduje się w tym szablonie, to ten znacznik jest zastępowany tą zawartością, a magiczność elementów, w tym znaczniku, rozdziałów dodatnich równaniowych i poyzycji listy zostaje usunięta. ====== Zmiana tekstu (Krok 2) - Upraszczanie rozdziałów, dodatnich równaniowych i pozycji list, do najprostszej postaci ====== Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w '''mechanizmie {{NS|k=mw|l=tak}}''', ta funkcja działa dla każdej linii w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. * Funkcja upraszcza zawartość tych linii (rozdziałów) do takiej postaci, by w nim nie było znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. ** Znaczniki, czy szablony, nowej linii i kreski poziomej, bądź ich szablony, czy znaki nowej linii, są zastępowane spacją. ** Ich elementy są zastępowane ich zawartościami. ; Inne obiekty * Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjalne, zastępując je na kody '''{{lpg|HTML}}'''. * Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. ** W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim. Ale w każdym bądź razie, zawartośc ich, a w nich magiczne elementy przyjmują kształt kodów języka: '''{{lpg|HTML}}'''. ====== Zmiana tekstu (Krok 3) - Doprowadenie tekstu, to jednoznaczności rozumienia szablonów rozdziałów, aby w linii, wszystko co reprezentuje główny nagłówek był w całości w niej, nigdy jako normalna część ====== ; Modyfikacja obiektów typu szablonowego{{dk}} * Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, tzn.: napisu wprowadzenia tekstu, w których ich nazwy pasują do: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia. * A szablony o nazwach z tabeli: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia. ; Typu znacznikowego{{dk}} * Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia. ; Teksty z czcionką o stałej szerokości{{dk}} * Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia. ; Specjalne obiekty{{dk}} * A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia. ==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ==== Z {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.magiczne_derektywy}}. A także po nowych liniach kreskowych wstawiany jest znak nowej linii wraz ze spacją po nich. ==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ==== Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|p.IterTekst}}, tzn. na podstawie użycia: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 3c6y08gvamdhz58o1k7cpz65dcdcao4 558121 558120 2026-09-30T17:35:07Z Persino 2851 /* Zmiana tekstu (Krok 1) - Upraszczanie jakikolwiek linii do najprostszej możliwej postaci, aby było możliwe rozpoznanie pewnych obiektów, nie tylko linkowych przez {{ld|StronicowyParser|Stronicowy parser}} */ 558121 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} == Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowany, funkcja modyfikuje nagłówki i ich zawartości rozdziałów, upraszczając je na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co jest nie potrzebne. Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie równaniowe, czy również dodatnie nierównaniowe (centrowane szablonowo, czy znaczniowo), ujemne (będące częścią pozycji listy) i zerowe (nie są tymi wcześniejszymi), do tego służy zmienna: {{Code|czy_inne_rozdzialy_analizowac}} {{LinkPatrz|czy_inne_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca całą linię rozdziału, i jego wnętrze, i nazwę rozdziału, także zwraca inne parametry, charakteryzujące nagłówek. * Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego dalszego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego. Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_inne_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU) ... return function() .... return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany; end,tekst_rozwiniety_calego_artykulu; end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony, | 2 = Nazwy strony danego określonego spisu: | nagłówek2 = tak | 3 = {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} | _3 = Jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}}, | 4 = {{Code|czy_inne_rozdzialy_analizowac}} {{Patrz|czy_inne_rozdzialy_analizowac}} | _4 = Czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe, | 5 = {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} | _5 = czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu, | 6 = Tablice wynikłe z zakodowanych zmiennych: | nagłówek6 = tak | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}. | 8 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _8 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}}, | 9 = Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:|nagłówek9 = tak | 10 = {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} | _10 = Funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zwraca jego zawartość. | 11 = {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} | _11 = Funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału), | 12 = {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} | _12 = Funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja w niej zwróci ściśle określoną wartość, która to właśnie powoduje, że ta właściwa część tej funkcji nie jest uruchamiana, ta inna część funkcja bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}. Jeśli ta funkcja nie istnieje, lub zwraca wartość nilową, to ta zmienna {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} nie zmienia się, w przeciwnym wypadku, ta ona przyjmuje wartość zwróconą z tej funkcji. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = Funkcja nie przyjmuje żadnych parametrów. | nagłówek1 = tak }} Jednoczesne parametry zwracane przez funkcję zwracaną: {{OpisParametrów | 1 = {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} | _1 = To jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią. | 2 = {{Code|str}} {{Patrz|str}} | _2 = Tekst napisu wprowadzenia tekstu (zawartość rozdziału). | 3 = {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} | _3 = Poziom aktualnego rozdziału. | 4 = {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} | _4 = Przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału. | 5 = {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} | _5 = Numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}}. | 6 = {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} | _6 = Przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym. }} === Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} === Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}. ==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ==== Pierwszą tablicą jest {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych nagłówków są w: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. ==== Szablony, projektów i tekstów, usuwane z tekstu ==== Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}: <syntaxhighlight lang="lua"> p.szablony_do_usuwania_z_tekstu={ --- szablony książkowe umieszczane na stronie głównej podręcznika ["Kolekcja"]=true, ["TODO"]=true, ["Wersja do druku"]=true, --- szablony typowo linkowe ["Dane tekstu"]=true, --- szablony linkowania do innych projektow ["MediaWiki"]=true, ["Wikipedia"]=true, ["Wikipedia kat"]=true, ["Wikipedia2"]=true, ["Commons"]=true, ["Commons ilustr kat"]=true, ["Commonsall"]=true, ["Commonscat"]=true, ["Wikiatlas"]=true, ["Wikicytaty"]=true, ["Wikicytaty przysłowia"]=true, ["Inkubator"]=true, ["Meta"]=true, ["Wikinews"]=true, ["Wikinewscat"]=true, ["Wikinewsy"]=true, ["Portal Wikinews"]=true, ["Wikisłownik"]=true, ["Wikisłownik-cat"]=true, ["Wikimedia"]=true, ["Multiwmpl"]=true, ["Wikipodróże"]=true, ["Wikispecies"]=true, ["Multisource"]=true, ["Wikiźródła"]=true, ["Wikiźródła autor"]=true, ["Wikiźródła kat"]=true, ["Wikiźródła kuch kat"]=true, ["Wikiźródła krótki"]=true, ["Wikisource-lang"]=true, }; </syntaxhighlight> Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}. Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich. ==== Szablony, z których z których zostawiane są tylko zawartości ==== Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}. ==== Inne szablony usuwane z tekstu ==== Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}: <syntaxhighlight lang="lua"> p.szablony_bez_generowania_napisowego={ ["Status"]=true, }; </syntaxhighlight> Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu. Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}: <syntaxhighlight lang="lua"> p.szablony_nie_typowo_linkowe={ ["Plik"]=true, ["Kategoria"]=true, ["Kategorie"]=true, ["Wolumin"]=true, ["SortWolumin"]=true, ["SortKuchWolumin"]=true, }; </syntaxhighlight> Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika. ==== Znaczniki szablonowe ==== Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}: <syntaxhighlight lang="lua"> p.znaczniki_szablonowe={ ["Znacznik"]=1, ["Div"]=1, ["Code"]=1, ["Tt"]=1, ["P"]=1, ["Sub"]=1, ["Sup"]=1, ["Span"]=1, ["Bdo"]=1, ["Small"]=1, ["Big"]=1, ["Strong"]=1, }; </syntaxhighlight> Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu, to jest właśnie to. ==== Szablony generujące poziomy o dowolnym poziomie ==== Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}: <syntaxhighlight lang="lua"> p.szablony_sztucznego_wprowadzenia_tekstu={ ["HNumer"]=1, }; </syntaxhighlight> Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o numerze stojącego przy wartości elementów w tej tablicy, jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}. ==== Magiczne derektywy ==== Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, ich definicja {{Patrz|p.magiczne_derektywy}}: <syntaxhighlight lang="lua"> p.magiczne_derektywy={ ["TOC"]=true, ["NOTOC"]=true, ["NOEDITSECTION"]=true, }; </syntaxhighlight> ==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ==== Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}: <syntaxhighlight lang="lua"> p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={ ["spis treści"]=true, ["spis tresci"]=true, ["spis rzeczy"]=true, }; </syntaxhighlight> Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}. ==== Artykuły nieartykularne (okładki) ==== Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}: <syntaxhighlight lang="lua"> p.artykularne_niespisowe={ [1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$", --[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$", }; </syntaxhighlight> Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły. === Przykłady === Przykładowe użycia: <syntaxhighlight lang="lua"> local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); local __FUNKCJA_PARAMETRY=nil; local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw) return nil; end; local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow) ... ---- Funkcja aktualnie nieużywana; local szablonowe_modul=require("Module:Szablonowe"); if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end; --- pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu; local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true); return tekst; end; local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek) ... return str; end; local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy"); local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); return tekst; end; local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU); ---- iterator - iterator; ---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy; local parsuj_rozdzialami=nil; for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do ... --- Gdy tekst ma rozdziały iterowalne; if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end end; if(not parsuj_rozdzialami)then ... ---- Gdy tekst nie ma rozdziałów iterowalnych; end; </syntaxhighlight> === Opis dalszy funkcji === Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną. Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne. Funkcja decyduje, czy wybrać blok z sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy kolejno, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej. ==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ==== Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana. ===== Definicje potrzebnych funkcji do opisu działającego kodu ===== Przedstawiamy tutaj definicję lokalnych funkcji. ====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ====== Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwanieNowychLiniiZnacznikowe(szablon)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szablon}} | _1 = Tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}. }} Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}. Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp). Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}. ====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ====== Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charakteryzujący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}: {{OpisParametrów | 1 = {{Code|szablon}} | _1 = Tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}. }} Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}. Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}. ====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ====== Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}, zamieniając to na spację. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local Modyfikacja=function(szablon,obiekt,kod)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}. |nagłówek1 = tak }} Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji. ====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ====== Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}. Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków. Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. * W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło. * W innych zakresach funkcja nic nie zwraca. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end; </syntaxhighlight> Parametry funkcji {{Nobold|{{ZobaczTeż|parametry znacznikowe}}}}: {{OpisParametrów | 1 = Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}. | komórka1 = tak | 2 = Parametry w wersji - szablonowe: | nagłówek2 = tak | 3 = Parametry szablonowe, gdy obiekt wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu: {{Code|SZABLON}}, wtedy one mają taką słuszność:| komórka3 = tak | 4 = {{Code|parametr1}} {{Patrz|parametr1-szablonowe}} | _4 = To nic innego jak: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika. | 5 = {{Code|parametr2}} {{Patrz|parametr2-szablonowe}} | _5 = To nic innego jak: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}}, czyli zawartość znacznika. | 6 = {{Code|parametr3}} {{Patrz|parametr3-szablonowe}} | _6 = To nic innego jak: {{Code|tabela_modyfikatorow}} {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika. | 7 = Parametry w wersji - znacznikowe:| nagłówek7 = tak | 8 = Parametry znacznikowe, gdy obiekt: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu: {{Code|ZNACZNIK}}, tutaj wtedy mamy ów:|komórka8 = tak | 9 = {{Code|parametr1}} {{Patrz|parametr1-znacznikowe}} | _9 = To nic innego jak: {{Code|nazwa}} {{LinkPatrz|nazwa|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika, | 10 = {{Code|parametr2}} {{Patrz|parametr2-znacznikowe}} | _10 = To nic innego jak: {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały}}, czyli zawartość znacznika, | 11 = {{Code|parametr3}} {{Patrz|parametr3-znacznikowe}} | _11 = To nic innego jak: {{Code|atrybuty}} {{LinkPatrz|atrybuty|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika. }} Jeżeli nic się nie zmieniło, to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie, to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}. ====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ====== Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. ; Funkcja służy do tego{{dk}} * Jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, ** Bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego. * Element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. * Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku może występować dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|komorka}} | _1 = Przetwarzana komórka - linia, | 2 = {{Code|nie_trimowanie}} | _2 = Czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować. }} Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki|&nbsp;}}}}, {{Code|{{Nowiki|&#32;}}}} i {{Code|{{Nowiki|&#x20}}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować. Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp. Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana wartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}. ====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ====== Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, ale to aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZamienNaKody(zawartosc,czy_szablon)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zawartosc}} | _1 = Zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} | 2 = {{Code|czy_szablon}} {{Patrz|czy_szablon}} | _2 = Czy zawartość modyfikowana jest od szablonu. }} Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}. Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio. Funkcja w ten sposób zwraca zmodyfikowaną zawartość, jeśli były elementy nabierające magicznego kontrastu, lub nie. ====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ====== Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni równaniowy {{LinkPatrz|czy_rozdział_dodatni}}. ; Funkcja w przypadku rozdziału dodatniego równaniowego (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (przypominające rozdziały ujemne){{dk}} * Rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, * Jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nim we wnętrzu według jego definicji jest dowolna liczba równa się po lewej i po prawej stronie jego, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest,, ** Funkcja zastąpuje je ich zawartościami, i zastępując wszystkie znaczniki nowych linii {{Tag|br}} i kresek {{Tag|hr}}, czy szablony kolejno: {{s|Br}} i {{s|Hr}}, wtedy w głównym rozdziale dodatnim, czy przypominającym ujemnym, tego już nie ma, i mamy czyste te, które pisze się dokładnie jedną linią, a nie wieloma. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|wzór}} {{Patrz|wzor}} | _1 = Wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy). | 2 = {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} | _2 = Czy linia reprezentuje rozdział dodatni równaniowy. }} Funkcja wydziela poszczególne linie wewnątrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}. Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}, i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, jest robione, co w nagłówku powiedziane jest, a dla znaczników mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', obiektów {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} równym: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|NOWIKI}}, są specjalne znaki znacznika: {{Tag|nowiki}}, są zamieniane na kody '''{{lpg|HTML}}''', dla znaków: {{Code|<nowiki>[%!{}|=<>%[%]]</nowiki>}}, na podstawie wywołanej tam funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}, co później w ostatecznym tym elemencie znak nowej linii: {{Code|<nowiki>\n</nowiki>}}, jest zastąpiony jedną spacją. A gdy jednak te znaczniki nie mają zawartości, to są zastępowane ciagiem pustym. ===== Dalszy opis ===== Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. ====== Zmiana tekstu (Krok 1) - Upraszczanie jakikolwiek linii do najprostszej możliwej postaci, aby było możliwe rozpoznanie pewnych obiektów, nie tylko linkowych przez {{ld|StronicowyParser|Stronicowy parser}} ====== {{Tab}}Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji: {{s|R}}, {{s|RN}} i {{s|RNota}}, {{s|U}}, {{s|UN}} i {{s|UNota}}, {{s|O}} i {{s|Ref}} oraz {{s|Refn}}, znaczniki '''mechanizmu {{NS|k=mw|w=tak|l=tak}}''': {{Tag|ref}}, a także dopisująca linkom zewnętrznym nienazwanym ich numerkowe nazwy, by napisać ich numerki uruchomień, aby się zgadzała ich kolejność, a te elementy za to referencji są zamieniane w odpowiednie kody {{Strong|HTML}}, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}} (która robi inne operacje, które wykorzystamy do definicji funkcji tutaj, która coś robi), która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w opisywanym module. {{Tab}}Funkcja ta doprowadza, za pomocą funkcji: {{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}} - pierwsza funkcja w niej, do najprostrzej postaci wikitekst zakodowany: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, aby w tekście były tylko linki szablonowe, nawet iteligentne, bądź spisowe, czy typu linki wewnętrzne {{Code|LINKW}}, a nawet zewnętrzne {{Code|LINKZ}}: i rozdziały niezależnie jak są reprezentowane, czy znacznikowo, czy szablonowo, i niektóre inne, aby one były w najprostrzej postaci, aby nie było rozdziałów zagnieżdżonych jeden w drugim, szablony typu stucznego reprezentowania rozdziałów dodatnich równaniowych, są zastępowane ich zawartościami. W rozdziałach szablonowych mogą być linki, niezależnie jakie. {{HNumer|1= ======= Opis funkcji {{nobold|{{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}}}, a w nim jest, jako pierwszy argument modyfikowany tekst wnętrzna elementu innego niż przypadek szablonów i znaczników referencji - nazwane i nienazwane ======= }} Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Parametry podstawowe: | nagłówek1 = tak | 2 = Parametry tej funkcji, jak w: {{LinkZobaczTeż|parametry znacznikowe}}. | komórka2 = tak | 3 = Inne parametry: | nagłówek3 = tak | 4 = {{Code|tekst}} | _4 = Jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}. }} Funkcja modyfikuje wnętrza obiektów: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, o typie: * {{Code|SZABLON}} - pewne szablony są zastępowane ich wnętrzem lub są zastępowane ciągiem pustym, ** Szablony typu: {{s|HNumer}}, jeśli można są modyfikowane, ** Szablony cenntrowania z: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zachowywane, chyba że w swojej zawartości mają inne rozdziały dodatnie równaniowe i pozycje listy, wtedy one są zachowywane ich zawartościami. * {{Code|ZNACZNIK}} - elementy ze znacznikami są zastępowane ich zawartościami, a znaczniki typu: ** centrowania: {{Tag|center}} i nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zachowywane, lub zastępowane ich zawartościami, jeśli w sobie mają rozdziały dodatnie równaniowe lub pozycje listy. * {{Code|INNEPRE}} - składająca się z samych odstępów są zastępowane ciągiem pustym, a inne ich zawartościami, * {{Code|LINKW}} i {{Code|LINKZ}} - w nich znaczniki normalne są zastępowane ich zawartościami, lub one znaczniki nowych linii: {{Tag|br|pojedynczy}}, i kresek: {{Tag|hr|pojedynczy}}, są zamieniane na spacje, i analogicznie podobnie znaczniki szablonowe i też szablony nowych linii: {{s|Br}}, i kresek: {{s|Hr}}, * {{Code|WIKITABELA}} - komórki, w niej, są upraszczne do zbioru nowych linii, aby była zachowana, kolejność wierszy i komórek. ; Szablony i znaczniki nagłówków jakie modyfikujemy w funkcji są{{dk}} * Elementy do centrowania obiektów na stronie '''{{lpg|HTML}}''' w '''mechanizmie {{NS|l=tak|w=tak|k=mw}}''': ** {{s|Ce}}, {{s|Centruj}} i {{s|Center}} - szablony centrowania rozdziałów, ** {{Tag|center}} - znaczniki centrowania, * {{s|HNumer}} - szablonu sztucznych rozdziałów, * {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}} - szablony znaczników nagłówków. : Zagieżdżone formy szablonów nagłówków w nich są usuwane, także szablony i znaczniki, nowej linii i kresek, są tam zastępowane spacją. ; Szablony sztucznych nagłówków{{dk}} * {{s|HNumer}} - jeśli w sobie posiadają znaczniki {{Tag|div}}, i w nich nie ma nowej linii, ale on bezpośrednio znajduje się w tym szablonie, to ten znacznik jest zastępowany tą zawartością, a magiczność elementów, w tym znaczniku, rozdziałów dodatnich równaniowych i poyzycji listy zostaje usunięta. ====== Zmiana tekstu (Krok 2) - Upraszczanie rozdziałów, dodatnich równaniowych i pozycji list, do najprostszej postaci ====== Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w '''mechanizmie {{NS|k=mw|l=tak}}''', ta funkcja działa dla każdej linii w tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. * Funkcja upraszcza zawartość tych linii (rozdziałów) do takiej postaci, by w nim nie było znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. ** Znaczniki, czy szablony, nowej linii i kreski poziomej, bądź ich szablony, czy znaki nowej linii, są zastępowane spacją. ** Ich elementy są zastępowane ich zawartościami. ; Inne obiekty * Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjalne, zastępując je na kody '''{{lpg|HTML}}'''. * Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. ** W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim. Ale w każdym bądź razie, zawartośc ich, a w nich magiczne elementy przyjmują kształt kodów języka: '''{{lpg|HTML}}'''. ====== Zmiana tekstu (Krok 3) - Doprowadenie tekstu, to jednoznaczności rozumienia szablonów rozdziałów, aby w linii, wszystko co reprezentuje główny nagłówek był w całości w niej, nigdy jako normalna część ====== ; Modyfikacja obiektów typu szablonowego{{dk}} * Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, tzn.: napisu wprowadzenia tekstu, w których ich nazwy pasują do: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia. * A szablony o nazwach z tabeli: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia. ; Typu znacznikowego{{dk}} * Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia. ; Teksty z czcionką o stałej szerokości{{dk}} * Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia. ; Specjalne obiekty{{dk}} * A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia. ==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ==== Z {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.magiczne_derektywy}}. A także po nowych liniach kreskowych wstawiany jest znak nowej linii wraz ze spacją po nich. ==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ==== Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, według funkcji: {{LinkŚródtytuł|p.IterTekst}}, tzn. na podstawie użycia: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> bpi76jat3nc75rtr3t54n5ce3lhk1xc Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I 4 63908 558134 557571 2026-10-01T05:53:31Z Persino 2851 558134 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Przedstawione są tu funkcje do zbierania informacji o uchwycie. == {{Śródtytuł|p.UstawUchwytyWeTablicyBezNumeracji}}{{Code|p.UstawUchwytyWeTablicyBezNumeracji}} == Funkcja zbiera uchwyty, dla obiektów {{ZobaczTeż|p.UstawUchwytyWeTablicyBezNumeracji}}, bez numeracji, nie licząc obiektów tekstu, takich jak {{s|Śródtekst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawUchwytyWeTablicyBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} {{Patrz|self}} | _1 = Zmienna obiektowa modułu {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}} {{Patrz|StronicowyParser/ZbieranieDanychStron}}. | 2 = {{Code|tabela_elementow_strony_kodow}} {{Patrz|tabela_elementow_strony_kodow}} | _2 = Zmienna zbierająca takie kody jak {{LinkZobaczTeż|p.UstawUchwytyWeTablicyBezNumeracji}}. | 3 = {{Code|nazwa_obiektu}} {{Patrz|nazwa obiektu}} | _3 = Nazwa obiektu. | 4 = {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} | _4 = Pozycja w normalnej tabeli uchwytów i przeważnie ich numeracji, a tutaj dla tego obiektu. | 5 = {{Code|kod}} {{Patrz|kod}} | _5 = Numer kodu dla tego obiektu. }} Funkcja zbiera elementy tablicy: {{Code|lista_dwuelementowa}} {{LinkPatrz|lista_dwuelementowa}}, w tablicy wielowymiarowej o pierwszym elemencie wymiaru o wartości: {{Code|nazwa obiektu}} {{LinkPatrz|nazwa obiektu}}, i trzecim o wartości: {{Code|kod}} {{LinkPatrz|kod}}, oraz o drugim: {{Code|uchwyty_bez_numeracji}} {{Patrz|uchwyty_bez_numeracji}}. Ta tablica: {{Code|lista_dwuelementowa}} {{LinkPatrz|lista_dwuelementowa}}, ma pierwszy element, którym jest element numerowany na pozycji: {{Code|1}}, którym jest uchwyt danego obiektu o wartości zmiennej: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, drugiem elementem jest wyliczony numer strony, a tutaj tego numeru, nigdynie ma prawa być. Ta funkcja jest wykorzystywana do liczenia szablonów tytułów: {{s|Śródtytuł}}, którego zawartość nagłówka, na który on wskazuje, jest do pobierana w tym przypadku przy pomocy szablonu: {{s|LinkŚródtytuł}} lub {{s|LinkŚródtytułTutaj}}. Nie są uwzględniane przy tym szablony ustawiania: {{s|Śródtekst}}, i pobierania: {{s|PobierzŚródtekst}}, bo one w naszej tablicy nic nie zmieniają. == {{Śródtytuł|p.WydobywanieUchwytuZeTablicyBezNumeracji}}{{Code|p.WydobywanieUchwytuZeTablicyBezNumeracji}} == Funkcja wydowywa tablicę uchwytu dla pozycji, ale nie sam uchwyt, dla podtablicy: {{Code|uchwyty_bez_numeracji}} {{LinkPatrz|uchwyty_bez_numeracji}}, o danym kodzie: {{Code|kod}} {{LinkPatrz|kod}}, dla nazwy obiektu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.WydobywanieUchwytuZeTablicyBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self}}. | 2 = {{Code|tabela_elementow_strony_kodow}} | _2 = Jak w: {{LinkPatrz|tabela_elementow_strony_kodow}}. | 3 = {{Code|nazwa_obiektu}} | _3 = Jak w: {{LinkPatrz|nazwa_obiektu}}. | 4 = {{Code|kod}} | _4 = Jak w: {{LinkPatrz|kod}}. }} Funkcja wykorzystuje elementy tablicy: {{Code|uchwyty_bez_numeracji}} {{LinkPatrz|uchwyty_bez_numeracji}}, ustalane przez funkcję: {{LinkŚródtytuł|p.UstawUchwytyWeTablicyBezNumeracji}}, w tablicy: {{Code|tabela_elementow_strony_kodow}} {{LinkPatrz|tabela_elementow_strony_kodow}}. == {{Śródtytuł|p.RozpatrywanieElementuUchwytuNumeracji}}{{Code|p.RozpatrywanieElementuUchwytuNumeracji}} == Funkcja wsadzająca utworzoną tablicę z podanym uchwytem do ogólnej tablicy pozycji nazwanych tabel z uchwytami o danej pozycji z nim. Ta tablicą jest: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a własciwie do jej podtablicy o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, a jeszcze lepiej, w jego podtablicy o kluczu o wartości reprezentowanej przez: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.RozpatrywanieElementuUchwytuNumeracji(self,uchwyt_obiektu,tab_numer,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self}}. | 2 = {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} | _2 = Kod uchwytu podanego do szablonu stronicowego z odpowiednim uchwytem. | 3 = {{Code|tab_numer}} {{Patrz|tab_numer}} | _3 = Tablica z numerkami ilości elementów w tablicy parametrów nazwanych z uchwytami, w danym elemencie analizowania strony z uchwytami i obiektami. | 4 = {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}} | _4 = Tablica analizowania obiektów, danej strony. | 5 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} {{Patrz|nazwa_artykulu}} | _5 = Kolejno: nazwa przestrzeni nazw, nazwa przestrzeni książki, nazwa książki i nazwa artykułu książki. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu}}. | 7 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _7 = Czy artykuł aktualny wyświetlany w przeglądarce. | 8 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _8 = Nazwa artykułu aktualna lub bieżąca, w wersji nieszablonowej, i jednoczeście uchwyt do bazy danych kodów zakodowanego tekstu. | 9 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _9 = Nazwa artykułu aktualna lub bieżąca, w wersji szablonowej. | 10 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _10 = Tablica bazy kodów parsowania strony. | 11 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _11 = Tablica analizy poszczególnych elementów kodów, do szybszego działania skryptu. | 12 = {{Code|KtorySzablonMaZwracacKategorie}} {{Patrz|KtorySzablonMaZwracacKategorie}} | _12 = Tablica zbierająca odkodowany i rozwinięty uchwyt, do analizowania w nim zebranych kategorii, według modułu: {{Code|{{ld2|StronicowyParser/Kategorie}}}}, uruchamiana w szablonach stronicowych z funkcjami '''stronicowego parsera'''. }} Funkcja rozwija: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a potem je odkodowuje przy pomocy: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a jeżeli ona nie jest pusta, to dla tego jest uruchamiana funkcja: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie}}. Tworzona jest tablica: {{Code|lista_dwuelementowa}} {{LinkPatrz|lista_dwuelementowa}}, z uchwytem, jako pierwszy parametr. Jest sprawdzane, czy element: {{Code|tablica_zmiennych.sprawdzenie_dokonane_obiektu}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_obiektu}}, jest fałszywy, jeżeli tak, to dalej jest sprawdzane, czy są elementy numerowane nazwanej tablicy: {{Code|tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2}}, o nazwie: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, a jeżeli jest pusta - na samym końcu jest ustawiana prawdziwość elementu: {{Code|tablica_zmiennych.sprawdzenie_dokonane_obiektu}} {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_obiektu}}, czyli jest inicjowana na wartość: {{Code|true}}, to dalej jest sprawdzane, czy dla elementów: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy dana książka jest poza zakresem obsługiwanym, czyli rewidowane jest, czy jest ustawiony kod problemu: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, czy a jeżeli jednak nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, ustawiające pewne elementy błędu, jeżeli trzeba to zrobić. Gdy tabela: {{Code|tab_numer}} {{LinkPatrz|tab_numer}}, odpowiada nienilowej tablicy, wtedy element: {{Code|lista_dwuelementowa}} {{LinkPatrz|lista_dwuelementowa}}, jest wstawiany na odpowiedniej pozycji, ale przeważnie nie na końcu, przy pomocy funkcji: {{LzLua|table.insert}}, dzięki określonej tabeli: {{Code|tab_numer}} {{LinkPatrz|tab_numer}}, przeciwnie na jej końcu. Funkcja zwraca element tablicowy: {{Code|lista_dwuelementowa}} {{LinkPatrz|lista_dwuelementowa}}. Ta tablica: {{Code|lista_dwuelementowa}} {{LinkPatrz|lista_dwuelementowa}}, ma pierwszy element, którym jest element numerowany na pozycji: {{Code|1}}, którym jest uchwyt danego obiektu o wartości zmiennej: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}. == {{Śródtytuł|p.RozpatrywanieSzablonuObiektuDoNumeracji}}{{Code|p.RozpatrywanieSzablonuObiektuDoNumeracji}} == Funkcja, która uruchamia funkcję: {{LinkŚródtytuł|p.RozpatrywanieElementuUchwytuNumeracji}} {{Patrz|p.RozpatrywanieElementuUchwytuNumeracji}}, dla istniejącego uchwytu w postaci nazwanej o kluczu: {{Code|uchwyt}} {{Patrz|uchwyt}}, lub nienazwanej - w postaci numeru jego uchwytu o kluczu o wartości zmiennej: {{Code|numer_numeracji}} {{Patrz|numer_numeracji}}. Funkcja ta wsadza tabele z uchwytem na odpowiednią pozycję w odpowiedniej nazwanej tabeli o nazwie obiektu o wartości: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, w ogólnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Dokładniej własciwie w tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, do jej podtablicy o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, a jeszcze lepiej, w jego podtablicy o kluczu o wartości reprezentowanej przez: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}. To jest robione poprzez funkcję: {{LinkPatrz|p.RozpatrywanieElementuUchwytuNumeracji}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji,tab_numer,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self}}. | 2 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _2 = Tabela parametrów szablonu. | 3 = {{Code|tablica_zmiennych}} | _3 = Jak w: {{LinkPatrz|tablica_zmiennych}}. | 4 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _4 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu}}. | 6 = {{Code|czy_artykul_korzystany}} | _6 = Jak w: {{LinkPatrz|czy_artykul_korzystany}}. | 7 = {{Code|numer_numeracji}} | _7 = Jak w: {{LinkPatrz|numer_numeracji}}. | 8 = {{Code|tab_numer}} | _8 = Jak w: {{LinkPatrz|tab_numer}}. | 9 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _9 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}. | 10 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _10 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa}}. | 11 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _11 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. | 12 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _12 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. | 13 = {{Code|KtorySzablonMaZwracacKategorie}} | _13 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie}}. }} Funkcja zwraca wartość: {{Code|lista_dwuelementowa}} {{LinkPatrz|lista_dwuelementowa}}, którą jest pewna tablica, uzyskaną z wywołania funkcji: {{LinkPatrz|p.RozpatrywanieElementuUchwytuNumeracji}}. Ta tablica: {{Code|lista_dwuelementowa}} {{LinkPatrz|lista_dwuelementowa}}, ma pierwszy element, którym jest element numerowany na pozycji: {{Code|1}}, którym jest uchwyt danego obiektu o wartości zmiennej: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> jj58ggtyvw82p594omx3xdtd8tcd30j Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II 4 63909 558135 557572 2026-10-01T06:08:51Z Persino 2851 558135 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Śródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}}{{Code|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji}} == Funkcja sprawdza, czy dany artykuł należy do artykułów, któregoś spisu treści, a jeżeli nie, to dla stron, które nie należą do kategorii z ustawionym problemem: {{Code|strony poza zakresem obsługiwanym}} {{Patrz|strony poza zakresem obsługiwanym}}, ale do nieaktualnej strony jest ustawiony problem: {{Code|brak spisów treści do dołączonych stron}} {{Code|brak spisów treści do dołączonych stron}} {{Patrz|brak spisów treści do dołączonych stron}}. Natomiast dla aktualnej dla stron tej samej kategorii ustawiany jest problem: {{Code|brak spisu treści do korzystanych stron}} {{Patrz|brak spisu treści do korzystanych stron}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _2 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. }} == {{Śródtytuł|p.PusteParametryReferencji}}{{Code|p.PusteParametryReferencji}} == Funkcja sprawdza, jeśli są podane parametry szablonu stronicowego, które są w kategorii: {{lk|Szablony stronicowe}}, czyli: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, ewentualnie: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, ale zawsze z: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, czy są one puste. A jeżeli one istnieją i są takie, to są ustawione problemy typu, jeśli ich wcześniej nie ustawiono: * {{Code|puste parametry szablonów stronicowych linkujących}} {{Patrz|puste parametry szablonów stronicowych linkujących}}, kolejno dla: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, kolejno z numerami problemów: {{Code|1}}, {{Code|2}} i {{Code|3}}. Dla obiektu o nazwie: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. {{Hr}} Definicja skrótowa funkcji <syntaxhighlight lang="lua"> function p.PusteParametryReferencji(self, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)...end; </syntaxhighlight> Paraametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _2 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 3 = {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} | _3 = Uchwyt obiektu, podane w danym szablonie stronicowym. | 4 = {{Code|nazwa_obiektu}} | _4 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. }} == {{Śródtytuł|p.SzablonyReferencjiParametrowych}}{{Code|p.SzablonyReferencjiParametrowych}} == Funkcja z parametrów pudełkowych nazwy artykułu {{ZobaczTeż|nazwa artykułu}}: {{Code|nazwa artykułu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, albo {{Code|1}}, gdy bezuchwytowe, lub {{Code|2}}, i pełnej nazwy książki {{ZobaczTeż|pełna nazwa strony}}: {{Code|nazwa książki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} albo, {{Code|2}}, gdy bezuchwytowe, lub {{Code|3}}. To wszystko jest liczone z: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, lub przy użyciu parametru również: {{Code|bezuchwytowe}} {{Patrz|bezuchwytowe}}, gdy mamy szablon stronicowy {{lk|Szablony stronicowe}}, bezuchwytowy, wtedy {{Code|true}}, przeciwnie {{Code|false/nil}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,bezuchwytowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 3 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _3 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _5 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|bezuchwytowe}} | _6 = Jak w: {{LinkPatrz|bezuchwytowe}}. }} Funkcja uzyskane obie nazwy książkowe dekoduje funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, a później jest liczony adres bezwzględny podręcznika ze względnego dzięki: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, przy pomocy podstawy: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, podobnie, ale wcześniej jest liczona nazwa artykułu {{LinkZobaczTeż|nazwa artykułu}}, czyli: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, ale tutaj adres względny jest liczony z podstawy o ciągu pustym jako drugi parametr. Na podstawie pełnej nazwy książki {{LinkZobaczTeż|pełna nazwa strony}}: jest liczona bardziej jej wersja pełniejsza, jeżeli to jest w ogóle możliwe z: {{Code|{{sr|#p["PełnaNazwaStronicowejKsiążki"]|p=Książkowe}}}}. A póżniej z tego wszystkiego są liczone nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy pomocy funkcji nazw: {{Code|{{ld2|Nazwy}}}}. Na samym końcu funkcji są zwracane parametry nazw, czyli: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> l7qmvybd9id0xxmx518q3iwhivdod64 Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom III 4 63910 558136 557593 2026-10-01T06:47:03Z Persino 2851 558136 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Tutaj są przedstawione inne funkcje do zbierania informacji o projekcie. == {{Śródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}{{Code|p.ZbieranieInformacjiStronyWoluminowychPozycji}} == Funkcja zbierania informacji na stronie dla szablonów stronicowych: {{lk|Szablony stronicowe}}, bezuchwytowych, ale nie kontenerowych. Gdy parametr nie ma wartości, lub ma wartość fałszywą: {{Code|czy_inna_wartosc_tekst}} {{Patrz|czy_inna_wartosc_tekst}}, wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, która liczy kolejne nazwy charakteryzujące nazwy dla danego artykułu książki dla danej strony, przeciwnie parametry nazw są ściagane z: {{Code|tab_nazwy}} {{Patrz|tab_nazwy}}, ta tabela składa się numerowanych elementów, którymi są nazwy charakyteryzujące stronę. Gdy jakaś nazwa artykułu strony została policzona, wtedy są liczone pozostałe nazwy z: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, a na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}} - ona służy do zbierania informacji o stronie, a tuż przed nim, jeśli istnieje: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 3 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _3 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _4 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|KtorySzablonMaZwracacKategorie}} | _7 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|czy_inna_wartosc_tekst}} | _8 = Jak w: {{LinkPatrz|czy_inna_wartosc_tekst}}. | 9 = {{Code|tab_nazwy}} | _9 = Jak w: {{LinkPatrz|tab_nazwy}}. }} == {{Śródtytuł|p.ZbieranieKontenerowychInformacji}}{{Code|p.ZbieranieKontenerowychInformacji}} == Funkcja do zbierania informacji, która z parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, czyli: {{Code|nazwa przestrzeni nazw}} {{Patrz|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}, z nich są liczone parametry nazw charakteryzujące artykuł książki strony. A na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}} {{Patrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}. Funkcja służy do analizy szablonów kontenerowych, na podstawie jego parametrów pudełkowych modułu: {{Code|{{m|Szablonowe}}}}, tzn. {{Code|nazwa przestrzeni nazw}} {{LinkPatrz|nazwa przestrzeni nazw}} (przestrzeń, w której mieśści się strona) i {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}} (nazwa strony). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 3 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _3 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _4 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{Patrz|czy_szablon_pudelkowy_strony_zbiorczej}} | _7 = Funkcja potrzebna do funkcji zbierającej {{LinkPatrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, określającej, czy mamy szablon pudełkowy strony zbiorczej, taki jak: {{Code|{{s|StronaSubst}}}}, czy: {{Code|{{s|KsiążkaSubst}}}}, zobacz stronę: {{Code|{{lr2|Moduły/StronicowyParser/StronaSubst}}}}. | 8 = {{Code|KtorySzablonMaZwracacKategorie}} | _8 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. }} Gdy parametry: {{Code|nazwa przestrzeni nazw}} {{LinkPatrz|nazwa przestrzeni nazw}}, i {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}, uzyskane z tabeli parametrów szablonu: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, nie istnieją, wtedy funkcja się natychmiast zakańcza. A gdy: {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}, istnieje i jest puste, wtedy też tak samo. Gdy w parametrach pudełkowych: {{Code|nazwa przestrzeni nazw}} {{LinkPatrz|nazwa przestrzeni nazw}}, i {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}, są kody bazy kodowania, wtedy funkcja się natychmiast zakańcza, wykrywane przez funkcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}. Zmienne istniejące: {{Code|nazwa przestrzeni nazw}} {{LinkPatrz|nazwa przestrzeni nazw}}, i {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}, są też dekodowane funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. Z: {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}, jest wydzielana nazwa jednostki właściwa bez nazwy nagłówka, którą nazwiemy tą samą zmienną. Z tych dwóch nazw, czyli: {{Code|nazwa przestrzeni nazw}} {{LinkPatrz|nazwa przestrzeni nazw}}, i {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}, jest liczony adres, ewentualnie względny, który za pomocą funkcji: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, jest przeistaczany na bezwzględny. Dalej są liczone nazwy charakteryzujące artykuł danej książki strony, czyli: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z tak uzyskanego adresu. Przedostatnia funkcja, którą jest funkcją ostatnią przed funkcją zbierającą, czyli: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jeśli istnieje, to jest uruchamiana bezparametrowo, która służy do ustalania, który szablon ma zwracać kategorie na stronę. == {{Śródtytuł|p.ZbieranieKontenerowychInformacjiReferencji}}{{Code|p.ZbieranieKontenerowychInformacjiReferencji}} == Funkcja zbiera informacje o stronie. Na podstawie informacji o nazwie artykułu i pełnej nazwy książki liczy parametry nazw charakteryzujące artykuł, co na tej podstawiwe liczy parametry pudełkowe i wywołuje funkcję główną przez inną funkcję, też zbierającą, i zbiera informacje o artykule. Funkcję wykorzystuje się przy analizie linków, jeśli chcemy, by ładowana strona inna niż bieżąca, w której miesci się ten link, została przeanalizowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 3 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _3 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _4 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. }} Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jako parametry zwracane przez funkcję: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Funkcja wyznacza parametry pudełkowe {{m|Pudełko}}, tzn.: {{Code|nazwa przestrzeni nazw}} {{LinkPatrz|nazwa przestrzeni nazw}}, i {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}, na podstawie tych nazw. Funkcja na samym końcu wywołuje funkcję zbierającą dane ze strony: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}} (z uwzględnieniem parametru: {{Code|tab_nazwy}} {{LinkPatrz|tab_nazwy}}), która z kolei w niej jest uruchamiana procedura, z parametrem: {{Code|czy_inna_wartosc_tekst}} {{LinkPatrz|czy_inna_wartosc_tekst}}, o wartości {{Code|true}}, zwracająca wartość, czyli: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> fa2bmyjx2v0771tgs5eh2bu3q2jbbah 558137 558136 2026-10-01T06:47:47Z Persino 2851 /* {{Śródtytuł|p.ZbieranieKontenerowychInformacji}}{{Code|p.ZbieranieKontenerowychInformacji}} */ 558137 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Tutaj są przedstawione inne funkcje do zbierania informacji o projekcie. == {{Śródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}}{{Code|p.ZbieranieInformacjiStronyWoluminowychPozycji}} == Funkcja zbierania informacji na stronie dla szablonów stronicowych: {{lk|Szablony stronicowe}}, bezuchwytowych, ale nie kontenerowych. Gdy parametr nie ma wartości, lub ma wartość fałszywą: {{Code|czy_inna_wartosc_tekst}} {{Patrz|czy_inna_wartosc_tekst}}, wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, która liczy kolejne nazwy charakteryzujące nazwy dla danego artykułu książki dla danej strony, przeciwnie parametry nazw są ściagane z: {{Code|tab_nazwy}} {{Patrz|tab_nazwy}}, ta tabela składa się numerowanych elementów, którymi są nazwy charakyteryzujące stronę. Gdy jakaś nazwa artykułu strony została policzona, wtedy są liczone pozostałe nazwy z: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, a na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}} - ona służy do zbierania informacji o stronie, a tuż przed nim, jeśli istnieje: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 3 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _3 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _4 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|KtorySzablonMaZwracacKategorie}} | _7 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|czy_inna_wartosc_tekst}} | _8 = Jak w: {{LinkPatrz|czy_inna_wartosc_tekst}}. | 9 = {{Code|tab_nazwy}} | _9 = Jak w: {{LinkPatrz|tab_nazwy}}. }} == {{Śródtytuł|p.ZbieranieKontenerowychInformacji}}{{Code|p.ZbieranieKontenerowychInformacji}} == Funkcja do zbierania informacji, która z parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, czyli: {{Code|nazwa przestrzeni nazw}} {{Patrz|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}, z nich są liczone parametry nazw charakteryzujące artykuł książki strony. A na samym końcu jest uruchamiana funkcja: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}} {{Patrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}. Funkcja służy do analizy szablonów kontenerowych, na podstawie jego parametrów pudełkowych modułu: {{Code|{{m|Szablonowe}}}}, tzn. {{Code|nazwa przestrzeni nazw}} {{LinkPatrz|nazwa przestrzeni nazw}} (przestrzeń, w której mieśści się strona) i {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}} (nazwa strony). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 3 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _3 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _4 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|czy_szablon_pudelkowy_strony_zbiorczej}} {{Patrz|czy_szablon_pudelkowy_strony_zbiorczej}} | _7 = Funkcja potrzebna do funkcji zbierającej {{LinkPatrz|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}, określającej, czy mamy szablon pudełkowy strony zbiorczej, taki jak: {{Code|{{s|StronaSubst}}}}, czy: {{Code|{{s|KsiążkaSubst}}}}, zobacz stronę: {{Code|{{lr2|Moduły/StronicowyParser/StronaSubst}}}}. | 8 = {{Code|KtorySzablonMaZwracacKategorie}} | _8 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. }} Gdy parametry: {{Code|nazwa przestrzeni nazw}} {{LinkPatrz|nazwa przestrzeni nazw}}, i {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}, uzyskane z tabeli parametrów szablonu: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, nie istnieją, wtedy funkcja się natychmiast zakańcza. A gdy: {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}, istnieje i jest puste, wtedy też tak samo. Gdy w parametrach pudełkowych: {{Code|nazwa przestrzeni nazw}} {{LinkPatrz|nazwa przestrzeni nazw}}, i {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}, są kody bazy kodowania, wtedy funkcja się natychmiast zakańcza, wykrywane przez funkcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}. Zmienne istniejące: {{Code|nazwa przestrzeni nazw}} {{LinkPatrz|nazwa przestrzeni nazw}}, i {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}, są też dekodowane funkcją: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. Z: {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}, jest wydzielana nazwa jednostki właściwa bez nazwy nagłówka, którą nazwiemy tą samą zmienną. Z tych dwóch nazw, czyli: {{Code|nazwa przestrzeni nazw}} {{LinkPatrz|nazwa przestrzeni nazw}}, i {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}, jest liczony adres, ewentualnie względny, który za pomocą funkcji: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, jest przeistaczany na bezwzględny. Dalej są liczone nazwy charakteryzujące artykuł danej książki strony, czyli: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z tak uzyskanego adresu. Przedostatnia funkcja, którą jest funkcją ostatnią przed funkcją zbierającą, czyli: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jeśli istnieje, to jest uruchamiana bezparametrowo, która służy do ustalania, który szablon ma zwracać kategorie na stronę. == {{Śródtytuł|p.ZbieranieKontenerowychInformacjiReferencji}}{{Code|p.ZbieranieKontenerowychInformacjiReferencji}} == Funkcja zbiera informacje o stronie. Na podstawie informacji o nazwie artykułu i pełnej nazwy książki liczy parametry nazw charakteryzujące artykuł, co na tej podstawiwe liczy parametry pudełkowe i wywołuje funkcję główną przez inną funkcję, też zbierającą, i zbiera informacje o artykule. Funkcję wykorzystuje się przy analizie linków, jeśli chcemy, by ładowana strona inna niż bieżąca, w której miesci się ten link, została przeanalizowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 3 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _3 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _4 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. }} Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jako parametry zwracane przez funkcję: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Funkcja wyznacza parametry pudełkowe {{m|Pudełko}}, tzn.: {{Code|nazwa przestrzeni nazw}} {{LinkPatrz|nazwa przestrzeni nazw}}, i {{Code|nazwa jednostki}} {{LinkPatrz|nazwa jednostki}}, na podstawie tych nazw. Funkcja na samym końcu wywołuje funkcję zbierającą dane ze strony: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyWoluminowychPozycji}} (z uwzględnieniem parametru: {{Code|tab_nazwy}} {{LinkPatrz|tab_nazwy}}), która z kolei w niej jest uruchamiana procedura, z parametrem: {{Code|czy_inna_wartosc_tekst}} {{LinkPatrz|czy_inna_wartosc_tekst}}, o wartości {{Code|true}}, zwracająca wartość, czyli: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> pv2nsjw13x0b96xgjuxeph5l16w9e8j Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom V 4 63912 558138 557587 2026-10-01T07:06:10Z Persino 2851 558138 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje zbieranie informacji o linkach na stronie. == {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} == Funkcja wsadza uchwyt obiektu, wskazujący na aktualną stronę, do pewnej tablicy, ściśle: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono. Funkcja dla tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dla jego podtablicy: {{Code|linkobiekt}} {{Patrz|linkobiekt}} (jest to tablica, w której są zbierane w różnych podtablicach, w zależności od obiektu, uchwyty różnych linków na bieżącej stronie), w jego podtablicy o wartości elementu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, co taka tablica, to nic innego jak obiekt: {{Code|linkobiekttab}} {{Patrz|linkobiekttab}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} | _8 = Czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. }} Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych, tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, czy ma te elementy, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}. Dalej poza instrukcją warunkową w tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, jest wstawiany obiekt o wartości: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Następnie, gdy element: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli: <syntaxhighlight lang="lua"> table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); </syntaxhighlight> == {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} == Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_przestrzeni_stare}} {{Patrz|nazwa_przestrzeni_stare}}, {{Code|nazwa_przestrzeni_ksiazki_stare}} {{Patrz|nazwa_przestrzeni_ksiazki_stare}}, {{Code|nazwa_ksiazki_stare}} {{Patrz|nazwa_ksiazki_stare}} i {{Code|nazwa_artykulu_stare}} {{Patrz|nazwa_artykulu_stare}} | _6 = Są to kolejno nazwy uzyskane z linków, czy funkcji pobierania, one mogą poszczególne nie istnieć. | 7 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _7 = Kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|uchwyt_obiektu}} | _8 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|czy_pobierz}} | _9 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw strony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, uruchamia funkcję zdefiniowaną w nim. {{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wcześniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, ale niekorzystana, a {{Code|false}}, bieżąca, ale niekorzystana, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje. Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest sprawdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza. === {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} === Dla obiektów, dla których jest ustawiony parametr: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkowej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}, również wskazywanych przez: {{s|PobierzŚródtekst}}. Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno o wartościach: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}. === Dalszy opis funkcji === Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr takiej wartości nie przyjmuje, wtedy tylko jest uruchamiana ta funkcja bez żadnego warunku. {{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dotyczące szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. {{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie, to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}} {{Patrz|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. {{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, do sprawdzania pustości pewnych parametrów. {{Tab}}Gdy tabela: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}} {{Patrz|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. == {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} == Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, na podstawie poszczególnych wskazywanych artykułów na biężącej książce lub innej, która zbiera raz informacje o danej stronie. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _8 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _9 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 10 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _10 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 11 = {{Code|KtorySzablonMaZwracacKategorie}} | _11 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 12 = {{Code|czy_pobierz}} | _12 = jak w: {{LinkPatrz|czy_pobierz}}. }} === Wyznaczanie i przetwarzanie uchwytu === Funkcja wyznacza uchwyt z tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. === Wyznaczanie nazw linku stronicowego === Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. === Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie === Na samym końcu jest uruchamiana: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrem o tym uchwycie, wyliczonym wcześniej. Ta funkcja mówi przy jakim obiekcie szablonów stronicowych ma być uruchomione generowanie kategorii błędów wyniku uruchomień na stronie poszczególnych szablonów stronicowych, w kategorii na: {{lk2|Szablony stronicowe}}. === Przypadek uchwytu pustego === Gdy uchwyt jest pusty lub nie istnieje, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, z kodem problemu: {{Code|brak uchwytu}}. === Istniejący niepusty uchwyt linku === Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} z niej samej, lub jesli ona nie istnieje, wtedy jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika. Wiemy to z instrukcji: <syntaxhighlight lang="lua"> nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); </syntaxhighlight> ==== Nazwa artykułu nie istnieje ==== Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Wtedy funkcja się zakańcza. ==== Ale istnieje tylko nazwa artykułu ==== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Dodatkowo istnieje tylko nazwa książki ==== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, nie istnieje, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, to za zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, by potem się zakończa ta funkcja. ==== Liczenie parametrów nazw wywołań szablonowych linków ==== Przeciwnie są liczone parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}. ==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ==== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Co potem jest zakończenie działania funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> d6nvpi3gr2db3adw3749bekqxh0x4lx 558139 558138 2026-10-01T07:08:34Z Persino 2851 /* {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} */ 558139 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje zbieranie informacji o linkach na stronie. == {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} == Funkcja wsadza uchwyt obiektu, wskazujący na aktualną stronę, do pewnej tablicy, ściśle: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono. Funkcja dla tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dla jego podtablicy: {{Code|linkobiekt}} {{Patrz|linkobiekt}} (jest to tablica, w której są zbierane w różnych podtablicach, w zależności od obiektu, uchwyty różnych linków na bieżącej stronie), w jego podtablicy o wartości elementu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, co taka tablica, to nic innego jak obiekt: {{Code|linkobiekttab}} {{Patrz|linkobiekttab}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} | _8 = Czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. }} Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych, tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, czy ma te elementy, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}. Dalej poza instrukcją warunkową w tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, jest wstawiany obiekt o wartości: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Następnie, gdy element: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli: <syntaxhighlight lang="lua"> table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); </syntaxhighlight> == {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} == Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_przestrzeni_stare}} {{Patrz|nazwa_przestrzeni_stare}}, {{Code|nazwa_przestrzeni_ksiazki_stare}} {{Patrz|nazwa_przestrzeni_ksiazki_stare}}, {{Code|nazwa_ksiazki_stare}} {{Patrz|nazwa_ksiazki_stare}} i {{Code|nazwa_artykulu_stare}} {{Patrz|nazwa_artykulu_stare}} | _6 = Są to kolejno nazwy uzyskane z linków, czy funkcji pobierania, one mogą poszczególne nie istnieć. One są inicjowane w funkcji: {{LinkŚródtytuł|p.GeneralneLinkowanie}}. | 7 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _7 = Kolejo jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|uchwyt_obiektu}} | _8 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|czy_pobierz}} | _9 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw strony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, uruchamia funkcję zdefiniowaną w nim. {{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wcześniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, ale niekorzystana, a {{Code|false}}, bieżąca, ale niekorzystana, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje. Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest sprawdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza. === {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} === Dla obiektów, dla których jest ustawiony parametr: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkowej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}, również wskazywanych przez: {{s|PobierzŚródtekst}}. Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno o wartościach: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}. === Dalszy opis funkcji === Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr takiej wartości nie przyjmuje, wtedy tylko jest uruchamiana ta funkcja bez żadnego warunku. {{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dotyczące szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. {{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie, to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}} {{Patrz|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. {{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, do sprawdzania pustości pewnych parametrów. {{Tab}}Gdy tabela: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}} {{Patrz|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. == {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} == Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, na podstawie poszczególnych wskazywanych artykułów na biężącej książce lub innej, która zbiera raz informacje o danej stronie. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _8 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _9 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 10 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _10 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 11 = {{Code|KtorySzablonMaZwracacKategorie}} | _11 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 12 = {{Code|czy_pobierz}} | _12 = jak w: {{LinkPatrz|czy_pobierz}}. }} === Wyznaczanie i przetwarzanie uchwytu === Funkcja wyznacza uchwyt z tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. === Wyznaczanie nazw linku stronicowego === Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. === Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie === Na samym końcu jest uruchamiana: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrem o tym uchwycie, wyliczonym wcześniej. Ta funkcja mówi przy jakim obiekcie szablonów stronicowych ma być uruchomione generowanie kategorii błędów wyniku uruchomień na stronie poszczególnych szablonów stronicowych, w kategorii na: {{lk2|Szablony stronicowe}}. === Przypadek uchwytu pustego === Gdy uchwyt jest pusty lub nie istnieje, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, z kodem problemu: {{Code|brak uchwytu}}. === Istniejący niepusty uchwyt linku === Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} z niej samej, lub jesli ona nie istnieje, wtedy jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika. Wiemy to z instrukcji: <syntaxhighlight lang="lua"> nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); </syntaxhighlight> ==== Nazwa artykułu nie istnieje ==== Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Wtedy funkcja się zakańcza. ==== Ale istnieje tylko nazwa artykułu ==== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Dodatkowo istnieje tylko nazwa książki ==== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, nie istnieje, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, to za zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, by potem się zakończa ta funkcja. ==== Liczenie parametrów nazw wywołań szablonowych linków ==== Przeciwnie są liczone parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}. ==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ==== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Co potem jest zakończenie działania funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ep2dn4dpzice0469mn3cn78h3pramip 558140 558139 2026-10-01T07:09:42Z Persino 2851 /* {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} */ 558140 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje zbieranie informacji o linkach na stronie. == {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} == Funkcja wsadza uchwyt obiektu, wskazujący na aktualną stronę, do pewnej tablicy, ściśle: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono. Funkcja dla tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dla jego podtablicy: {{Code|linkobiekt}} {{Patrz|linkobiekt}} (jest to tablica, w której są zbierane w różnych podtablicach, w zależności od obiektu, uchwyty różnych linków na bieżącej stronie), w jego podtablicy o wartości elementu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, co taka tablica, to nic innego jak obiekt: {{Code|linkobiekttab}} {{Patrz|linkobiekttab}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} | _8 = Czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. }} Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych, tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, czy ma te elementy, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}. Dalej poza instrukcją warunkową w tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, jest wstawiany obiekt o wartości: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Następnie, gdy element: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli: <syntaxhighlight lang="lua"> table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); </syntaxhighlight> == {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} == Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_przestrzeni_stare}} {{Patrz|nazwa_przestrzeni_stare}}, {{Code|nazwa_przestrzeni_ksiazki_stare}} {{Patrz|nazwa_przestrzeni_ksiazki_stare}}, {{Code|nazwa_ksiazki_stare}} {{Patrz|nazwa_ksiazki_stare}} i {{Code|nazwa_artykulu_stare}} {{Patrz|nazwa_artykulu_stare}} | _6 = Są to kolejno nazwy uzyskane z linków, czy funkcji pobierania, one mogą poszczególne nie istnieć. One są inicjowane w funkcji: {{LinkŚródtytuł|p.GeneralneLinkowanie}}. | 7 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _7 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|uchwyt_obiektu}} | _8 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|czy_pobierz}} | _9 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw strony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, uruchamia funkcję zdefiniowaną w nim. {{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wcześniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, ale niekorzystana, a {{Code|false}}, bieżąca, ale niekorzystana, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje. Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest sprawdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza. === {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} === Dla obiektów, dla których jest ustawiony parametr: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkowej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}, również wskazywanych przez: {{s|PobierzŚródtekst}}. Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno o wartościach: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}. === Dalszy opis funkcji === Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr takiej wartości nie przyjmuje, wtedy tylko jest uruchamiana ta funkcja bez żadnego warunku. {{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dotyczące szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. {{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie, to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}} {{Patrz|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. {{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, do sprawdzania pustości pewnych parametrów. {{Tab}}Gdy tabela: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}} {{Patrz|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. == {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} == Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, na podstawie poszczególnych wskazywanych artykułów na biężącej książce lub innej, która zbiera raz informacje o danej stronie. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _8 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _9 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 10 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _10 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 11 = {{Code|KtorySzablonMaZwracacKategorie}} | _11 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 12 = {{Code|czy_pobierz}} | _12 = jak w: {{LinkPatrz|czy_pobierz}}. }} === Wyznaczanie i przetwarzanie uchwytu === Funkcja wyznacza uchwyt z tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. === Wyznaczanie nazw linku stronicowego === Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, wywołujac: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. === Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie === Na samym końcu jest uruchamiana: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrem o tym uchwycie, wyliczonym wcześniej. Ta funkcja mówi przy jakim obiekcie szablonów stronicowych ma być uruchomione generowanie kategorii błędów wyniku uruchomień na stronie poszczególnych szablonów stronicowych, w kategorii na: {{lk2|Szablony stronicowe}}. === Przypadek uchwytu pustego === Gdy uchwyt jest pusty lub nie istnieje, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, z kodem problemu: {{Code|brak uchwytu}}. === Istniejący niepusty uchwyt linku === Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} z niej samej, lub jesli ona nie istnieje, wtedy jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika. Wiemy to z instrukcji: <syntaxhighlight lang="lua"> nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); </syntaxhighlight> ==== Nazwa artykułu nie istnieje ==== Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Wtedy funkcja się zakańcza. ==== Ale istnieje tylko nazwa artykułu ==== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Dodatkowo istnieje tylko nazwa książki ==== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, nie istnieje, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, to za zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, by potem się zakończa ta funkcja. ==== Liczenie parametrów nazw wywołań szablonowych linków ==== Przeciwnie są liczone parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}. ==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ==== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Co potem jest zakończenie działania funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 8eqlc0zhp4pod2e62ssy78cv3c22a4h 558141 558140 2026-10-01T07:29:15Z Persino 2851 /* Wyznaczanie nazw linku stronicowego */ 558141 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje zbieranie informacji o linkach na stronie. == {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} == Funkcja wsadza uchwyt obiektu, wskazujący na aktualną stronę, do pewnej tablicy, ściśle: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono. Funkcja dla tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dla jego podtablicy: {{Code|linkobiekt}} {{Patrz|linkobiekt}} (jest to tablica, w której są zbierane w różnych podtablicach, w zależności od obiektu, uchwyty różnych linków na bieżącej stronie), w jego podtablicy o wartości elementu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, co taka tablica, to nic innego jak obiekt: {{Code|linkobiekttab}} {{Patrz|linkobiekttab}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} | _8 = Czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. }} Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych, tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, czy ma te elementy, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}. Dalej poza instrukcją warunkową w tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, jest wstawiany obiekt o wartości: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Następnie, gdy element: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli: <syntaxhighlight lang="lua"> table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); </syntaxhighlight> == {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} == Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_przestrzeni_stare}} {{Patrz|nazwa_przestrzeni_stare}}, {{Code|nazwa_przestrzeni_ksiazki_stare}} {{Patrz|nazwa_przestrzeni_ksiazki_stare}}, {{Code|nazwa_ksiazki_stare}} {{Patrz|nazwa_ksiazki_stare}} i {{Code|nazwa_artykulu_stare}} {{Patrz|nazwa_artykulu_stare}} | _6 = Są to kolejno nazwy uzyskane z linków, czy funkcji pobierania, one mogą poszczególne nie istnieć. One są inicjowane w funkcji: {{LinkŚródtytuł|p.GeneralneLinkowanie}}. | 7 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _7 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|uchwyt_obiektu}} | _8 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|czy_pobierz}} | _9 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw strony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, uruchamia funkcję zdefiniowaną w nim. {{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wcześniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, ale niekorzystana, a {{Code|false}}, bieżąca, ale niekorzystana, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje. Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest sprawdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza. === {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} === Dla obiektów, dla których jest ustawiony parametr: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkowej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}, również wskazywanych przez: {{s|PobierzŚródtekst}}. Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno o wartościach: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}. === Dalszy opis funkcji === Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr takiej wartości nie przyjmuje, wtedy tylko jest uruchamiana ta funkcja bez żadnego warunku. {{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dotyczące szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. {{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie, to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}} {{Patrz|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. {{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, do sprawdzania pustości pewnych parametrów. {{Tab}}Gdy tabela: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}} {{Patrz|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. == {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} == Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, na podstawie poszczególnych wskazywanych artykułów na biężącej książce lub innej, która zbiera raz informacje o danej stronie. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _8 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _9 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 10 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _10 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 11 = {{Code|KtorySzablonMaZwracacKategorie}} | _11 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 12 = {{Code|czy_pobierz}} | _12 = jak w: {{LinkPatrz|czy_pobierz}}. }} === Wyznaczanie i przetwarzanie uchwytu === Funkcja wyznacza uchwyt z tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. === Wyznaczanie nazw linku stronicowego === Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, wywołując: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. === {{Śródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}{{Code|UstalanieNazwStronyArtykularnegoWoluminu}} === Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local UstalanieNazwStronyArtykularnegoWoluminu=function(czy_tak)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|czy_tak}} | _1 = Jeśli odpowiada prawdziwej wartości, to nazwy przestrzeni nazw: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są brane pod uwagę, a jeśli one poszczególne nie istnieją, to brane są nazwy bieżżaćego woluminu a: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest przypisywana, jeśli istnieje, lub brana jest nazwa artykułu bieżącego woluminu. A jeśli ta zmienna, jednak jest o innej wartości, to brane są w trzech nazwach początkowych nazwy woluminu bieżącego, a w przypadku nazwy artykuł€ się nie zmienia. }} === Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie === Na samym końcu jest uruchamiana: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrem o tym uchwycie, wyliczonym wcześniej. Ta funkcja mówi przy jakim obiekcie szablonów stronicowych ma być uruchomione generowanie kategorii błędów wyniku uruchomień na stronie poszczególnych szablonów stronicowych, w kategorii na: {{lk2|Szablony stronicowe}}. === Przypadek uchwytu pustego === Gdy uchwyt jest pusty lub nie istnieje, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, z kodem problemu: {{Code|brak uchwytu}}. === Istniejący niepusty uchwyt linku === Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} z niej samej, lub jesli ona nie istnieje, wtedy jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika. Wiemy to z instrukcji: <syntaxhighlight lang="lua"> nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); </syntaxhighlight> ==== Nazwa artykułu nie istnieje ==== Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Wtedy funkcja się zakańcza. ==== Ale istnieje tylko nazwa artykułu ==== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Dodatkowo istnieje tylko nazwa książki ==== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, nie istnieje, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, to za zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, by potem się zakończa ta funkcja. ==== Liczenie parametrów nazw wywołań szablonowych linków ==== Przeciwnie są liczone parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}. ==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ==== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Co potem jest zakończenie działania funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> cy4p1uvz8vuqkq1lwuek0khgrqg1jpa 558143 558141 2026-10-01T07:45:31Z Persino 2851 /* {{Śródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}{{Code|UstalanieNazwStronyArtykularnegoWoluminu}} */ 558143 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje zbieranie informacji o linkach na stronie. == {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} == Funkcja wsadza uchwyt obiektu, wskazujący na aktualną stronę, do pewnej tablicy, ściśle: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono. Funkcja dla tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dla jego podtablicy: {{Code|linkobiekt}} {{Patrz|linkobiekt}} (jest to tablica, w której są zbierane w różnych podtablicach, w zależności od obiektu, uchwyty różnych linków na bieżącej stronie), w jego podtablicy o wartości elementu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, co taka tablica, to nic innego jak obiekt: {{Code|linkobiekttab}} {{Patrz|linkobiekttab}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} | _8 = Czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. }} Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych, tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, czy ma te elementy, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}. Dalej poza instrukcją warunkową w tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, jest wstawiany obiekt o wartości: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Następnie, gdy element: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli: <syntaxhighlight lang="lua"> table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); </syntaxhighlight> == {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} == Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_przestrzeni_stare}} {{Patrz|nazwa_przestrzeni_stare}}, {{Code|nazwa_przestrzeni_ksiazki_stare}} {{Patrz|nazwa_przestrzeni_ksiazki_stare}}, {{Code|nazwa_ksiazki_stare}} {{Patrz|nazwa_ksiazki_stare}} i {{Code|nazwa_artykulu_stare}} {{Patrz|nazwa_artykulu_stare}} | _6 = Są to kolejno nazwy uzyskane z linków, czy funkcji pobierania, one mogą poszczególne nie istnieć. One są inicjowane w funkcji: {{LinkŚródtytuł|p.GeneralneLinkowanie}}. | 7 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _7 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|uchwyt_obiektu}} | _8 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|czy_pobierz}} | _9 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw strony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, uruchamia funkcję zdefiniowaną w nim. {{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wcześniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, ale niekorzystana, a {{Code|false}}, bieżąca, ale niekorzystana, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje. Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest sprawdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza. === {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} === Dla obiektów, dla których jest ustawiony parametr: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkowej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}, również wskazywanych przez: {{s|PobierzŚródtekst}}. Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno o wartościach: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}. === Dalszy opis funkcji === Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr takiej wartości nie przyjmuje, wtedy tylko jest uruchamiana ta funkcja bez żadnego warunku. {{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dotyczące szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. {{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie, to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}} {{Patrz|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. {{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, do sprawdzania pustości pewnych parametrów. {{Tab}}Gdy tabela: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}} {{Patrz|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. == {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} == Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, na podstawie poszczególnych wskazywanych artykułów na biężącej książce lub innej, która zbiera raz informacje o danej stronie. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _8 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _9 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 10 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _10 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 11 = {{Code|KtorySzablonMaZwracacKategorie}} | _11 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 12 = {{Code|czy_pobierz}} | _12 = jak w: {{LinkPatrz|czy_pobierz}}. }} === Wyznaczanie i przetwarzanie uchwytu === Funkcja wyznacza uchwyt z tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. === Wyznaczanie nazw linku stronicowego === Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, wywołując: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. === {{Śródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}{{Code|UstalanieNazwStronyArtykularnegoWoluminu}} === Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local UstalanieNazwStronyArtykularnegoWoluminu=function(czy_tak)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | styl parametru = width:10%; | 1 = {{Code|czy_tak}} | _1 = Jeśli odpowiada prawdziwej wartości, to nazwy przestrzeni nazw: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są brane pod uwagę, a jeśli one poszczególne nie istnieją, to brane są nazwy bieżżaćego woluminu a: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest przypisywana, jeśli istnieje, lub brana jest nazwa artykułu bieżącego woluminu. A jeśli ta zmienna, jednak jest o innej wartości, to brane są w trzech nazwach początkowych nazwy woluminu bieżącego, a w przypadku nazwy artykuł€ się nie zmienia. }} === Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie === Na samym końcu jest uruchamiana: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrem o tym uchwycie, wyliczonym wcześniej. Ta funkcja mówi przy jakim obiekcie szablonów stronicowych ma być uruchomione generowanie kategorii błędów wyniku uruchomień na stronie poszczególnych szablonów stronicowych, w kategorii na: {{lk2|Szablony stronicowe}}. === Przypadek uchwytu pustego === Gdy uchwyt jest pusty lub nie istnieje, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, z kodem problemu: {{Code|brak uchwytu}}. === Istniejący niepusty uchwyt linku === Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} z niej samej, lub jesli ona nie istnieje, wtedy jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika. Wiemy to z instrukcji: <syntaxhighlight lang="lua"> nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); </syntaxhighlight> ==== Nazwa artykułu nie istnieje ==== Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Wtedy funkcja się zakańcza. ==== Ale istnieje tylko nazwa artykułu ==== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Dodatkowo istnieje tylko nazwa książki ==== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, nie istnieje, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, to za zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, by potem się zakończa ta funkcja. ==== Liczenie parametrów nazw wywołań szablonowych linków ==== Przeciwnie są liczone parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}. ==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ==== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Co potem jest zakończenie działania funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> fgv9d34adhzpq09kdboj549y0d5wfbb 558144 558143 2026-10-01T07:55:59Z Persino 2851 /* {{Śródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}{{Code|UstalanieNazwStronyArtykularnegoWoluminu}} */ 558144 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje zbieranie informacji o linkach na stronie. == {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} == Funkcja wsadza uchwyt obiektu, wskazujący na aktualną stronę, do pewnej tablicy, ściśle: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono. Funkcja dla tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dla jego podtablicy: {{Code|linkobiekt}} {{Patrz|linkobiekt}} (jest to tablica, w której są zbierane w różnych podtablicach, w zależności od obiektu, uchwyty różnych linków na bieżącej stronie), w jego podtablicy o wartości elementu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, co taka tablica, to nic innego jak obiekt: {{Code|linkobiekttab}} {{Patrz|linkobiekttab}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} | _8 = Czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. }} Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych, tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, czy ma te elementy, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}. Dalej poza instrukcją warunkową w tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, jest wstawiany obiekt o wartości: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Następnie, gdy element: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli: <syntaxhighlight lang="lua"> table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); </syntaxhighlight> == {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} == Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_przestrzeni_stare}} {{Patrz|nazwa_przestrzeni_stare}}, {{Code|nazwa_przestrzeni_ksiazki_stare}} {{Patrz|nazwa_przestrzeni_ksiazki_stare}}, {{Code|nazwa_ksiazki_stare}} {{Patrz|nazwa_ksiazki_stare}} i {{Code|nazwa_artykulu_stare}} {{Patrz|nazwa_artykulu_stare}} | _6 = Są to kolejno nazwy uzyskane z linków, czy funkcji pobierania, one mogą poszczególne nie istnieć. One są inicjowane w funkcji: {{LinkŚródtytuł|p.GeneralneLinkowanie}}. | 7 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _7 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|uchwyt_obiektu}} | _8 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|czy_pobierz}} | _9 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw strony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, uruchamia funkcję zdefiniowaną w nim. {{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wcześniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, ale niekorzystana, a {{Code|false}}, bieżąca, ale niekorzystana, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje. Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest sprawdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza. === {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} === Dla obiektów, dla których jest ustawiony parametr: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkowej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}, również wskazywanych przez: {{s|PobierzŚródtekst}}. Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno o wartościach: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}. === Dalszy opis funkcji === Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr takiej wartości nie przyjmuje, wtedy tylko jest uruchamiana ta funkcja bez żadnego warunku. {{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dotyczące szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. {{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie, to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}} {{Patrz|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. {{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, do sprawdzania pustości pewnych parametrów. {{Tab}}Gdy tabela: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}} {{Patrz|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. == {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} == Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, na podstawie poszczególnych wskazywanych artykułów na biężącej książce lub innej, która zbiera raz informacje o danej stronie. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _8 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _9 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 10 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _10 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 11 = {{Code|KtorySzablonMaZwracacKategorie}} | _11 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 12 = {{Code|czy_pobierz}} | _12 = jak w: {{LinkPatrz|czy_pobierz}}. }} === Wyznaczanie i przetwarzanie uchwytu === Funkcja wyznacza uchwyt z tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. === Wyznaczanie nazw linku stronicowego === Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, wywołując: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. === {{Śródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}{{Code|UstalanieNazwStronyArtykularnegoWoluminu}} === Funkcja kolejno ustalająca cztery nazwy odpowiadające linkowi, ustalane z ich nazwy artykułu i nazwy książki, ale przed tą funkcją w innej. Funkcją można sterować przy pomocy parametru: {{Code|czy_tak}} {{LinkPatrz|czy_tak}}. Te nazwy nie wszystkie muszą istnieć, a jeżeli któraś nie istnieje, to wtedy dla niej jest brany w funkcji jej odpowiednik z bieżącego artykułu, chodzi tu o jej nazwy. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local UstalanieNazwStronyArtykularnegoWoluminu=function(czy_tak)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | styl parametru = width:10%; | 1 = {{Code|czy_tak}} {{Patrz|czy_tak}} | _1 = Jeśli odpowiada prawdziwej wartości, to nazwy przestrzeni nazw: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są brane pod uwagę, a jeśli one poszczególne nie istnieją, to brane są nazwy bieżżaćego woluminu a: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest przypisywana, jeśli istnieje, lub brana jest nazwa artykułu bieżącego woluminu. A jeśli ta zmienna, jednak jest o innej wartości, to brane są w trzech nazwach początkowych nazwy woluminu bieżącego, a w przypadku nazwy artykuł€ się nie zmienia. }} === Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie === Na samym końcu jest uruchamiana: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrem o tym uchwycie, wyliczonym wcześniej. Ta funkcja mówi przy jakim obiekcie szablonów stronicowych ma być uruchomione generowanie kategorii błędów wyniku uruchomień na stronie poszczególnych szablonów stronicowych, w kategorii na: {{lk2|Szablony stronicowe}}. === Przypadek uchwytu pustego === Gdy uchwyt jest pusty lub nie istnieje, wtedy uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, z kodem problemu: {{Code|brak uchwytu}}. === Istniejący niepusty uchwyt linku === Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} z niej samej, lub jesli ona nie istnieje, wtedy jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika. Wiemy to z instrukcji: <syntaxhighlight lang="lua"> nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); </syntaxhighlight> ==== Nazwa artykułu nie istnieje ==== Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Wtedy funkcja się zakańcza. ==== Ale istnieje tylko nazwa artykułu ==== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Dodatkowo istnieje tylko nazwa książki ==== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, nie istnieje, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, to za zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, by potem się zakończa ta funkcja. ==== Liczenie parametrów nazw wywołań szablonowych linków ==== Przeciwnie są liczone parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}. ==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ==== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Co potem jest zakończenie działania funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> njobqxm5r0agidhab0gn7io4tm56lo1 558145 558144 2026-10-01T08:16:11Z Persino 2851 /* {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} */ 558145 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje zbieranie informacji o linkach na stronie. == {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} == Funkcja wsadza uchwyt obiektu, wskazujący na aktualną stronę, do pewnej tablicy, ściśle: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono. Funkcja dla tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dla jego podtablicy: {{Code|linkobiekt}} {{Patrz|linkobiekt}} (jest to tablica, w której są zbierane w różnych podtablicach, w zależności od obiektu, uchwyty różnych linków na bieżącej stronie), w jego podtablicy o wartości elementu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, co taka tablica, to nic innego jak obiekt: {{Code|linkobiekttab}} {{Patrz|linkobiekttab}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} | _8 = Czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. }} Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych, tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, czy ma te elementy, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}. Dalej poza instrukcją warunkową w tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, jest wstawiany obiekt o wartości: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Następnie, gdy element: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli: <syntaxhighlight lang="lua"> table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); </syntaxhighlight> == {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} == Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_przestrzeni_stare}} {{Patrz|nazwa_przestrzeni_stare}}, {{Code|nazwa_przestrzeni_ksiazki_stare}} {{Patrz|nazwa_przestrzeni_ksiazki_stare}}, {{Code|nazwa_ksiazki_stare}} {{Patrz|nazwa_ksiazki_stare}} i {{Code|nazwa_artykulu_stare}} {{Patrz|nazwa_artykulu_stare}} | _6 = Są to kolejno nazwy uzyskane z linków, czy funkcji pobierania, one mogą poszczególne nie istnieć. One są inicjowane w funkcji: {{LinkŚródtytuł|p.GeneralneLinkowanie}}. | 7 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _7 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|uchwyt_obiektu}} | _8 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|czy_pobierz}} | _9 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw strony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, uruchamia funkcję zdefiniowaną w nim. {{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wcześniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, ale niekorzystana, a {{Code|false}}, bieżąca, ale niekorzystana, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje. Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest sprawdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza. === {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} === Dla obiektów, dla których jest ustawiony parametr: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkowej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}, również wskazywanych przez: {{s|PobierzŚródtekst}}. Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno o wartościach: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}. === Dalszy opis funkcji === Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr takiej wartości nie przyjmuje, wtedy tylko jest uruchamiana ta funkcja bez żadnego warunku. {{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dotyczące szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. {{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie, to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}} {{Patrz|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. {{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, do sprawdzania pustości pewnych parametrów. {{Tab}}Gdy tabela: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}} {{Patrz|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. == {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} == Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, na podstawie poszczególnych wskazywanych artykułów na biężącej książce lub innej, która zbiera raz informacje o danej stronie. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _8 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _9 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 10 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _10 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 11 = {{Code|KtorySzablonMaZwracacKategorie}} | _11 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 12 = {{Code|czy_pobierz}} | _12 = jak w: {{LinkPatrz|czy_pobierz}}. }} === Wyznaczanie i przetwarzanie uchwytu === Funkcja wyznacza uchwyt z tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. === Wyznaczanie nazw linku stronicowego === Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, wywołując: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. === {{Śródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}{{Code|UstalanieNazwStronyArtykularnegoWoluminu}} === Funkcja kolejno ustalająca cztery nazwy odpowiadające linkowi, ustalane z ich nazwy artykułu i nazwy książki, ale przed tą funkcją w innej. Funkcją można sterować przy pomocy parametru: {{Code|czy_tak}} {{LinkPatrz|czy_tak}}. Te nazwy nie wszystkie muszą istnieć, a jeżeli któraś nie istnieje, to wtedy dla niej jest brany w funkcji jej odpowiednik z bieżącego artykułu, chodzi tu o jej nazwy. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local UstalanieNazwStronyArtykularnegoWoluminu=function(czy_tak)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | styl parametru = width:10%; | 1 = {{Code|czy_tak}} {{Patrz|czy_tak}} | _1 = Jeśli odpowiada prawdziwej wartości, to nazwy przestrzeni nazw: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są brane pod uwagę, a jeśli one poszczególne nie istnieją, to brane są nazwy bieżżaćego woluminu a: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest przypisywana, jeśli istnieje, lub brana jest nazwa artykułu bieżącego woluminu. A jeśli ta zmienna, jednak jest o innej wartości, to brane są w trzech nazwach początkowych nazwy woluminu bieżącego, a w przypadku nazwy artykuł€ się nie zmienia. }} === Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie === Na samym końcu jest uruchamiana: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrem o tym uchwycie, wyliczonym wcześniej. Ta funkcja mówi przy jakim obiekcie szablonów stronicowych ma być uruchomione generowanie kategorii błędów wyniku uruchomień na stronie poszczególnych szablonów stronicowych, w kategorii na: {{lk2|Szablony stronicowe}}. === Przypadek uchwytu pustego === Gdy uchwyt jest pusty lub nie istnieje, wtedy wywoływana jest funkcja: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|true}}. * Następnie wtedy, przy uchwycie pustym uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, * A przy nieistniejącym, jeżeli problem: {{Code|brak uchwytu}}, sprawdzamy przy pomocy: {{LinkŚródtytuł|CzyJestTakiProblemowyElement|StronicowyParser/Problemy}}, nie istnieje, to wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, i ustawiany jest ten problem przy pomocy: {{LinkŚródtytuł|UstawTakiProblemowyElement|StronicowyParser/Problemy}}. === Istniejący niepusty uchwyt linku === Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} z niej samej, lub jesli ona nie istnieje, wtedy jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika. Wiemy to z instrukcji: <syntaxhighlight lang="lua"> nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); </syntaxhighlight> ==== Nazwa artykułu nie istnieje ==== Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Wtedy funkcja się zakańcza. ==== Ale istnieje tylko nazwa artykułu ==== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Dodatkowo istnieje tylko nazwa książki ==== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, nie istnieje, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, to za zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, by potem się zakończa ta funkcja. ==== Liczenie parametrów nazw wywołań szablonowych linków ==== Przeciwnie są liczone parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}. ==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ==== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Co potem jest zakończenie działania funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> p9mvtqen20y4z8tl0h0m2boouc6llt9 558146 558145 2026-10-01T08:17:25Z Persino 2851 /* Przypadek uchwytu pustego */ 558146 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje zbieranie informacji o linkach na stronie. == {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} == Funkcja wsadza uchwyt obiektu, wskazujący na aktualną stronę, do pewnej tablicy, ściśle: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono. Funkcja dla tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dla jego podtablicy: {{Code|linkobiekt}} {{Patrz|linkobiekt}} (jest to tablica, w której są zbierane w różnych podtablicach, w zależności od obiektu, uchwyty różnych linków na bieżącej stronie), w jego podtablicy o wartości elementu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, co taka tablica, to nic innego jak obiekt: {{Code|linkobiekttab}} {{Patrz|linkobiekttab}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} | _8 = Czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. }} Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych, tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, czy ma te elementy, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}. Dalej poza instrukcją warunkową w tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, jest wstawiany obiekt o wartości: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Następnie, gdy element: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli: <syntaxhighlight lang="lua"> table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); </syntaxhighlight> == {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} == Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_przestrzeni_stare}} {{Patrz|nazwa_przestrzeni_stare}}, {{Code|nazwa_przestrzeni_ksiazki_stare}} {{Patrz|nazwa_przestrzeni_ksiazki_stare}}, {{Code|nazwa_ksiazki_stare}} {{Patrz|nazwa_ksiazki_stare}} i {{Code|nazwa_artykulu_stare}} {{Patrz|nazwa_artykulu_stare}} | _6 = Są to kolejno nazwy uzyskane z linków, czy funkcji pobierania, one mogą poszczególne nie istnieć. One są inicjowane w funkcji: {{LinkŚródtytuł|p.GeneralneLinkowanie}}. | 7 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _7 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|uchwyt_obiektu}} | _8 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|czy_pobierz}} | _9 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw strony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, uruchamia funkcję zdefiniowaną w nim. {{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wcześniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, ale niekorzystana, a {{Code|false}}, bieżąca, ale niekorzystana, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje. Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest sprawdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza. === {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} === Dla obiektów, dla których jest ustawiony parametr: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkowej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}, również wskazywanych przez: {{s|PobierzŚródtekst}}. Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno o wartościach: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}. === Dalszy opis funkcji === Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr takiej wartości nie przyjmuje, wtedy tylko jest uruchamiana ta funkcja bez żadnego warunku. {{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dotyczące szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. {{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie, to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}} {{Patrz|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. {{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, do sprawdzania pustości pewnych parametrów. {{Tab}}Gdy tabela: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}} {{Patrz|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. == {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} == Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, na podstawie poszczególnych wskazywanych artykułów na biężącej książce lub innej, która zbiera raz informacje o danej stronie. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _8 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _9 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 10 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _10 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 11 = {{Code|KtorySzablonMaZwracacKategorie}} | _11 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 12 = {{Code|czy_pobierz}} | _12 = jak w: {{LinkPatrz|czy_pobierz}}. }} === Wyznaczanie i przetwarzanie uchwytu === Funkcja wyznacza uchwyt z tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. === Wyznaczanie nazw linku stronicowego === Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, wywołując: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. === {{Śródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}{{Code|UstalanieNazwStronyArtykularnegoWoluminu}} === Funkcja kolejno ustalająca cztery nazwy odpowiadające linkowi, ustalane z ich nazwy artykułu i nazwy książki, ale przed tą funkcją w innej. Funkcją można sterować przy pomocy parametru: {{Code|czy_tak}} {{LinkPatrz|czy_tak}}. Te nazwy nie wszystkie muszą istnieć, a jeżeli któraś nie istnieje, to wtedy dla niej jest brany w funkcji jej odpowiednik z bieżącego artykułu, chodzi tu o jej nazwy. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local UstalanieNazwStronyArtykularnegoWoluminu=function(czy_tak)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | styl parametru = width:10%; | 1 = {{Code|czy_tak}} {{Patrz|czy_tak}} | _1 = Jeśli odpowiada prawdziwej wartości, to nazwy przestrzeni nazw: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są brane pod uwagę, a jeśli one poszczególne nie istnieją, to brane są nazwy bieżżaćego woluminu a: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest przypisywana, jeśli istnieje, lub brana jest nazwa artykułu bieżącego woluminu. A jeśli ta zmienna, jednak jest o innej wartości, to brane są w trzech nazwach początkowych nazwy woluminu bieżącego, a w przypadku nazwy artykuł€ się nie zmienia. }} === Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie === Na samym końcu jest uruchamiana: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrem o tym uchwycie, wyliczonym wcześniej. Ta funkcja mówi przy jakim obiekcie szablonów stronicowych ma być uruchomione generowanie kategorii błędów wyniku uruchomień na stronie poszczególnych szablonów stronicowych, w kategorii na: {{lk2|Szablony stronicowe}}. === Przypadek uchwytu pustego === Gdy uchwyt jest pusty lub nie istnieje, wtedy wywoływana jest funkcja: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|true}}. * Następnie wtedy, przy uchwycie pustym uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, * A przy nieistniejącym, jeżeli problem: {{Code|brak uchwytu}}, sprawdzamy przy pomocy: {{LinkŚródtytuł|p.CzyJestTakiProblemowyElement|StronicowyParser/Problemy}}, nie istnieje, to wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, i ustawiany jest ten problem przy pomocy: {{LinkŚródtytuł|p.UstawTakiProblemowyElement|StronicowyParser/Problemy}}. === Istniejący niepusty uchwyt linku === Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} z niej samej, lub jesli ona nie istnieje, wtedy jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika. Wiemy to z instrukcji: <syntaxhighlight lang="lua"> nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); </syntaxhighlight> ==== Nazwa artykułu nie istnieje ==== Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Wtedy funkcja się zakańcza. ==== Ale istnieje tylko nazwa artykułu ==== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Dodatkowo istnieje tylko nazwa książki ==== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, nie istnieje, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, to za zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, by potem się zakończa ta funkcja. ==== Liczenie parametrów nazw wywołań szablonowych linków ==== Przeciwnie są liczone parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}. ==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ==== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Co potem jest zakończenie działania funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> slv9q34g1ii9x8umm6x6ydhwxoa81z5 558147 558146 2026-10-01T08:21:42Z Persino 2851 /* {{Śródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}{{Code|UstalanieNazwStronyArtykularnegoWoluminu}} */ 558147 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje zbieranie informacji o linkach na stronie. == {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} == Funkcja wsadza uchwyt obiektu, wskazujący na aktualną stronę, do pewnej tablicy, ściśle: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono. Funkcja dla tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dla jego podtablicy: {{Code|linkobiekt}} {{Patrz|linkobiekt}} (jest to tablica, w której są zbierane w różnych podtablicach, w zależności od obiektu, uchwyty różnych linków na bieżącej stronie), w jego podtablicy o wartości elementu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, co taka tablica, to nic innego jak obiekt: {{Code|linkobiekttab}} {{Patrz|linkobiekttab}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} | _8 = Czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. }} Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych, tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, czy ma te elementy, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}. Dalej poza instrukcją warunkową w tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, jest wstawiany obiekt o wartości: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Następnie, gdy element: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli: <syntaxhighlight lang="lua"> table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); </syntaxhighlight> == {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} == Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_przestrzeni_stare}} {{Patrz|nazwa_przestrzeni_stare}}, {{Code|nazwa_przestrzeni_ksiazki_stare}} {{Patrz|nazwa_przestrzeni_ksiazki_stare}}, {{Code|nazwa_ksiazki_stare}} {{Patrz|nazwa_ksiazki_stare}} i {{Code|nazwa_artykulu_stare}} {{Patrz|nazwa_artykulu_stare}} | _6 = Są to kolejno nazwy uzyskane z linków, czy funkcji pobierania, one mogą poszczególne nie istnieć. One są inicjowane w funkcji: {{LinkŚródtytuł|p.GeneralneLinkowanie}}. | 7 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _7 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|uchwyt_obiektu}} | _8 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|czy_pobierz}} | _9 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw strony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, uruchamia funkcję zdefiniowaną w nim. {{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wcześniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, ale niekorzystana, a {{Code|false}}, bieżąca, ale niekorzystana, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje. Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest sprawdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza. === {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} === Dla obiektów, dla których jest ustawiony parametr: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkowej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}, również wskazywanych przez: {{s|PobierzŚródtekst}}. Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno o wartościach: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}. === Dalszy opis funkcji === Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr takiej wartości nie przyjmuje, wtedy tylko jest uruchamiana ta funkcja bez żadnego warunku. {{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dotyczące szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. {{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie, to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}} {{Patrz|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. {{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, do sprawdzania pustości pewnych parametrów. {{Tab}}Gdy tabela: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}} {{Patrz|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. == {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} == Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, na podstawie poszczególnych wskazywanych artykułów na biężącej książce lub innej, która zbiera raz informacje o danej stronie. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _8 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _9 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 10 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _10 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 11 = {{Code|KtorySzablonMaZwracacKategorie}} | _11 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 12 = {{Code|czy_pobierz}} | _12 = jak w: {{LinkPatrz|czy_pobierz}}. }} === Wyznaczanie i przetwarzanie uchwytu === Funkcja wyznacza uchwyt z tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. === Wyznaczanie nazw linku stronicowego === Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, wywołując: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. === {{Śródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}{{Code|UstalanieNazwStronyArtykularnegoWoluminu}} === Funkcja kolejno ustalająca cztery nazwy odpowiadające linkowi, ustalane z ich nazwy artykułu i nazwy książki, ale przed tą funkcją w innej. Funkcją można sterować przy pomocy parametru: {{Code|czy_tak}} {{LinkPatrz|czy_tak}}. Te nazwy nie wszystkie muszą istnieć, a jeżeli któraś nie istnieje, to wtedy dla niej jest brany w funkcji jej odpowiednik z bieżącego artykułu, chodzi tu o jej nazwy. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local UstalanieNazwStronyArtykularnegoWoluminu=function(czy_tak)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | styl parametru = width:10%; | 1 = {{Code|czy_tak}} {{Patrz|czy_tak}} | _1 = Jeśli odpowiada prawdziwej wartości, to nazwy przestrzeni nazw: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są brane pod uwagę, a jeśli one poszczególne nie istnieją, to brane są nazwy bieżżaćego woluminu a: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest przypisywana, jeśli istnieje, lub brana jest nazwa artykułu bieżącego woluminu. A jeśli ta zmienna, jednak jest o innej wartości, to brane są w trzech nazwach początkowych nazwy woluminu bieżącego, a w przypadku nazwy artykuł€ się nie zmienia. }} === Inicjowanie wartości starych nazw na podstawie uzyskanych wcześniej === Parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwwa artykulu}} {{LinkPatrz|nazwa artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, te z tym {{Code|_stare}} (na końcu), są inicjowane parametrami bez tego, czyli te wspomniane. === Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie === Na samym końcu jest uruchamiana: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrem o tym uchwycie, wyliczonym wcześniej. Ta funkcja mówi przy jakim obiekcie szablonów stronicowych ma być uruchomione generowanie kategorii błędów wyniku uruchomień na stronie poszczególnych szablonów stronicowych, w kategorii na: {{lk2|Szablony stronicowe}}. === Przypadek uchwytu pustego === Gdy uchwyt jest pusty lub nie istnieje, wtedy wywoływana jest funkcja: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|true}}. * Następnie wtedy, przy uchwycie pustym uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, * A przy nieistniejącym, jeżeli problem: {{Code|brak uchwytu}}, sprawdzamy przy pomocy: {{LinkŚródtytuł|p.CzyJestTakiProblemowyElement|StronicowyParser/Problemy}}, nie istnieje, to wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, i ustawiany jest ten problem przy pomocy: {{LinkŚródtytuł|p.UstawTakiProblemowyElement|StronicowyParser/Problemy}}. === Istniejący niepusty uchwyt linku === Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} z niej samej, lub jesli ona nie istnieje, wtedy jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika. Wiemy to z instrukcji: <syntaxhighlight lang="lua"> nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); </syntaxhighlight> ==== Nazwa artykułu nie istnieje ==== Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Wtedy funkcja się zakańcza. ==== Ale istnieje tylko nazwa artykułu ==== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Dodatkowo istnieje tylko nazwa książki ==== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, nie istnieje, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, to za zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, by potem się zakończa ta funkcja. ==== Liczenie parametrów nazw wywołań szablonowych linków ==== Przeciwnie są liczone parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}. ==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ==== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Co potem jest zakończenie działania funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> oow0cvzh6314p8t17rgreunzz36esit 558148 558147 2026-10-01T08:24:16Z Persino 2851 /* {{Śródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}{{Code|UstalanieNazwStronyArtykularnegoWoluminu}} */ 558148 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje zbieranie informacji o linkach na stronie. == {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} == Funkcja wsadza uchwyt obiektu, wskazujący na aktualną stronę, do pewnej tablicy, ściśle: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono. Funkcja dla tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dla jego podtablicy: {{Code|linkobiekt}} {{Patrz|linkobiekt}} (jest to tablica, w której są zbierane w różnych podtablicach, w zależności od obiektu, uchwyty różnych linków na bieżącej stronie), w jego podtablicy o wartości elementu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, co taka tablica, to nic innego jak obiekt: {{Code|linkobiekttab}} {{Patrz|linkobiekttab}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} | _8 = Czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. }} Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych, tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, czy ma te elementy, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}. Dalej poza instrukcją warunkową w tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, jest wstawiany obiekt o wartości: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Następnie, gdy element: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli: <syntaxhighlight lang="lua"> table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); </syntaxhighlight> == {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} == Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_przestrzeni_stare}} {{Patrz|nazwa_przestrzeni_stare}}, {{Code|nazwa_przestrzeni_ksiazki_stare}} {{Patrz|nazwa_przestrzeni_ksiazki_stare}}, {{Code|nazwa_ksiazki_stare}} {{Patrz|nazwa_ksiazki_stare}} i {{Code|nazwa_artykulu_stare}} {{Patrz|nazwa_artykulu_stare}} | _6 = Są to kolejno nazwy uzyskane z linków, czy funkcji pobierania, one mogą poszczególne nie istnieć. One są inicjowane w funkcji: {{LinkŚródtytuł|p.GeneralneLinkowanie}}. | 7 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _7 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|uchwyt_obiektu}} | _8 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|czy_pobierz}} | _9 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw strony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, uruchamia funkcję zdefiniowaną w nim. {{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wcześniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, ale niekorzystana, a {{Code|false}}, bieżąca, ale niekorzystana, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje. Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest sprawdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza. === {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} === Dla obiektów, dla których jest ustawiony parametr: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkowej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}, również wskazywanych przez: {{s|PobierzŚródtekst}}. Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno o wartościach: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}. === Dalszy opis funkcji === Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr takiej wartości nie przyjmuje, wtedy tylko jest uruchamiana ta funkcja bez żadnego warunku. {{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dotyczące szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. {{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie, to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}} {{Patrz|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. {{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, do sprawdzania pustości pewnych parametrów. {{Tab}}Gdy tabela: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}} {{Patrz|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. == {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} == Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, na podstawie poszczególnych wskazywanych artykułów na biężącej książce lub innej, która zbiera raz informacje o danej stronie. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _8 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _9 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 10 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _10 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 11 = {{Code|KtorySzablonMaZwracacKategorie}} | _11 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 12 = {{Code|czy_pobierz}} | _12 = jak w: {{LinkPatrz|czy_pobierz}}. }} === Wyznaczanie i przetwarzanie uchwytu === Funkcja wyznacza uchwyt z tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. === Wyznaczanie nazw linku stronicowego === Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, wywołując: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. === {{Śródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}{{Code|UstalanieNazwStronyArtykularnegoWoluminu}} === Funkcja kolejno ustalająca cztery nazwy odpowiadające linkowi, ustalane z ich nazwy artykułu i nazwy książki, ale przed tą funkcją w innej. Funkcją można sterować przy pomocy parametru: {{Code|czy_tak}} {{LinkPatrz|czy_tak}}. Te nazwy nie wszystkie muszą istnieć, a jeżeli któraś nie istnieje, to wtedy dla niej jest brany w funkcji jej odpowiednik z bieżącego artykułu, chodzi tu o jej nazwy. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local UstalanieNazwStronyArtykularnegoWoluminu=function(czy_tak)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | styl parametru = width:10%; | 1 = {{Code|czy_tak}} {{Patrz|czy_tak}} | _1 = Jeśli odpowiada prawdziwej wartości, to nazwy przestrzeni nazw: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są brane pod uwagę, a jeśli one poszczególne nie istnieją, to brane są nazwy bieżżaćego woluminu a: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest przypisywana, jeśli istnieje, lub brana jest nazwa artykułu bieżącego woluminu. A jeśli ta zmienna, jednak jest o innej wartości, to brane są w trzech nazwach początkowych nazwy woluminu bieżącego, a w przypadku nazwy artykułu się nie zmienia sytuacja. }} === Inicjowanie wartości starych nazw na podstawie uzyskanych wcześniej === Parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwwa artykulu}} {{LinkPatrz|nazwa artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, te z tym {{Code|_stare}} (na końcu), są inicjowane parametrami bez tego, czyli te wspomniane. === Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie === Na samym końcu jest uruchamiana: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrem o tym uchwycie, wyliczonym wcześniej. Ta funkcja mówi przy jakim obiekcie szablonów stronicowych ma być uruchomione generowanie kategorii błędów wyniku uruchomień na stronie poszczególnych szablonów stronicowych, w kategorii na: {{lk2|Szablony stronicowe}}. === Przypadek uchwytu pustego === Gdy uchwyt jest pusty lub nie istnieje, wtedy wywoływana jest funkcja: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|true}}. * Następnie wtedy, przy uchwycie pustym uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, * A przy nieistniejącym, jeżeli problem: {{Code|brak uchwytu}}, sprawdzamy przy pomocy: {{LinkŚródtytuł|p.CzyJestTakiProblemowyElement|StronicowyParser/Problemy}}, nie istnieje, to wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, i ustawiany jest ten problem przy pomocy: {{LinkŚródtytuł|p.UstawTakiProblemowyElement|StronicowyParser/Problemy}}. === Istniejący niepusty uchwyt linku === Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} z niej samej, lub jesli ona nie istnieje, wtedy jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika. Wiemy to z instrukcji: <syntaxhighlight lang="lua"> nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); </syntaxhighlight> ==== Nazwa artykułu nie istnieje ==== Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Wtedy funkcja się zakańcza. ==== Ale istnieje tylko nazwa artykułu ==== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Dodatkowo istnieje tylko nazwa książki ==== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, nie istnieje, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, to za zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, by potem się zakończa ta funkcja. ==== Liczenie parametrów nazw wywołań szablonowych linków ==== Przeciwnie są liczone parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}. ==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ==== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Co potem jest zakończenie działania funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 948mh6injs773ijbvy7jdca5hwj7epn 558149 558148 2026-10-01T08:27:30Z Persino 2851 /* Nazwa artykułu nie istnieje */ 558149 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje zbieranie informacji o linkach na stronie. == {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} == Funkcja wsadza uchwyt obiektu, wskazujący na aktualną stronę, do pewnej tablicy, ściśle: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono. Funkcja dla tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dla jego podtablicy: {{Code|linkobiekt}} {{Patrz|linkobiekt}} (jest to tablica, w której są zbierane w różnych podtablicach, w zależności od obiektu, uchwyty różnych linków na bieżącej stronie), w jego podtablicy o wartości elementu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, co taka tablica, to nic innego jak obiekt: {{Code|linkobiekttab}} {{Patrz|linkobiekttab}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} | _8 = Czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. }} Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych, tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, czy ma te elementy, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}. Dalej poza instrukcją warunkową w tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, jest wstawiany obiekt o wartości: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Następnie, gdy element: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli: <syntaxhighlight lang="lua"> table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); </syntaxhighlight> == {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} == Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_przestrzeni_stare}} {{Patrz|nazwa_przestrzeni_stare}}, {{Code|nazwa_przestrzeni_ksiazki_stare}} {{Patrz|nazwa_przestrzeni_ksiazki_stare}}, {{Code|nazwa_ksiazki_stare}} {{Patrz|nazwa_ksiazki_stare}} i {{Code|nazwa_artykulu_stare}} {{Patrz|nazwa_artykulu_stare}} | _6 = Są to kolejno nazwy uzyskane z linków, czy funkcji pobierania, one mogą poszczególne nie istnieć. One są inicjowane w funkcji: {{LinkŚródtytuł|p.GeneralneLinkowanie}}. | 7 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _7 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|uchwyt_obiektu}} | _8 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|czy_pobierz}} | _9 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw strony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, uruchamia funkcję zdefiniowaną w nim. {{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wcześniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, ale niekorzystana, a {{Code|false}}, bieżąca, ale niekorzystana, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje. Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest sprawdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza. === {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} === Dla obiektów, dla których jest ustawiony parametr: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkowej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}, również wskazywanych przez: {{s|PobierzŚródtekst}}. Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno o wartościach: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}. === Dalszy opis funkcji === Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr takiej wartości nie przyjmuje, wtedy tylko jest uruchamiana ta funkcja bez żadnego warunku. {{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dotyczące szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. {{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie, to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}} {{Patrz|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. {{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, do sprawdzania pustości pewnych parametrów. {{Tab}}Gdy tabela: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}} {{Patrz|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. == {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} == Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, na podstawie poszczególnych wskazywanych artykułów na biężącej książce lub innej, która zbiera raz informacje o danej stronie. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _8 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _9 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 10 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _10 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 11 = {{Code|KtorySzablonMaZwracacKategorie}} | _11 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 12 = {{Code|czy_pobierz}} | _12 = jak w: {{LinkPatrz|czy_pobierz}}. }} === Wyznaczanie i przetwarzanie uchwytu === Funkcja wyznacza uchwyt z tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. === Wyznaczanie nazw linku stronicowego === Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, wywołując: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. === {{Śródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}{{Code|UstalanieNazwStronyArtykularnegoWoluminu}} === Funkcja kolejno ustalająca cztery nazwy odpowiadające linkowi, ustalane z ich nazwy artykułu i nazwy książki, ale przed tą funkcją w innej. Funkcją można sterować przy pomocy parametru: {{Code|czy_tak}} {{LinkPatrz|czy_tak}}. Te nazwy nie wszystkie muszą istnieć, a jeżeli któraś nie istnieje, to wtedy dla niej jest brany w funkcji jej odpowiednik z bieżącego artykułu, chodzi tu o jej nazwy. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local UstalanieNazwStronyArtykularnegoWoluminu=function(czy_tak)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | styl parametru = width:10%; | 1 = {{Code|czy_tak}} {{Patrz|czy_tak}} | _1 = Jeśli odpowiada prawdziwej wartości, to nazwy przestrzeni nazw: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są brane pod uwagę, a jeśli one poszczególne nie istnieją, to brane są nazwy bieżżaćego woluminu a: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest przypisywana, jeśli istnieje, lub brana jest nazwa artykułu bieżącego woluminu. A jeśli ta zmienna, jednak jest o innej wartości, to brane są w trzech nazwach początkowych nazwy woluminu bieżącego, a w przypadku nazwy artykułu się nie zmienia sytuacja. }} === Inicjowanie wartości starych nazw na podstawie uzyskanych wcześniej === Parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwwa artykulu}} {{LinkPatrz|nazwa artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, te z tym {{Code|_stare}} (na końcu), są inicjowane parametrami bez tego, czyli te wspomniane. === Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie === Na samym końcu jest uruchamiana: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrem o tym uchwycie, wyliczonym wcześniej. Ta funkcja mówi przy jakim obiekcie szablonów stronicowych ma być uruchomione generowanie kategorii błędów wyniku uruchomień na stronie poszczególnych szablonów stronicowych, w kategorii na: {{lk2|Szablony stronicowe}}. === Przypadek uchwytu pustego === Gdy uchwyt jest pusty lub nie istnieje, wtedy wywoływana jest funkcja: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|true}}. * Następnie wtedy, przy uchwycie pustym uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, * A przy nieistniejącym, jeżeli problem: {{Code|brak uchwytu}}, sprawdzamy przy pomocy: {{LinkŚródtytuł|p.CzyJestTakiProblemowyElement|StronicowyParser/Problemy}}, nie istnieje, to wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, i ustawiany jest ten problem przy pomocy: {{LinkŚródtytuł|p.UstawTakiProblemowyElement|StronicowyParser/Problemy}}. === Istniejący niepusty uchwyt linku === Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} z niej samej, lub jesli ona nie istnieje, wtedy jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika. Wiemy to z instrukcji: <syntaxhighlight lang="lua"> nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); </syntaxhighlight> ==== Nazwa artykułu nie istnieje ==== Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|true}}{{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|true}}, następnie: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Ale istnieje tylko nazwa artykułu ==== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Dodatkowo istnieje tylko nazwa książki ==== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, nie istnieje, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, to za zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, by potem się zakończa ta funkcja. ==== Liczenie parametrów nazw wywołań szablonowych linków ==== Przeciwnie są liczone parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}. ==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ==== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Co potem jest zakończenie działania funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> py9dwg2vytmebquz9lq5qt2ijbpiz3j 558150 558149 2026-10-01T08:28:00Z Persino 2851 /* Nazwa artykułu nie istnieje */ 558150 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje zbieranie informacji o linkach na stronie. == {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} == Funkcja wsadza uchwyt obiektu, wskazujący na aktualną stronę, do pewnej tablicy, ściśle: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono. Funkcja dla tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dla jego podtablicy: {{Code|linkobiekt}} {{Patrz|linkobiekt}} (jest to tablica, w której są zbierane w różnych podtablicach, w zależności od obiektu, uchwyty różnych linków na bieżącej stronie), w jego podtablicy o wartości elementu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, co taka tablica, to nic innego jak obiekt: {{Code|linkobiekttab}} {{Patrz|linkobiekttab}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} | _8 = Czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. }} Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych, tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, czy ma te elementy, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}. Dalej poza instrukcją warunkową w tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, jest wstawiany obiekt o wartości: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Następnie, gdy element: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli: <syntaxhighlight lang="lua"> table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); </syntaxhighlight> == {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} == Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_przestrzeni_stare}} {{Patrz|nazwa_przestrzeni_stare}}, {{Code|nazwa_przestrzeni_ksiazki_stare}} {{Patrz|nazwa_przestrzeni_ksiazki_stare}}, {{Code|nazwa_ksiazki_stare}} {{Patrz|nazwa_ksiazki_stare}} i {{Code|nazwa_artykulu_stare}} {{Patrz|nazwa_artykulu_stare}} | _6 = Są to kolejno nazwy uzyskane z linków, czy funkcji pobierania, one mogą poszczególne nie istnieć. One są inicjowane w funkcji: {{LinkŚródtytuł|p.GeneralneLinkowanie}}. | 7 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _7 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|uchwyt_obiektu}} | _8 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|czy_pobierz}} | _9 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw strony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, uruchamia funkcję zdefiniowaną w nim. {{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wcześniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, ale niekorzystana, a {{Code|false}}, bieżąca, ale niekorzystana, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje. Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest sprawdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza. === {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} === Dla obiektów, dla których jest ustawiony parametr: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkowej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}, również wskazywanych przez: {{s|PobierzŚródtekst}}. Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno o wartościach: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}. === Dalszy opis funkcji === Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr takiej wartości nie przyjmuje, wtedy tylko jest uruchamiana ta funkcja bez żadnego warunku. {{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dotyczące szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. {{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie, to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}} {{Patrz|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. {{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, do sprawdzania pustości pewnych parametrów. {{Tab}}Gdy tabela: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}} {{Patrz|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. == {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} == Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, na podstawie poszczególnych wskazywanych artykułów na biężącej książce lub innej, która zbiera raz informacje o danej stronie. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _8 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _9 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 10 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _10 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 11 = {{Code|KtorySzablonMaZwracacKategorie}} | _11 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 12 = {{Code|czy_pobierz}} | _12 = jak w: {{LinkPatrz|czy_pobierz}}. }} === Wyznaczanie i przetwarzanie uchwytu === Funkcja wyznacza uchwyt z tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. === Wyznaczanie nazw linku stronicowego === Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, wywołując: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. === {{Śródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}{{Code|UstalanieNazwStronyArtykularnegoWoluminu}} === Funkcja kolejno ustalająca cztery nazwy odpowiadające linkowi, ustalane z ich nazwy artykułu i nazwy książki, ale przed tą funkcją w innej. Funkcją można sterować przy pomocy parametru: {{Code|czy_tak}} {{LinkPatrz|czy_tak}}. Te nazwy nie wszystkie muszą istnieć, a jeżeli któraś nie istnieje, to wtedy dla niej jest brany w funkcji jej odpowiednik z bieżącego artykułu, chodzi tu o jej nazwy. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local UstalanieNazwStronyArtykularnegoWoluminu=function(czy_tak)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | styl parametru = width:10%; | 1 = {{Code|czy_tak}} {{Patrz|czy_tak}} | _1 = Jeśli odpowiada prawdziwej wartości, to nazwy przestrzeni nazw: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są brane pod uwagę, a jeśli one poszczególne nie istnieją, to brane są nazwy bieżżaćego woluminu a: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest przypisywana, jeśli istnieje, lub brana jest nazwa artykułu bieżącego woluminu. A jeśli ta zmienna, jednak jest o innej wartości, to brane są w trzech nazwach początkowych nazwy woluminu bieżącego, a w przypadku nazwy artykułu się nie zmienia sytuacja. }} === Inicjowanie wartości starych nazw na podstawie uzyskanych wcześniej === Parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwwa artykulu}} {{LinkPatrz|nazwa artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, te z tym {{Code|_stare}} (na końcu), są inicjowane parametrami bez tego, czyli te wspomniane. === Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie === Na samym końcu jest uruchamiana: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrem o tym uchwycie, wyliczonym wcześniej. Ta funkcja mówi przy jakim obiekcie szablonów stronicowych ma być uruchomione generowanie kategorii błędów wyniku uruchomień na stronie poszczególnych szablonów stronicowych, w kategorii na: {{lk2|Szablony stronicowe}}. === Przypadek uchwytu pustego === Gdy uchwyt jest pusty lub nie istnieje, wtedy wywoływana jest funkcja: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|true}}. * Następnie wtedy, przy uchwycie pustym uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, * A przy nieistniejącym, jeżeli problem: {{Code|brak uchwytu}}, sprawdzamy przy pomocy: {{LinkŚródtytuł|p.CzyJestTakiProblemowyElement|StronicowyParser/Problemy}}, nie istnieje, to wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, i ustawiany jest ten problem przy pomocy: {{LinkŚródtytuł|p.UstawTakiProblemowyElement|StronicowyParser/Problemy}}. === Istniejący niepusty uchwyt linku === Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} z niej samej, lub jesli ona nie istnieje, wtedy jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika. Wiemy to z instrukcji: <syntaxhighlight lang="lua"> nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); </syntaxhighlight> ==== Nazwa artykułu nie istnieje ==== Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|true}}, następnie: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Ale istnieje tylko nazwa artykułu ==== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, bo jest policzona, więc te {{ZobaczTeż|nazwy}}: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrów charakteryzujących nazwę aktualnego artykułu, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Dodatkowo istnieje tylko nazwa książki ==== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, nie istnieje, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, to za zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, by potem się zakończa ta funkcja. ==== Liczenie parametrów nazw wywołań szablonowych linków ==== Przeciwnie są liczone parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}. ==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ==== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Co potem jest zakończenie działania funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> sz0sna0tahtehypilxzj8l4takhxhrm 558151 558150 2026-10-01T08:31:05Z Persino 2851 /* Ale istnieje tylko nazwa artykułu */ 558151 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje zbieranie informacji o linkach na stronie. == {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} == Funkcja wsadza uchwyt obiektu, wskazujący na aktualną stronę, do pewnej tablicy, ściśle: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono. Funkcja dla tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dla jego podtablicy: {{Code|linkobiekt}} {{Patrz|linkobiekt}} (jest to tablica, w której są zbierane w różnych podtablicach, w zależności od obiektu, uchwyty różnych linków na bieżącej stronie), w jego podtablicy o wartości elementu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, co taka tablica, to nic innego jak obiekt: {{Code|linkobiekttab}} {{Patrz|linkobiekttab}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} | _8 = Czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. }} Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych, tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, czy ma te elementy, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}. Dalej poza instrukcją warunkową w tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, jest wstawiany obiekt o wartości: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Następnie, gdy element: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli: <syntaxhighlight lang="lua"> table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); </syntaxhighlight> == {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} == Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_przestrzeni_stare}} {{Patrz|nazwa_przestrzeni_stare}}, {{Code|nazwa_przestrzeni_ksiazki_stare}} {{Patrz|nazwa_przestrzeni_ksiazki_stare}}, {{Code|nazwa_ksiazki_stare}} {{Patrz|nazwa_ksiazki_stare}} i {{Code|nazwa_artykulu_stare}} {{Patrz|nazwa_artykulu_stare}} | _6 = Są to kolejno nazwy uzyskane z linków, czy funkcji pobierania, one mogą poszczególne nie istnieć. One są inicjowane w funkcji: {{LinkŚródtytuł|p.GeneralneLinkowanie}}. | 7 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _7 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|uchwyt_obiektu}} | _8 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|czy_pobierz}} | _9 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw strony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, uruchamia funkcję zdefiniowaną w nim. {{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wcześniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, ale niekorzystana, a {{Code|false}}, bieżąca, ale niekorzystana, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje. Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest sprawdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza. === {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} === Dla obiektów, dla których jest ustawiony parametr: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkowej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}, również wskazywanych przez: {{s|PobierzŚródtekst}}. Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno o wartościach: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}. === Dalszy opis funkcji === Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr takiej wartości nie przyjmuje, wtedy tylko jest uruchamiana ta funkcja bez żadnego warunku. {{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dotyczące szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. {{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie, to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}} {{Patrz|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. {{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, do sprawdzania pustości pewnych parametrów. {{Tab}}Gdy tabela: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}} {{Patrz|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. == {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} == Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, na podstawie poszczególnych wskazywanych artykułów na biężącej książce lub innej, która zbiera raz informacje o danej stronie. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _8 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _9 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 10 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _10 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 11 = {{Code|KtorySzablonMaZwracacKategorie}} | _11 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 12 = {{Code|czy_pobierz}} | _12 = jak w: {{LinkPatrz|czy_pobierz}}. }} === Wyznaczanie i przetwarzanie uchwytu === Funkcja wyznacza uchwyt z tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. === Wyznaczanie nazw linku stronicowego === Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, wywołując: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. === {{Śródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}{{Code|UstalanieNazwStronyArtykularnegoWoluminu}} === Funkcja kolejno ustalająca cztery nazwy odpowiadające linkowi, ustalane z ich nazwy artykułu i nazwy książki, ale przed tą funkcją w innej. Funkcją można sterować przy pomocy parametru: {{Code|czy_tak}} {{LinkPatrz|czy_tak}}. Te nazwy nie wszystkie muszą istnieć, a jeżeli któraś nie istnieje, to wtedy dla niej jest brany w funkcji jej odpowiednik z bieżącego artykułu, chodzi tu o jej nazwy. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local UstalanieNazwStronyArtykularnegoWoluminu=function(czy_tak)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | styl parametru = width:10%; | 1 = {{Code|czy_tak}} {{Patrz|czy_tak}} | _1 = Jeśli odpowiada prawdziwej wartości, to nazwy przestrzeni nazw: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są brane pod uwagę, a jeśli one poszczególne nie istnieją, to brane są nazwy bieżżaćego woluminu a: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest przypisywana, jeśli istnieje, lub brana jest nazwa artykułu bieżącego woluminu. A jeśli ta zmienna, jednak jest o innej wartości, to brane są w trzech nazwach początkowych nazwy woluminu bieżącego, a w przypadku nazwy artykułu się nie zmienia sytuacja. }} === Inicjowanie wartości starych nazw na podstawie uzyskanych wcześniej === Parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwwa artykulu}} {{LinkPatrz|nazwa artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, te z tym {{Code|_stare}} (na końcu), są inicjowane parametrami bez tego, czyli te wspomniane. === Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie === Na samym końcu jest uruchamiana: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrem o tym uchwycie, wyliczonym wcześniej. Ta funkcja mówi przy jakim obiekcie szablonów stronicowych ma być uruchomione generowanie kategorii błędów wyniku uruchomień na stronie poszczególnych szablonów stronicowych, w kategorii na: {{lk2|Szablony stronicowe}}. === Przypadek uchwytu pustego === Gdy uchwyt jest pusty lub nie istnieje, wtedy wywoływana jest funkcja: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|true}}. * Następnie wtedy, przy uchwycie pustym uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, * A przy nieistniejącym, jeżeli problem: {{Code|brak uchwytu}}, sprawdzamy przy pomocy: {{LinkŚródtytuł|p.CzyJestTakiProblemowyElement|StronicowyParser/Problemy}}, nie istnieje, to wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, i ustawiany jest ten problem przy pomocy: {{LinkŚródtytuł|p.UstawTakiProblemowyElement|StronicowyParser/Problemy}}. === Istniejący niepusty uchwyt linku === Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} z niej samej, lub jesli ona nie istnieje, wtedy jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika. Wiemy to z instrukcji: <syntaxhighlight lang="lua"> nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); </syntaxhighlight> ==== Nazwa artykułu nie istnieje ==== Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|true}}, następnie: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Ale istnieje tylko nazwa artykułu ==== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, przy pomocy: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|false}}, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Dodatkowo istnieje tylko nazwa książki ==== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, nie istnieje, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} jest niepusta, wtedy nazwa artykułu zaczyna istnieć i inicjujemy wtedy ją wartością pustą, a jeśli pusta, to za zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, by potem się zakończa ta funkcja. ==== Liczenie parametrów nazw wywołań szablonowych linków ==== Przeciwnie są liczone parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}. ==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ==== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Co potem jest zakończenie działania funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 89jok7a3ojicqvm1y88ljlbegljynuc 558152 558151 2026-10-01T08:35:47Z Persino 2851 /* Dodatkowo istnieje tylko nazwa książki */ 558152 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje zbieranie informacji o linkach na stronie. == {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} == Funkcja wsadza uchwyt obiektu, wskazujący na aktualną stronę, do pewnej tablicy, ściśle: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono. Funkcja dla tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dla jego podtablicy: {{Code|linkobiekt}} {{Patrz|linkobiekt}} (jest to tablica, w której są zbierane w różnych podtablicach, w zależności od obiektu, uchwyty różnych linków na bieżącej stronie), w jego podtablicy o wartości elementu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, co taka tablica, to nic innego jak obiekt: {{Code|linkobiekttab}} {{Patrz|linkobiekttab}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} | _8 = Czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. }} Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych, tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, czy ma te elementy, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}. Dalej poza instrukcją warunkową w tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, jest wstawiany obiekt o wartości: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Następnie, gdy element: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli: <syntaxhighlight lang="lua"> table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); </syntaxhighlight> == {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} == Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_przestrzeni_stare}} {{Patrz|nazwa_przestrzeni_stare}}, {{Code|nazwa_przestrzeni_ksiazki_stare}} {{Patrz|nazwa_przestrzeni_ksiazki_stare}}, {{Code|nazwa_ksiazki_stare}} {{Patrz|nazwa_ksiazki_stare}} i {{Code|nazwa_artykulu_stare}} {{Patrz|nazwa_artykulu_stare}} | _6 = Są to kolejno nazwy uzyskane z linków, czy funkcji pobierania, one mogą poszczególne nie istnieć. One są inicjowane w funkcji: {{LinkŚródtytuł|p.GeneralneLinkowanie}}. | 7 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _7 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|uchwyt_obiektu}} | _8 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|czy_pobierz}} | _9 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw strony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, uruchamia funkcję zdefiniowaną w nim. {{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wcześniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, ale niekorzystana, a {{Code|false}}, bieżąca, ale niekorzystana, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje. Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest sprawdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza. === {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} === Dla obiektów, dla których jest ustawiony parametr: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkowej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}, również wskazywanych przez: {{s|PobierzŚródtekst}}. Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno o wartościach: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}. === Dalszy opis funkcji === Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr takiej wartości nie przyjmuje, wtedy tylko jest uruchamiana ta funkcja bez żadnego warunku. {{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dotyczące szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. {{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie, to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}} {{Patrz|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. {{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, do sprawdzania pustości pewnych parametrów. {{Tab}}Gdy tabela: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}} {{Patrz|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. == {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} == Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, na podstawie poszczególnych wskazywanych artykułów na biężącej książce lub innej, która zbiera raz informacje o danej stronie. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _8 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _9 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 10 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _10 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 11 = {{Code|KtorySzablonMaZwracacKategorie}} | _11 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 12 = {{Code|czy_pobierz}} | _12 = jak w: {{LinkPatrz|czy_pobierz}}. }} === Wyznaczanie i przetwarzanie uchwytu === Funkcja wyznacza uchwyt z tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. === Wyznaczanie nazw linku stronicowego === Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, wywołując: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. === {{Śródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}{{Code|UstalanieNazwStronyArtykularnegoWoluminu}} === Funkcja kolejno ustalająca cztery nazwy odpowiadające linkowi, ustalane z ich nazwy artykułu i nazwy książki, ale przed tą funkcją w innej. Funkcją można sterować przy pomocy parametru: {{Code|czy_tak}} {{LinkPatrz|czy_tak}}. Te nazwy nie wszystkie muszą istnieć, a jeżeli któraś nie istnieje, to wtedy dla niej jest brany w funkcji jej odpowiednik z bieżącego artykułu, chodzi tu o jej nazwy. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local UstalanieNazwStronyArtykularnegoWoluminu=function(czy_tak)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | styl parametru = width:10%; | 1 = {{Code|czy_tak}} {{Patrz|czy_tak}} | _1 = Jeśli odpowiada prawdziwej wartości, to nazwy przestrzeni nazw: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są brane pod uwagę, a jeśli one poszczególne nie istnieją, to brane są nazwy bieżżaćego woluminu a: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest przypisywana, jeśli istnieje, lub brana jest nazwa artykułu bieżącego woluminu. A jeśli ta zmienna, jednak jest o innej wartości, to brane są w trzech nazwach początkowych nazwy woluminu bieżącego, a w przypadku nazwy artykułu się nie zmienia sytuacja. }} === Inicjowanie wartości starych nazw na podstawie uzyskanych wcześniej === Parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwwa artykulu}} {{LinkPatrz|nazwa artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, te z tym {{Code|_stare}} (na końcu), są inicjowane parametrami bez tego, czyli te wspomniane. === Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie === Na samym końcu jest uruchamiana: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrem o tym uchwycie, wyliczonym wcześniej. Ta funkcja mówi przy jakim obiekcie szablonów stronicowych ma być uruchomione generowanie kategorii błędów wyniku uruchomień na stronie poszczególnych szablonów stronicowych, w kategorii na: {{lk2|Szablony stronicowe}}. === Przypadek uchwytu pustego === Gdy uchwyt jest pusty lub nie istnieje, wtedy wywoływana jest funkcja: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|true}}. * Następnie wtedy, przy uchwycie pustym uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, * A przy nieistniejącym, jeżeli problem: {{Code|brak uchwytu}}, sprawdzamy przy pomocy: {{LinkŚródtytuł|p.CzyJestTakiProblemowyElement|StronicowyParser/Problemy}}, nie istnieje, to wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, i ustawiany jest ten problem przy pomocy: {{LinkŚródtytuł|p.UstawTakiProblemowyElement|StronicowyParser/Problemy}}. === Istniejący niepusty uchwyt linku === Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} z niej samej, lub jesli ona nie istnieje, wtedy jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika. Wiemy to z instrukcji: <syntaxhighlight lang="lua"> nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); </syntaxhighlight> ==== Nazwa artykułu nie istnieje ==== Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|true}}, następnie: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Ale istnieje tylko nazwa artykułu ==== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, przy pomocy: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|false}}, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Dodatkowo istnieje tylko nazwa książki ==== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest pusta, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} jest niepusta, wtedy nazwa artykułu ma nadal taką wartość, a jeśli pusta, to zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Liczenie parametrów nazw wywołań szablonowych linków ==== Przeciwnie są liczone parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, tą samą metodą, co w punkcie: {{LinkZobaczTeż|nazwy}}. ==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ==== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Co potem jest zakończenie działania funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> k55mivs3bkytz06294lg9o9p7xt8uic 558153 558152 2026-10-01T08:37:15Z Persino 2851 /* Liczenie parametrów nazw wywołań szablonowych linków */ 558153 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje zbieranie informacji o linkach na stronie. == {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} == Funkcja wsadza uchwyt obiektu, wskazujący na aktualną stronę, do pewnej tablicy, ściśle: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono. Funkcja dla tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dla jego podtablicy: {{Code|linkobiekt}} {{Patrz|linkobiekt}} (jest to tablica, w której są zbierane w różnych podtablicach, w zależności od obiektu, uchwyty różnych linków na bieżącej stronie), w jego podtablicy o wartości elementu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, co taka tablica, to nic innego jak obiekt: {{Code|linkobiekttab}} {{Patrz|linkobiekttab}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} | _8 = Czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. }} Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych, tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, czy ma te elementy, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}. Dalej poza instrukcją warunkową w tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, jest wstawiany obiekt o wartości: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Następnie, gdy element: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli: <syntaxhighlight lang="lua"> table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); </syntaxhighlight> == {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} == Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_przestrzeni_stare}} {{Patrz|nazwa_przestrzeni_stare}}, {{Code|nazwa_przestrzeni_ksiazki_stare}} {{Patrz|nazwa_przestrzeni_ksiazki_stare}}, {{Code|nazwa_ksiazki_stare}} {{Patrz|nazwa_ksiazki_stare}} i {{Code|nazwa_artykulu_stare}} {{Patrz|nazwa_artykulu_stare}} | _6 = Są to kolejno nazwy uzyskane z linków, czy funkcji pobierania, one mogą poszczególne nie istnieć. One są inicjowane w funkcji: {{LinkŚródtytuł|p.GeneralneLinkowanie}}. | 7 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _7 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|uchwyt_obiektu}} | _8 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|czy_pobierz}} | _9 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw strony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, uruchamia funkcję zdefiniowaną w nim. {{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wcześniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, ale niekorzystana, a {{Code|false}}, bieżąca, ale niekorzystana, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje. Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest sprawdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza. === {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} === Dla obiektów, dla których jest ustawiony parametr: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkowej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}, również wskazywanych przez: {{s|PobierzŚródtekst}}. Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno o wartościach: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}. === Dalszy opis funkcji === Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr takiej wartości nie przyjmuje, wtedy tylko jest uruchamiana ta funkcja bez żadnego warunku. {{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dotyczące szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. {{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie, to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}} {{Patrz|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. {{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, do sprawdzania pustości pewnych parametrów. {{Tab}}Gdy tabela: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}} {{Patrz|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. == {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} == Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, na podstawie poszczególnych wskazywanych artykułów na biężącej książce lub innej, która zbiera raz informacje o danej stronie. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _8 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _9 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 10 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _10 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 11 = {{Code|KtorySzablonMaZwracacKategorie}} | _11 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 12 = {{Code|czy_pobierz}} | _12 = jak w: {{LinkPatrz|czy_pobierz}}. }} === Wyznaczanie i przetwarzanie uchwytu === Funkcja wyznacza uchwyt z tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. === Wyznaczanie nazw linku stronicowego === Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, wywołując: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. === {{Śródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}{{Code|UstalanieNazwStronyArtykularnegoWoluminu}} === Funkcja kolejno ustalająca cztery nazwy odpowiadające linkowi, ustalane z ich nazwy artykułu i nazwy książki, ale przed tą funkcją w innej. Funkcją można sterować przy pomocy parametru: {{Code|czy_tak}} {{LinkPatrz|czy_tak}}. Te nazwy nie wszystkie muszą istnieć, a jeżeli któraś nie istnieje, to wtedy dla niej jest brany w funkcji jej odpowiednik z bieżącego artykułu, chodzi tu o jej nazwy. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local UstalanieNazwStronyArtykularnegoWoluminu=function(czy_tak)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | styl parametru = width:10%; | 1 = {{Code|czy_tak}} {{Patrz|czy_tak}} | _1 = Jeśli odpowiada prawdziwej wartości, to nazwy przestrzeni nazw: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są brane pod uwagę, a jeśli one poszczególne nie istnieją, to brane są nazwy bieżżaćego woluminu a: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest przypisywana, jeśli istnieje, lub brana jest nazwa artykułu bieżącego woluminu. A jeśli ta zmienna, jednak jest o innej wartości, to brane są w trzech nazwach początkowych nazwy woluminu bieżącego, a w przypadku nazwy artykułu się nie zmienia sytuacja. }} === Inicjowanie wartości starych nazw na podstawie uzyskanych wcześniej === Parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwwa artykulu}} {{LinkPatrz|nazwa artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, te z tym {{Code|_stare}} (na końcu), są inicjowane parametrami bez tego, czyli te wspomniane. === Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie === Na samym końcu jest uruchamiana: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrem o tym uchwycie, wyliczonym wcześniej. Ta funkcja mówi przy jakim obiekcie szablonów stronicowych ma być uruchomione generowanie kategorii błędów wyniku uruchomień na stronie poszczególnych szablonów stronicowych, w kategorii na: {{lk2|Szablony stronicowe}}. === Przypadek uchwytu pustego === Gdy uchwyt jest pusty lub nie istnieje, wtedy wywoływana jest funkcja: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|true}}. * Następnie wtedy, przy uchwycie pustym uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, * A przy nieistniejącym, jeżeli problem: {{Code|brak uchwytu}}, sprawdzamy przy pomocy: {{LinkŚródtytuł|p.CzyJestTakiProblemowyElement|StronicowyParser/Problemy}}, nie istnieje, to wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, i ustawiany jest ten problem przy pomocy: {{LinkŚródtytuł|p.UstawTakiProblemowyElement|StronicowyParser/Problemy}}. === Istniejący niepusty uchwyt linku === Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} z niej samej, lub jesli ona nie istnieje, wtedy jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika. Wiemy to z instrukcji: <syntaxhighlight lang="lua"> nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); </syntaxhighlight> ==== Nazwa artykułu nie istnieje ==== Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|true}}, następnie: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Ale istnieje tylko nazwa artykułu ==== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, przy pomocy: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|false}}, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Dodatkowo istnieje tylko nazwa książki ==== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest pusta, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} jest niepusta, wtedy nazwa artykułu ma nadal taką wartość, a jeśli pusta, to zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Liczenie parametrów nazw wywołań szablonowych linków ==== Przeciwnie są liczone parametry nazw przy pomocy: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|false}}. ==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ==== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są porównywane z nazwami, którymi się przypisje jak w: {{LinkZobaczTeż|nazwy}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Co potem jest zakończenie działania funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> k8lrnr6gkuhp7425twcuv6yrtkoahc6 558154 558153 2026-10-01T08:40:35Z Persino 2851 /* Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów */ 558154 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje zbieranie informacji o linkach na stronie. == {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} == Funkcja wsadza uchwyt obiektu, wskazujący na aktualną stronę, do pewnej tablicy, ściśle: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono. Funkcja dla tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dla jego podtablicy: {{Code|linkobiekt}} {{Patrz|linkobiekt}} (jest to tablica, w której są zbierane w różnych podtablicach, w zależności od obiektu, uchwyty różnych linków na bieżącej stronie), w jego podtablicy o wartości elementu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, co taka tablica, to nic innego jak obiekt: {{Code|linkobiekttab}} {{Patrz|linkobiekttab}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} | _8 = Czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. }} Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych, tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, czy ma te elementy, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}. Dalej poza instrukcją warunkową w tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, jest wstawiany obiekt o wartości: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Następnie, gdy element: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli: <syntaxhighlight lang="lua"> table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); </syntaxhighlight> == {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} == Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_przestrzeni_stare}} {{Patrz|nazwa_przestrzeni_stare}}, {{Code|nazwa_przestrzeni_ksiazki_stare}} {{Patrz|nazwa_przestrzeni_ksiazki_stare}}, {{Code|nazwa_ksiazki_stare}} {{Patrz|nazwa_ksiazki_stare}} i {{Code|nazwa_artykulu_stare}} {{Patrz|nazwa_artykulu_stare}} | _6 = Są to kolejno nazwy uzyskane z linków, czy funkcji pobierania, one mogą poszczególne nie istnieć. One są inicjowane w funkcji: {{LinkŚródtytuł|p.GeneralneLinkowanie}}. | 7 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _7 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|uchwyt_obiektu}} | _8 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|czy_pobierz}} | _9 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw strony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, uruchamia funkcję zdefiniowaną w nim. {{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wcześniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, ale niekorzystana, a {{Code|false}}, bieżąca, ale niekorzystana, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje. Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest sprawdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza. === {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} === Dla obiektów, dla których jest ustawiony parametr: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkowej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}, również wskazywanych przez: {{s|PobierzŚródtekst}}. Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno o wartościach: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}. === Dalszy opis funkcji === Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr takiej wartości nie przyjmuje, wtedy tylko jest uruchamiana ta funkcja bez żadnego warunku. {{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dotyczące szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. {{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie, to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}} {{Patrz|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. {{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, do sprawdzania pustości pewnych parametrów. {{Tab}}Gdy tabela: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}} {{Patrz|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. == {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} == Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, na podstawie poszczególnych wskazywanych artykułów na biężącej książce lub innej, która zbiera raz informacje o danej stronie. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _8 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _9 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 10 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _10 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 11 = {{Code|KtorySzablonMaZwracacKategorie}} | _11 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 12 = {{Code|czy_pobierz}} | _12 = jak w: {{LinkPatrz|czy_pobierz}}. }} === Wyznaczanie i przetwarzanie uchwytu === Funkcja wyznacza uchwyt z tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. === Wyznaczanie nazw linku stronicowego === Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, wywołując: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. === {{Śródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}{{Code|UstalanieNazwStronyArtykularnegoWoluminu}} === Funkcja kolejno ustalająca cztery nazwy odpowiadające linkowi, ustalane z ich nazwy artykułu i nazwy książki, ale przed tą funkcją w innej. Funkcją można sterować przy pomocy parametru: {{Code|czy_tak}} {{LinkPatrz|czy_tak}}. Te nazwy nie wszystkie muszą istnieć, a jeżeli któraś nie istnieje, to wtedy dla niej jest brany w funkcji jej odpowiednik z bieżącego artykułu, chodzi tu o jej nazwy. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local UstalanieNazwStronyArtykularnegoWoluminu=function(czy_tak)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | styl parametru = width:10%; | 1 = {{Code|czy_tak}} {{Patrz|czy_tak}} | _1 = Jeśli odpowiada prawdziwej wartości, to nazwy przestrzeni nazw: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są brane pod uwagę, a jeśli one poszczególne nie istnieją, to brane są nazwy bieżżaćego woluminu a: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest przypisywana, jeśli istnieje, lub brana jest nazwa artykułu bieżącego woluminu. A jeśli ta zmienna, jednak jest o innej wartości, to brane są w trzech nazwach początkowych nazwy woluminu bieżącego, a w przypadku nazwy artykułu się nie zmienia sytuacja. }} === Inicjowanie wartości starych nazw na podstawie uzyskanych wcześniej === Parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwwa artykulu}} {{LinkPatrz|nazwa artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, te z tym {{Code|_stare}} (na końcu), są inicjowane parametrami bez tego, czyli te wspomniane. === Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie === Na samym końcu jest uruchamiana: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrem o tym uchwycie, wyliczonym wcześniej. Ta funkcja mówi przy jakim obiekcie szablonów stronicowych ma być uruchomione generowanie kategorii błędów wyniku uruchomień na stronie poszczególnych szablonów stronicowych, w kategorii na: {{lk2|Szablony stronicowe}}. === Przypadek uchwytu pustego === Gdy uchwyt jest pusty lub nie istnieje, wtedy wywoływana jest funkcja: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|true}}. * Następnie wtedy, przy uchwycie pustym uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, * A przy nieistniejącym, jeżeli problem: {{Code|brak uchwytu}}, sprawdzamy przy pomocy: {{LinkŚródtytuł|p.CzyJestTakiProblemowyElement|StronicowyParser/Problemy}}, nie istnieje, to wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, i ustawiany jest ten problem przy pomocy: {{LinkŚródtytuł|p.UstawTakiProblemowyElement|StronicowyParser/Problemy}}. === Istniejący niepusty uchwyt linku === Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} z niej samej, lub jesli ona nie istnieje, wtedy jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika. Wiemy to z instrukcji: <syntaxhighlight lang="lua"> nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); </syntaxhighlight> ==== Nazwa artykułu nie istnieje ==== Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|true}}, następnie: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Ale istnieje tylko nazwa artykułu ==== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, przy pomocy: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|false}}, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Dodatkowo istnieje tylko nazwa książki ==== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest pusta, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} jest niepusta, wtedy nazwa artykułu ma nadal taką wartość, a jeśli pusta, to zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ==== Liczenie parametrów nazw wywołań szablonowych linków ==== Przeciwnie są liczone parametry nazw przy pomocy: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|false}}. ==== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ==== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są porównywane z nazwami, które były wcześniej generowane przez funkcję: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Co potem jest zakończenie działania funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> eataua3fy2bnhd3j81t5e7blnuoyrxr 558156 558154 2026-10-01T08:53:15Z Persino 2851 /* {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} */ 558156 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje zbieranie informacji o linkach na stronie. == {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} == Funkcja wsadza uchwyt obiektu, wskazujący na aktualną stronę, do pewnej tablicy, ściśle: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono. Funkcja dla tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dla jego podtablicy: {{Code|linkobiekt}} {{Patrz|linkobiekt}} (jest to tablica, w której są zbierane w różnych podtablicach, w zależności od obiektu, uchwyty różnych linków na bieżącej stronie), w jego podtablicy o wartości elementu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, co taka tablica, to nic innego jak obiekt: {{Code|linkobiekttab}} {{Patrz|linkobiekttab}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} | _8 = Czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. }} Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych, tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, czy ma te elementy, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}. Dalej poza instrukcją warunkową w tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, jest wstawiany obiekt o wartości: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Następnie, gdy element: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli: <syntaxhighlight lang="lua"> table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); </syntaxhighlight> == {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} == Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_przestrzeni_stare}} {{Patrz|nazwa_przestrzeni_stare}}, {{Code|nazwa_przestrzeni_ksiazki_stare}} {{Patrz|nazwa_przestrzeni_ksiazki_stare}}, {{Code|nazwa_ksiazki_stare}} {{Patrz|nazwa_ksiazki_stare}} i {{Code|nazwa_artykulu_stare}} {{Patrz|nazwa_artykulu_stare}} | _6 = Są to kolejno nazwy uzyskane z linków, czy funkcji pobierania, one mogą poszczególne nie istnieć. One są inicjowane w funkcji: {{LinkŚródtytuł|p.GeneralneLinkowanie}}. | 7 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _7 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|uchwyt_obiektu}} | _8 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|czy_pobierz}} | _9 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw strony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, uruchamia funkcję zdefiniowaną w nim. {{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wcześniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, ale niekorzystana, a {{Code|false}}, bieżąca, ale niekorzystana, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje. Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest sprawdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza. === {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} === Dla obiektów, dla których jest ustawiony parametr: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkowej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}, również wskazywanych przez: {{s|PobierzŚródtekst}}. Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno o wartościach: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}. === Dalszy opis funkcji === Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr takiej wartości nie przyjmuje, wtedy tylko jest uruchamiana ta funkcja bez żadnego warunku. {{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dotyczące szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. {{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie, to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}} {{Patrz|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. {{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, do sprawdzania pustości pewnych parametrów. {{Tab}}Gdy tabela: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}} {{Patrz|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. == {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} == Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, na podstawie poszczególnych wskazywanych artykułów na biężącej książce lub innej, która zbiera raz informacje o danej stronie. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _8 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _9 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 10 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _10 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 11 = {{Code|KtorySzablonMaZwracacKategorie}} | _11 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 12 = {{Code|czy_pobierz}} | _12 = jak w: {{LinkPatrz|czy_pobierz}}. }} === Wyznaczanie i przetwarzanie uchwytu === Funkcja wyznacza uchwyt z tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. === Wyznaczanie nazw linku stronicowego === Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, wywołując: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. === {{Śródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}{{Code|UstalanieNazwStronyArtykularnegoWoluminu}} === Funkcja kolejno ustalająca cztery nazwy odpowiadające linkowi, ustalane z ich nazwy artykułu i nazwy książki, ale przed tą funkcją w innej. Funkcją można sterować przy pomocy parametru: {{Code|czy_tak}} {{LinkPatrz|czy_tak}}. Te nazwy nie wszystkie muszą istnieć, a jeżeli któraś nie istnieje, to wtedy dla niej jest brany w funkcji jej odpowiednik z bieżącego artykułu, chodzi tu o jej nazwy. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local UstalanieNazwStronyArtykularnegoWoluminu=function(czy_tak)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | styl parametru = width:10%; | 1 = {{Code|czy_tak}} {{Patrz|czy_tak}} | _1 = Jeśli odpowiada prawdziwej wartości, to nazwy przestrzeni nazw: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są brane pod uwagę, a jeśli one poszczególne nie istnieją, to brane są nazwy bieżżaćego woluminu a: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest przypisywana, jeśli istnieje, lub brana jest nazwa artykułu bieżącego woluminu. A jeśli ta zmienna, jednak jest o innej wartości, to brane są w trzech nazwach początkowych nazwy woluminu bieżącego, a w przypadku nazwy artykułu się nie zmienia sytuacja. }} === Inicjowanie wartości starych nazw na podstawie uzyskanych wcześniej === Parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwa artykulu}} {{LinkPatrz|nazwa artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, te z tym {{Code|_stare}} (na końcu), są inicjowane parametrami bez tego, czyli te wspomniane. === Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie === Na samym końcu jest uruchamiana: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrem o tym uchwycie, wyliczonym wcześniej. Ta funkcja mówi przy jakim obiekcie szablonów stronicowych ma być uruchomione generowanie kategorii błędów wyniku uruchomień na stronie poszczególnych szablonów stronicowych, w kategorii na: {{lk2|Szablony stronicowe}}. === {{Śródtytuł|ZbieranieDanychPrzezGeneralneLinkowanie}}{{Code|ZbieranieDanychPrzezGeneralneLinkowanie}} === Główna funkcja do zbierania danych funkcji: {{LinkŚródtytuł|p.GeneralneLinkowanie}}, uruchamiana przed: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZbieranieDanychPrzezGeneralneLinkowanie()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Brak używanych parametrów funkcji. | komórka1 = tak }} ==== Przypadek uchwytu pustego ==== Gdy uchwyt jest pusty lub nie istnieje, wtedy wywoływana jest funkcja: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|true}}. * Następnie wtedy, przy uchwycie pustym uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, * A przy nieistniejącym, jeżeli problem: {{Code|brak uchwytu}}, sprawdzamy przy pomocy: {{LinkŚródtytuł|p.CzyJestTakiProblemowyElement|StronicowyParser/Problemy}}, nie istnieje, to wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, i ustawiany jest ten problem przy pomocy: {{LinkŚródtytuł|p.UstawTakiProblemowyElement|StronicowyParser/Problemy}}. ==== Istniejący niepusty uchwyt linku ==== Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} z niej samej, lub jesli ona nie istnieje, wtedy jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika. Wiemy to z instrukcji: <syntaxhighlight lang="lua"> nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); </syntaxhighlight> ===== Nazwa artykułu nie istnieje ===== Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|true}}, następnie: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ===== Ale istnieje tylko nazwa artykułu ===== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, przy pomocy: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|false}}, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ===== Dodatkowo istnieje tylko nazwa książki ===== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest pusta, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} jest niepusta, wtedy nazwa artykułu ma nadal taką wartość, a jeśli pusta, to zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ====== Liczenie parametrów nazw wywołań szablonowych linków ====== Przeciwnie są liczone parametry nazw przy pomocy: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|false}}. ===== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ===== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są porównywane z nazwami, które były wcześniej generowane przez funkcję: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Co potem jest zakończenie działania funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> rck0ft7ifrr5z42jwpax1j4bqxldrwa 558157 558156 2026-10-01T08:56:11Z Persino 2851 /* Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów */ 558157 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje zbieranie informacji o linkach na stronie. == {{Śródtytuł|p.LinkowanieFinalizowaniePrac}}{{Code|p.LinkowanieFinalizowaniePrac}} == Funkcja wsadza uchwyt obiektu, wskazujący na aktualną stronę, do pewnej tablicy, ściśle: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, i ewentualnie ustawia pewne problemy, jeśli je nie ustawiono. Funkcja dla tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dla jego podtablicy: {{Code|linkobiekt}} {{Patrz|linkobiekt}} (jest to tablica, w której są zbierane w różnych podtablicach, w zależności od obiektu, uchwyty różnych linków na bieżącej stronie), w jego podtablicy o wartości elementu: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, co taka tablica, to nic innego jak obiekt: {{Code|linkobiekttab}} {{Patrz|linkobiekttab}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Obiekt, obsługiwany przez tą funkcję linku. | 3 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} | _3 = Kod obiektu dla: {{LinkPatrz|obiekt}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|uchwyt_obiektu}} | _6 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|czy_pobierz}} {{Patrz|czy_pobierz}} | _8 = Czy to jest szablon typu {{Code|Pobierz}} {{Patrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. }} Funkcja sprawdza, czy nie został ustawiony element {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{Patrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}, a jeżeli tak, to dalej, czy nie ma elementów numerowanych, tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, przy pomocy funkcji: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, a jeśli również tak, czy ma te elementy, to dalej jest sprawdzane, czy został ustawiony problem: {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy pomocy: {{Code|{{sr|#p.CzyJestTakiElementTabeliProblemu|p=StronicowyParser/Problemy}}}}, a jeżeli nie jest, wtedy jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Na samym końcu tej instrukcji warunkowej jest ustawiana prawdziwość elementu: {{Code|tablica_zmiennych.sprawdzenie_dokonane_linku}} {{LinkPatrz|tablica_zmiennych.sprawdzenie_dokonane_linku}}. Dalej poza instrukcją warunkową w tablicy: {{Code|linkobiekttab}} {{LinkPatrz|linkobiekttab}}, jest wstawiany obiekt o wartości: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Następnie, gdy element: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, jest ustawiony na {{Code|true}}, wtedy dla: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, pewna tablica, jest wstawiana do tablicy: {{Code|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane}}, jeśli istnieje, a jeśli nie, to jest tworzona, jako tablica, wtedy też jest to robione. Tą czynnością wstawiany tabelę, do tej tablicy, czyli: <syntaxhighlight lang="lua"> table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); </syntaxhighlight> == {{Śródtytuł|p.LinkowanieInnychStron}}{{Code|p.LinkowanieInnychStron}} == Funkcja do sprawdzania innych stron niż aktualna, a jeżeli dana strona została już sprawdzona, to powtórnie nie jest już rewidowana. Funkcja ustawia w głównej tablicy aktualnej tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} pewne podtablice. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|nazwa_obiektu}} | _5 = jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_przestrzeni_stare}} {{Patrz|nazwa_przestrzeni_stare}}, {{Code|nazwa_przestrzeni_ksiazki_stare}} {{Patrz|nazwa_przestrzeni_ksiazki_stare}}, {{Code|nazwa_ksiazki_stare}} {{Patrz|nazwa_ksiazki_stare}} i {{Code|nazwa_artykulu_stare}} {{Patrz|nazwa_artykulu_stare}} | _6 = Są to kolejno nazwy uzyskane z linków, czy funkcji pobierania, one mogą poszczególne nie istnieć. One są inicjowane w funkcji: {{LinkŚródtytuł|p.GeneralneLinkowanie}}. | 7 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _7 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|uchwyt_obiektu}} | _8 = Jak w: {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|czy_pobierz}} | _9 = Jak w: {{LinkPatrz|czy_pobierz}}. }} Najpierw jest uruchamiana funkcja: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, która w razie poprawności nazwy strony, czyli inaczej nazw strony, charakteryzowanej przez, tzn.: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, uruchamia funkcję zdefiniowaną w nim. {{Tab}}Ta funkcja sprawdza, czy któraś z parametrów nazw istnieje, a jeżeli nie, to dalej jest inicjowana zmienna: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, pustą tablicą i podobnie {{Code|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2}}, to uruchamiana jest: {{LinkŚródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, do zbierania informacji o stronie nowej lub przebadanej (wtedy zostają zwrócone parametry z wcześniejszego jego analizowania, jak była nowa). Funkcja zwraca trzy parametry, tzn. {{Code|tabela_listy_danych_analizy_ksiazki0}} {{Patrz|tabela_listy_danych_analizy_ksiazki0}}, {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}} i {{Code|czy_inna}} {{Patrz|czy_inna}}. Te parametry mogą przyjmować wartość {{Code|nil}}, lub pierwszy {{Code|0}}, drugi, to nic innego jest jak: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, a trzeci parametr jest wtedy równy {{Code|true}}, gdy strona jest nowa, ale niekorzystana, a {{Code|false}}, bieżąca, ale niekorzystana, a gdy {{Code|nil}}, gdy np. zawartość strony nie istnieje. Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, istnieje, wtedy jest sprawdzane, czy któreś z parametrów: {{LinkPatrz|tablica_zmiennych2}} i {{LinkPatrz|czy_inna}}, nie istsnieje, wtedy ta funkcja się zakańcza. === {{Śródtytuł|JuzPoliczone}}{{Code|JuzPoliczone}} === Dla obiektów, dla których jest ustawiony parametr: {{Code|czy_pobierz}} {{LinkPatrz|czy_pobierz}}, co dalej w tym rozgałęzieniu instrukcji warunkowej jest uruchamiana funkcja szablonów tekstu, czyli: {{Code|{{sr|#p.UstawianiePobierz|p=StronicowyParser/SzablonyTekstu}}}}, aby również później za pomocą innych funkcji przeanalizować również tekst w szablonach takich jak: {{s|Śródtekst}}, również wskazywanych przez: {{s|PobierzŚródtekst}}. Dalej jest tworzona tablica, jeśli nie istnieje, tzn. {{Code|tablica_zmiennych2.dane_juz_policzone}} {{Patrz|tablica_zmiennych2.dane_juz_policzone}}, czyli jest inicjowana pustą tablicą. Dalej jest tworzona, jeśli nie istnieje, tablica wielowymiarowa po kolei, o kluczach kolejno o wartościach: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, a jeżeli ta ostatnia wartość tej tablicy była wcześniej, to zwracane jest {{Code|true}}, przeciwnie {{Code|false}}, a tej ostatniej wartości tej tablicy jest przydzielana wartość {{Code|true}}. === Dalszy opis funkcji === Gdy parametr: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest równy {{Code|0}}, ale nie {{Code|nil}}, wtedy jest sprawdzane, czy artykuł został wcześniej zrewidowany według: {{LinkŚródtytuł|JuzPoliczone}}, a jeżeli tak to jest zakańczany, a gdy ten parametr takiej wartości nie przyjmuje, wtedy tylko jest uruchamiana ta funkcja bez żadnego warunku. {{Tab}}Następnie jest uruchamiana funkcja: {{Code|{{sr|#p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony|p=StronicowyParser/SzablonyTekstu}}}}, do przydzielenia pewnych zmiennych z: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, dotyczące szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. {{Tab}}Jest sprawdzane, czy dany artykuł należy do spisu, jeżeli nie, to są ustawiane pewne kody problemów w tablicy problemów, tzn. {{LinkŚródtytuł|p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. Następnie jest sprawdzane, czy podany uchwyt: {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, który jest podany w szablonach linków na aktualnej stronie, czy jest tylko jeden na stronie sprawdzanej, a jeżeli nie jest tak, to jest sprawdzane, czy nie istnieje ustawiony problem: {{Code|błędy uchwytów korzystanych stron}} {{Patrz|błędy uchwytów korzystanych stron}}, funkcją: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to taki problem jest dodawany dzięki: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. {{Tab}}Uruchamiana jest dalej funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, do sprawdzania pustości pewnych parametrów. {{Tab}}Gdy tabela: {{Code|tabela_listy_danych_analizy_ksiazki0}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki0}}, jest jednak równa wartości odpowiadającej fałszywej, wtedy jeśli nie istnieje problem: {{Code|błąd wewnętrzny modułu lua stronicowego parsera}} {{Patrz|błąd wewnętrzny modułu lua stronicowego parsera}}, co jest rewidowane elementem: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, a jeżeli tak, to dodawany jest taki problem do tabeli problemów na podstawie: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}. == {{Śródtytuł|p.GeneralneLinkowanie}}{{Code|p.GeneralneLinkowanie}} == Funkcja zbiera uchwyty, na aktualnej lub innej stronie, a także je analizuje w odpowiedni sposób, modyfikuje tablica aktualnego modułu, czyli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, na podstawie poszczególnych wskazywanych artykułów na biężącej książce lub innej, która zbiera raz informacje o danej stronie. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 2 = {{Code|obiekt}} | _2 = Jak w: {{LinkPatrz|obiekt}}. | 3 = {{Code|kod}} | _3 = Jak w: {{LinkPatrz|kod|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 4 = {{Code|tablica_zmiennych}} | _4 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 6 = {{Code|nazwa_obiektu}} | _6 = Jak w: {{LinkPatrz|nazwa_obiektu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 7 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _7 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 8 = {{Code|nazwa_modulu_aktualna_czy_biezaca_szablonowa}} | _8 = Jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca_szablonowa|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 9 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _9 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 10 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _10 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 11 = {{Code|KtorySzablonMaZwracacKategorie}} | _11 = Jak w: {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. | 12 = {{Code|czy_pobierz}} | _12 = jak w: {{LinkPatrz|czy_pobierz}}. }} === Wyznaczanie i przetwarzanie uchwytu === Funkcja wyznacza uchwyt z tabeli parametrów: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o kluczu {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} lub {{Code|1}}, a później w kodzie jest on kompletowany funkcją: {{Code|{{sr|#p.DekodowanieNazwySzablonu|p=StronicowyParser/Potrzebne}}}}, a następnie rozwijany w niej, a później jest dekodowany: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. === Wyznaczanie nazw linku stronicowego === Funkcja liczy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, wywołując: {{LinkŚródtytuł|p.SzablonyReferencjiParametrowych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. === {{Śródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}{{Code|UstalanieNazwStronyArtykularnegoWoluminu}} === Funkcja kolejno ustalająca cztery nazwy odpowiadające linkowi, ustalane z ich nazwy artykułu i nazwy książki, ale przed tą funkcją w innej. Funkcją można sterować przy pomocy parametru: {{Code|czy_tak}} {{LinkPatrz|czy_tak}}. Te nazwy nie wszystkie muszą istnieć, a jeżeli któraś nie istnieje, to wtedy dla niej jest brany w funkcji jej odpowiednik z bieżącego artykułu, chodzi tu o jej nazwy. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local UstalanieNazwStronyArtykularnegoWoluminu=function(czy_tak)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | styl parametru = width:10%; | 1 = {{Code|czy_tak}} {{Patrz|czy_tak}} | _1 = Jeśli odpowiada prawdziwej wartości, to nazwy przestrzeni nazw: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są brane pod uwagę, a jeśli one poszczególne nie istnieją, to brane są nazwy bieżżaćego woluminu a: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest przypisywana, jeśli istnieje, lub brana jest nazwa artykułu bieżącego woluminu. A jeśli ta zmienna, jednak jest o innej wartości, to brane są w trzech nazwach początkowych nazwy woluminu bieżącego, a w przypadku nazwy artykułu się nie zmienia sytuacja. }} === Inicjowanie wartości starych nazw na podstawie uzyskanych wcześniej === Parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwa artykulu}} {{LinkPatrz|nazwa artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, te z tym {{Code|_stare}} (na końcu), są inicjowane parametrami bez tego, czyli te wspomniane. === Generowanie możliwych kodów problemów i ustawianie zmiennej, przy której mają być zwrócone kategorie === Na samym końcu jest uruchamiana: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, z parametrem o tym uchwycie, wyliczonym wcześniej. Ta funkcja mówi przy jakim obiekcie szablonów stronicowych ma być uruchomione generowanie kategorii błędów wyniku uruchomień na stronie poszczególnych szablonów stronicowych, w kategorii na: {{lk2|Szablony stronicowe}}. === {{Śródtytuł|ZbieranieDanychPrzezGeneralneLinkowanie}}{{Code|ZbieranieDanychPrzezGeneralneLinkowanie}} === Główna funkcja do zbierania danych funkcji: {{LinkŚródtytuł|p.GeneralneLinkowanie}}, uruchamiana przed: {{Code|KtorySzablonMaZwracacKategorie}} {{LinkPatrz|KtorySzablonMaZwracacKategorie|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ZbieranieDanychPrzezGeneralneLinkowanie()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Brak używanych parametrów funkcji. | komórka1 = tak }} ==== Przypadek uchwytu pustego ==== Gdy uchwyt jest pusty lub nie istnieje, wtedy wywoływana jest funkcja: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|true}}. * Następnie wtedy, przy uchwycie pustym uruchamia się: {{LinkŚródtytuł|p.SprawdzanieCzyJestNiepoprawnaNazwaStrony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom IV}}, następnie: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, * A przy nieistniejącym, jeżeli problem: {{Code|brak uchwytu}}, sprawdzamy przy pomocy: {{LinkŚródtytuł|p.CzyJestTakiProblemowyElement|StronicowyParser/Problemy}}, nie istnieje, to wtedy jest wywoływana funkcja: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}, i ustawiany jest ten problem przy pomocy: {{LinkŚródtytuł|p.UstawTakiProblemowyElement|StronicowyParser/Problemy}}. ==== Istniejący niepusty uchwyt linku ==== Gdy uchwyt: {{Code|uchwyt}} {{LinkPatrz|uchwyt|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest niepusty, wtedy jest wyznaczana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} z niej samej, lub jesli ona nie istnieje, wtedy jeśli nazwa ksiązki istnieje, tylko, wtedy ta nazwa zaczyna być pusta, przeciwnie {{Code|nil}}, wtedy mamy do czynienia ze stroną główną podręcznika. Wiemy to z instrukcji: <syntaxhighlight lang="lua"> nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); </syntaxhighlight> ===== Nazwa artykułu nie istnieje ===== Gdy nazwa artykułu nie istnieje, wtedy wywoływana jest: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|true}}, następnie: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ===== Ale istnieje tylko nazwa artykułu ===== Jeśli nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jest niepusta, i gdy nazwa książki nie istnieje, wtedy są liczone parametry nazw, oprócz nazwy artykułu, przy pomocy: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|false}}, a jeśli jednak nazwa książki jest pusta, to są sprawdzane parametry w: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ===== Dodatkowo istnieje tylko nazwa książki ===== Gdy nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, istnieje i jest pusta, i gdy nazwa książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} jest niepusta, wtedy nazwa artykułu ma nadal taką wartość, a jeśli pusta, to zaczyna być potem generowanie kodów błędów funkcją: {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. ====== Liczenie parametrów nazw wywołań szablonowych linków ====== Przeciwnie są liczone parametry nazw przy pomocy: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}}, z parametrem pierwszym {{Code|false}}. ===== Uruchamianie właściwych funkcji linków do programowego zrozumienia jego parametrów ===== Gdy nazwy: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, są porównywane z nazwami, które były wcześniej generowane przez funkcję: {{LinkŚródtytuł|UstalanieNazwStronyArtykularnegoWoluminu}} - one są sobie nierówne, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|p.LinkowanieInnychStron}}, przeciwnie wtedy działają dwie funkcje uruchomione po kolei, tzn.: {{LinkŚródtytuł|p.LinkowanieFinalizowaniePrac}} i {{LinkŚródtytuł|p.PusteParametryReferencji|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom II}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 4o6t81ck15c4gj5mv1kq7cd2q71jdtw Szablon:Link FA/opis/Zobacz też 10 63953 558107 552356 2026-09-30T13:12:44Z Persino 2851 558107 wikitext text/x-wiki <includeonly> ; Opis ogólny{{dk}} * Interwiki w identyfikatorze są takie wstawiane, jakie istnieją na możliwie polskich projektach, a ewentualnie, jeżeli takie nie istnieją, to angielskich, dla odpowiednich przestrzeni nazw, w zależności od szablonu, w jakim jest używany. ; Szablony pojedynczych linków interwiki w identyfikatorze{{dk}} * {{s|Link FA}} - umieszczamy w linkach w identyfikatorze, używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innym {{NS|l=tak|w=tak|pk=mj}}. ; Szablony umiejszczające linki rysunkowe statusu i interwiki w identyfikatorze{{dk}} * {{s|Status}} - szablon statusu ukończenia strony, umieszczająca w identyfikatorze, rysunek wraz z linkiem, ze statusem, rysunkowym i linkowym, i inne tego typu z interwiki, dla przestrzeni nazw kolejno: {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}}, ; Szablony umiejszczające linki rysunkowe tylko interwiki w szablonie {{nobold|{{s|Siostrzane projekty}}}}{{dk}} * {{s|Opis kategorii}} lub {{s|Opis kategorii 2}} - szablon opisu kategorii, ale nie umieszczający w identyfikatorze, tylko w szablonie: {{s|Siostrzane projekty}}, ale dla przestrzeni nazw: {{Np|Category|link=tak}}, ale też tam są linki do innych projektów, jak w szablonie {{s|Status}}, * {{s|Dokumentacja}} - szablon do opisu szablonów, a tutaj dla stron szablonów, dla przestrzeni nazw: {{Np|Template|link=tak}}.<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon powtarzalny do wsadzania pod sekcję: '''Zobacz też''', do opisu szablonów związanych z {{s|Link FA}}.}}<!-- -->{{Kategoria|Szablony pomocnicze potrzebne do dokumentacji szablonów}}<!-- --></noinclude> h3qhfwx5dye7x1cc22ukdao8kpeoxga Szablon:Status/opis/Zobacz też 10 63954 558111 552011 2026-09-30T13:17:05Z Persino 2851 558111 wikitext text/x-wiki <includeonly> ; Funkcje kompletności{{dk}} * {{s|Książka}} - szablon przedstawia link do książki, stopień ukończenia z datą tego zauważenia, i informację do książki, * {{s|Kompletność}} i {{s|Kompletność krótka}} - przedstawia stopień ukończenia artykułu z datą jego dodania, * {{s|Kategoria}} - szablon dodaje jedną kategorie do strony, odpowiednio, jeśli tego nie oznaczono inaczej, z nazwą sortowania danej strony. ; Funkcje pudełkowe, z których korzysta ten szablon{{dk}} * {{m|Pudełko}} - funkcje modułu, z których korzysta ten szablon, co do nazwy przestrzeni nazw: {{m|Pudełko|Nazwa przestrzeni nazw 2}}, i nazwy jednostki: {{m|Pudełko|Nazwa jednostki 2}}. ; Identyfikator (prawy górny róg w linii tytułu lub nad stroną, ale pod tytułem){{dk}} * {{s|Skrót}} - skróty do strony podawane w formie starej lub nagłówkowej, w zależności od wyboru, * {{s|Skrót szablonu}} - skróty szablonu podawane w szablonie oddzielone znakami potoku, wyświetlane w formie starej lub nagłówkowej, w zależności od wyboru.<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon powtarzalny do wsadzania pod sekcję: '''Zobacz też''', do opisu szablonów związanych z {{s|Status}}.}}<!-- -->{{Kategoria|Szablony pomocnicze potrzebne do dokumentacji szablonów}}<!-- --></noinclude> 1cct3kdk9wu39s1aydjrj24068xcn06 Szablon:Opis kategorii/opis/Zobacz też 10 63955 558109 552018 2026-09-30T13:14:50Z Persino 2851 558109 wikitext text/x-wiki <includeonly> ; Szablony opisu kategorii, wersja nowa i z niego skonstruowana jego stara{{dk}} * {{s|Opis kategorii}} - szablon z dodatkowymi możliwymi parametrami: {{Code|bez ramki}}, {{Code|z nagłówkiem}}, {{Code|ze stopką}}, {{Code|bez kolumn}}, {{Code|liczba kolumn}},{{Code|min szerokość kolumn}}, {{Code|min główna szerokość}} i {{Code|bez czcionki}}, * {{s|Opis kategorii 2}} - szablon bez dodatkowych parametrów: {{Code|bez ramki}}, {{Code|z nagłówkiem}}, {{Code|ze stopką}}, {{Code|bez kolumn}}, {{Code|liczba kolumn}},{{Code|min szerokość kolumn}}, {{Code|min główna szerokość}} i {{Code|bez czcionki}}.<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon powtarzalny do wsadzania pod sekcję: '''Zobacz też''', do opisu szablonów związanych z: {{s|Opis kategorii}} i {{s|Opis kategorii 2}}.}}<!-- -->{{Kategoria|Szablony pomocnicze potrzebne do dokumentacji szablonów}}<!-- --></noinclude> 9y3hu1hxo6xim7fa45kqfdk9t8725se Szablon:Kwestie techniczne/opis/Zobacz też 10 63960 558106 552355 2026-09-30T13:11:57Z Persino 2851 558106 wikitext text/x-wiki <includeonly> ; Szablony dokumentacji użyte na stronach opisów szablonów{{dk}} * {{s|Strukturyzacja Wizualnego Edytora}} - szablon wyświetlający link do strony na {{NS|l=tak|pk=mj}} dotyczącej edytora '''VisualEditor''', * {{s|Kwestie techniczne}} - szablon wyświetlający link do strony na {{NS|l=tak|pk=mj}} rozwiązującej problemy natury technicznej, * {{s|Dokumentacja}} - szablon dokumentacji, w którym są użyte w tej sekcji powyższe szablony, * {{s|Dokumentacja/preload}} - szablon, w którym wykorzystuje się ten szablon.<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon powtarzalny do wsadzania pod sekcję: '''Zobacz też''', do opisu szablonów związanych z {{s|Kwestie techniczne}}.}}<!-- -->{{Kategoria|Szablony pomocnicze potrzebne do dokumentacji szablonów}}<!-- --></noinclude> 77zfhfyreg37ebiz39h1yj6567qsz2w Wikibooks:Moduły/StronicowyParser/ZbieranieDanychStron/Moduł główny/Część II 4 64134 558159 557595 2026-10-01T09:15:54Z Persino 2851 /* Zwracane wartości i ich opis */ 558159 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/ZbieranieDanychStron}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Śródtytuł|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}}{{Code|p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi}} == Jest to dokończenie dokumentacji funkcji: {{Code|{{sr|#p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|p=StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}}}, ze strony: {{lr2|Moduły/StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}. === Opis działania funkcji z użytymi funkcjami lokalnymi zdefiniowanych w tej funkcji === Te funkcje, które są lokalne, są zdefiniowane w funkcji głównej, by je użyć w niej, i one jedynie służą na jej użytek. ==== Artykuły przeanalizowane lub brak pewnych elementów bazy ==== Aby pobrać dane artykułu (strony) książki, ewentualnie zwykłej strony, nie podręcznika, uruchamiana jest funkcja: {{LinkŚródtytuł|__FUNKCJA_POBIERANIE|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}. Ta funkcja zwraca wartości, charakteryzująca, czy ta strona została zanalizowana, nawet ta aktualna, jakie są dane danej książki, itd. Jeżeli pierwszy parametr zwracany tej powyżej funkcji nie ma wartości, wtedy funkcja się zakańcza z wynikami: <syntaxhighlight lang="lua"> return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna; </syntaxhighlight> A jeżeli jednak ta wartość jest zero, i taki artykuł został zrewidowany i sprawdzony, a także zbazowany, w takim razie działa funkcja: {{LinkŚródtytuł|StronaSubstFunkcja|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, i zwracany jest wynik jak poprzednio. ==== Strony (artykuły) poza zakresem obsługiwanym książkowym ==== Jeśli ta funkcja nie została zakończona wcześniej, w tym wypadku, jeżeli strona nie jest artykułem książkowym, wtedy jest ustawiany kod problemu {{Code|strony poza zakresem obsługiwanym}} {{LinkPatrz|strony poza zakresem obsługiwanym|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, przy pomocy: {{Code|{{sr|#p.DodawanieProblemowegoElementuDoTablicy|p=StronicowyParser/Problemy}}}}. ==== Tworzenie bazy artykułu ==== Dla artykułu nieprzeanalizowanego tworzone są tabele artykułu, dzięki: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, dlatego, którego szablony zostaną przeanalizowane, zebrane zostaną dane artykułu (strony). Jedna ze zmiennych jest tablica: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, charakeryzująca dane zebrane specjalnie dla artykułów danej książki. ==== Spisy książki ==== Zbierane są wiadomości o wszystkich spisach książki danego artykułu, na podstawie wywołania: {{LinkŚródtytuł|InneInformacjePrzebneDoAnalizowanejKsiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}. <syntaxhighlight lang="lua"> local wartosc_wyniku,wynik_bledu,artykul_bazowy,kod_wyniku_bazowy=InneInformacjePrzebneDoAnalizowanejKsiazki(); </syntaxhighlight> * Jeżeli wychodzi, że spis już został przeanalizowany wcześniej, ale względem przekierowań strony, i dana strona została już przeanalizowana, ale względem jego przekierowania, czyli według: {{Code|wartosc_wyniku}}, jeśli istnieje, to funkcja główna ta zakańcza się z tą wartością. Ta wartość mówi, dwie pierwsze wartości: ** Czy przeanalizowano już daną stronę, ale względem przekierowań strony, ** Druga wartosc, to {{Code|true}}, gdu stronę, taką przeanalizowano. * Dwie ostatnie: ** Trzecim jego parametrem jest: {{Code|artykul_bazowy}} {{Patrz|artykul_bazowy}} (to jest nic innego jak: {{Code|artykul}} {{LinkPatrz|artykul|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}), mówiący, jaki jest artykuł bazowy danego przekierowania, czyli na co wskazuje przekierowanie. ** Ta funkcja też zwraca parametr: {{Code|kod_wyniku_bazowy}} {{Patrz|kod_wyniku_bazowy}} (to jest nic innego jak: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}), który przyrównujemy do: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}. ==== Spis główny książki do spisu głównego bieżącego podręcznika ==== ; Jeżeli{{dk}} {{nobold|{{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}}}, zmiennej{{dk}} {{nobold|{{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}}}, ale wartość{{dk}}{{nobold|{{Code|kod_wyniku_bazowy}} {{LinkPatrz|kod_wyniku_bazowy}}}}, istnieje, wtedy zmienne{{dk}} * {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, uzyskują wartości kolejno w sposób ponumerowany z: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{LinkPatrz|adres_woluminu_bazowego_spisu_rzeczy|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}. * A artykuł bazowy: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} z: {{Code|artykul_bazowy}} {{LinkPatrz|artykul_bazowy}}. ; Tabele przestrzenne poszczególnych nazw książki{{dk}} * Tablice kolejne przestrzenne, w których zebrane są informacje o ksiązkach (artykułach), liczymy kolejno ze zmiennych kolejno z kolejnych elementów tablicy ponumerowanej z {{Code|referencja_do_nowej_formy_spisu}} {{LinkPatrz|referencja_do_nowej_formy_spisu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}. Uzyskane tabele są to tabele dla nazw adresu spisu głównego książki, na które wskazuje przekierowanie do bieżącego artykułu podręcznika, który też taki musi być, więc główny. ==== Operowanie na tablicy spisu książki ==== Gdy spis: {{Code|spis}} {{LinkPatrz|spis|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, istnieje aktualnej książki, co jest kluczem zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}: * Wtedy gdy mamy do czynienia z przekierowaniami dla aktualnej strony, wtedy liczymy z funkcji: {{Code|{{sr|#p.OdpowiednikNaPrzemianArtykularnychStronWoluminu|p=StronicowyParser/Potrzebne}}}}, * Liczymy artykuł: {{Code|artykul}} {{LinkPatrz|artykul|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, i kod wyniku: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, dla stron prowadzących przez przekierowanie, lub będących nieprzekierowaniami, * Drugim parametrem jest zwracanym przez tą funkcję, czyli to jest: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, którego w dalszej instrukcji warunkowej mamy z niej: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, która przyjmuje wartość zmiennej: {{Code|artykul}} {{LinkPatrz|artykul|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, * Dalej liczymy jedynie: {{LinkŚródtytuł|__FUNKCJA_ARTYKULU|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}. A na samym końcu po tych instrukcjach warunkowych liczymy: {{Code|kod_wyniku_przekierowan}} {{LinkPatrz|kod_wyniku_przekierowan|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, jeżeli owa nie ma wartości, wtedy ma ona wartość: {{Code|kod_wyniku}} {{LinkPatrz|kod_wyniku|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}. ==== Tworzenie nazwy modułu ==== Liczymy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, z parametrów: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przy pomocy funkcji: {{Code|{{sr|#p["NazwaModułu"]|p=Nazwy/Tom III}}}}. ==== Przekierowania dla stron bez spisu ==== ; Operacje na przekierowaniach, jeśli istnieją{{dk}} * Liczymy: {{Code|wynik}} {{Patrz|wynik}}, z funkcji: {{LinkŚródtytuł|PrzekierownieAwaryjne|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, która wywoływana jest bez parametrów. * Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} jest zmienna o wartości prawdziwej, wtedy zmienna: {{Code|self.nazwa_modulu_biezaca}} {{Patrz|self.nazwa_modulu_biezaca}}, równa się wartości zmiennej: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}. ; Przedwczesne zakończenie funkcji z wartościami zwracanymi{{dk}} * Gdy zmienna: {{Code|wynik}} {{LinkPatrz|wynik}}, jest wartością odpowiadającej elementowi prawdziwemu, wtedy funkcja zakańcza się z wartością o tej zmiennej, co świadczy, że strona została już przeanalizowana. ==== Zmienne nazw danego bieżącego artykułu książki ==== ; Gdy{{dk}} {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}}}, jest o wartości odpowiadającej prawdziwej{{dk}} * Wtedy zmienne nazw odpowiadającej książki bieżącego artykułu dla książki rozważanej, jeśli nie istnieją, to są one tworzone, w tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, o kluczach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_woluminu}} {{Patrz|nazwa_przestrzeni_woluminu}}, {{Code|nazwa_woluminu}} {{Patrz|nazwa_woluminu}} i {{Code|nazwa_podstrony_woluminu}} {{Patrz|nazwa_podstrony_woluminu}}, elementy, którym kolejno przydzielamy wartości: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. ==== Nazwa modułu aktualna lub bieżąca ==== Liczymy nazwę: {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, która jest wykorzystywana do liczenia do stron zbiorczych, jest to alternatywna strona, na której ma wyświetlić stronę zbiorczą, to się dzieje dzięki podzmiennej: {{Code|alternatywna}} {{Patrz|alternatywna}}, w tabeli: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}. Do liczenia są wykorzystywane zmienne ze strony: {{s|Podręcznik/Ustawienia/}}. ==== Dane artykułu i książki, bieżącej ==== ; Dla strony bieżącej, według zmiennej{{dk}} {{nobold|{{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}}}{{dk}} * Jest ustawiana zmienna o kluczu {{Code|artykul_biezacy}} {{Patrz|artykul_biezacy}}, dla zmiennej: {{Code|artykul_analizowany}} {{LinkPatrz|artykul_analizowany|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, jej jest dawana wartość {{Code|true}}, tzn. czy dany artykuł jest bieżący. * A dalej dla zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, o kluczu: {{Code|ksiazka_analizowana}} {{Patrz|ksiazka_analizowana}}, jest przydzielana wartość {{Code|true}}, mówiąca, czy rozważana książka jest bieżąca. ==== Informacje o analizowanym artykule ==== Jest tworzona zmienna pusta: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, jeśli nie istnieje, i jej podtablica ma być też pusta o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, jeśli nie istnieje. Dalej są generowane podzmienne z: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, dotyczących poszczególnych obiektów obsługiwanych przez '''{{ld|StronicowyParser|Stronicowy Parser}}''', a elementy wewnętrz jej: * Dla każdych z nich w śródku są zmienne: {{Code|CzyLink}} {{Patrz|CzyLink}}, i {{Code|CzyNum}} {{Patrz|CzyNum}}, mówiące, z jakiem typem obiektu mamy do czynienia, za pomocą wartości logicznych, tzn. kolejno, czy to są obiekty, do których istnieje link (z początkiem '''Link''', a nie '''Pobierz'''), i czy on jest numerowany przez to oprogramowanie. ==== Strona zbiorcza ==== Dla stron zbiorczych liczymy zawartość strony zbiorczej {{Code|strona_zbiorcza}} {{Patrz|strona_zbiorcza}}, jeżeli owo w ogóle taka jest, czyli za pomocą funkcji: {{LinkŚródtytuł|StronaZbiorcza|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, bez parametrów, którego wnętrze jedynie się uruchamia, gdy strona jest korzystana, tzn. gdy zmienna: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} przyjmuje wartość prawdziwą. ==== Pełna nazwa książki ==== Liczymy pełną nazwę książki danego artykułu przy zmiennej: {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}}, z parametrów: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, oraz dla nazwy artykułu, którym jest ciąg znakowy pusty, wtedy to charakteryzuje stronę główną podręcznika, której pełna nazwa strony jest jednocześnie szukaną pełną nazwą książki. ==== Liczenie rozwiniętej zakodowanej zawartości danego artykułu ==== Gdy to nie jest strona '''spis''', czyli ten artykuł nie jest spisem, tzn. tam się nie mieści żaden spis, to liczymy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} i {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}: * Przy pomocy rekurencyjnej funkcji liczenia zakodowanej strony, czyli z: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}. * Przeciwnie liczmy te wartości ze zmiennych z końcówką: {{Code|_ref}} {{LinkPatrz|_ref|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}. ; Działania w przypadku braku treści strony{{dk}} * Gdy artykuł nie jest korzystany, tzn. według: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}: ** Jeśli strona nie ma zawartości, to funkcja zakańcza się z błędem {{Code|0}}, co jest powiadomieniem, że strona jest niekorzystana, i ona nie ma zawartości. * Przeciwnie, dla strony niemającej zawartości, tzn. gdy {{Code|strona_zbiorcza}} {{LinkPatrz|strona_zbiorcza}}, przyjmuje wartość prawdziwą, wtedy jest liczona zmienna: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, z kluczem {{Code|CzyStronaSubst}}, której jest przydzielana wartość {{Code|tak}}, tzn. czy to jest strona zbiorcza. ** Wtedy funkcja zwraca wartość {{Code|nil}}, co informuje, że strona jest korzystana, i nie ma jej treści. ==== Przypadek innej strony aktualnej niż bieżącej ==== Dla strony korzystanej według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, o kluczu {{Code|inna_strona_aktualna_niz_biezaca}} {{Patrz|inna_strona_aktualna_niz_biezaca}}: * Gdy mamy inną stronę aktualną niż bieżącą, tzn. dla stron zbiorczych, i stron wyświetlanych na innej stronie niż normalnie. ** Dla tej strony są liczone, dla tablicy podanej, zmienne o kluczach: {{Code|strona_ze_szablonem_strona_start}} {{LinkPatrz|strona_ze_szablonem_strona_start|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, {{Code|formatowanie}} {{LinkPatrz|formatowanie|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}} i {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, dla stron ze szablonem stronicowym: {{s|StronaStart}} lub jego kolegów, z wbudowanym spisem lub ustawianym, wtedy w zależności od ustawianych parametrów są ustawiane te parametry. ; Szablony spisów{{dk}} * Jednym ze spisów może być użyty szablon: {{s|Spis treści}} (skrót: {{s|TOCright}}) - dla wersji rozwiniętej, {{s|Spis treści zwinięty}} - zwiniętej, i inne szablony, też spisowe: {{s|TOCRamka}} i {{s|TOC limit}}, także: {{s|TOC}} i {{s|TOCRamka}}. ==== Iterowanie po stronie z {{lk|szablony stronicowe|szablonami stronicowymi}} ==== Iterujemy po całem tekście: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, według funkcji: {{LinkŚródtytuł|IterowaniePoElementachTekstu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, którego pierwszym parametrem jest ten zakodowany tekst, według bazy kodów: {{Code|{{m|Szablonowe}}}}. ==== Wystawienie do struktury tablic z danymi informacji o artykule ==== Tworzymy zmienną: {{Code|tablica_danych_nazwy_artykulu}} {{Patrz|tablica_danych_nazwy_artykulu}}, ze zmiennej: {{Code|tablica_ksiazki}} {{LinkPatrz|tablica_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, z kluczem: {{Code|lista_podstron_woluminu}} {{LinkPatrz|lista_podstron_woluminu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, i dalszym kluczem: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, i powinniliśmy otrzymać tablicę, lub piszemy tablicę pustą. Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}} - tablica informacji o artykule, tworzymy podtablicę o kluczu: {{Code|uchwyty_i_numeracje}} {{Patrz|uchwyty_i_numeracje}}, z większej tabeli: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki2}}, zdefiniowaną w głównej tablicy artykułu: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}} - tablica zmiennych artykułu. ==== Kod wikidanych rozważanego artykułu ==== Dla zmiennej: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, liczymy jej wartość o kluczu {{Code|link_wikidane}} {{Patrz|link_wikidane}}, którą jest tablica z kodem, jako jedyny numerowany parametr generowany funkcją: {{Code|{{sr|#p.KodyKlasStronyNaDanejWiki|p=Wiki}}}}, którą jest kod strony linku inteligentnego przyporządkowanej takiej nazwie strony. ==== Nazwa bazowa strony ==== Gdy dana strona jest korzystana, tzn.: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przyjmuje wartość prawdziwą, wtedy możemy policzyć element tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, o kluczu: {{Code|nazwa_bazowa_strony}} {{Patrz|nazwa_bazowa_strony}}, któremu przydzielamy policzoną nazwę ze zmiennej: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, wykorzystując do tego funkcję: {{Code|{{sr|#p["PEŁNABAZOWANAZWASTRONY"]|p=Nazwy/Tom II}}}}. ==== Skrót do: '''pozawoluminowych stron''' lub '''niekorzystanych woluminów''', utworzone w celu łatwiejszego odwołania się do innych stron, czy artykułów książek ==== * Zmienna: {{Code|prefiks_numeru_woluminowego_strony}} {{Patrz|prefiks_numeru_woluminowego_strony}}, to jest zmienna skrótów, policzona dla niebieżącej strony dla: '''pozawoluminowych stron''' {{LinkPatrz|pozawoluminowych stron}}, lub '''niekorzystanych woluminów''' {{LinkPatrz|niekorzystanych woluminów}}. Gdy artykuł jest niekorzystany, tzn. zmienna: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przybiera wartość fałszywą, wtedy dla: ; Gdy nie stworzono jeszcze prefiksu w zmiennej{{dk}} {{nobold|{{Code|prefiks_numeru_woluminowego_strony}} {{LinkPatrz|prefiks_numeru_woluminowego_strony}}}}, która jest kluczem dla tabeli{{dk}} {{nobold|{{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}}}{{dk}} Ale przedtem, gdy: {{Code|pozawoluminowe_strony}} {{LinkPatrz|pozawoluminowe_strony}}, jest niepoliczone, dla tej pierwszej pozycji listy, a dla drugiej już nie. * '''pozawoluminowych stron''' {{Patrz|pozawoluminowych stron}} (innej strony niż bieżąca - dla przestrzeni nieksiążkowych), określonych przez zmienną: {{Code|pozawoluminowe_strony}} {{Patrz|pozawoluminowe_strony}} - która wcześniej była policzona, z bazowej nazwy strony według: {{Code|nazwa_bazowa_strony}} {{LinkPatrz|nazwa_bazowa_strony}}, i zmiennej: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, wykorzystując do tego funkcję: {{Code|{{sr|#p["SkrótDoNumeruOdnośnika"]|p=StronicowyParser/Pomocne}}}}, liczymy pewien skrót, który umieszczamy w: ** zmiennej: {{Code|prefiks_numeru_woluminowego_strony}} {{LinkPatrz|prefiks_numeru_woluminowego_strony}}, przydzielając mu wartość w postaci tablicy: <syntaxhighlight lang="lua"> tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony={zrostek,pozawoluminowe_strony,czy_artykul_korzystany,}; </syntaxhighlight> * '''niekorzystanych woluminów''' {{Patrz|niekorzystanych woluminów}} (innej książki - woluminu, niż bieżąca - dla przestrzeni książkowych), określonych przez zaprzeczenie zmiennej: {{Code|korzystany_wolumin}} {{Patrz|korzystany_wolumin}} - która wcześniej była policzona, wtedy z nazwy: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, liczymy, korzystając z funkcji: {{Code|{{sr|#p["SkrótDoNumeruOdnośnikaDołączonejKsiążki"]|p=StronicowyParser/Pomocne}}}}, pewien skrót, którego wsadzamy do: ** zmiennej: {{Code|prefiks_numeru_woluminowego_strony}} {{LinkPatrz|prefiks_numeru_woluminowego_strony}}, przydzielając mu wartość w postaci tablicy: <syntaxhighlight lang="lua"> tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony={zrostek,not korzystany_wolumin,czy_artykul_korzystany,}; </syntaxhighlight> ==== Rozważania nad adresem artykułu bieżącego, czy nie ==== Gdy strona jest równa bieżącej według zmiennej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, wtedy wartość zmiennej: {{Code|strona}} {{LinkPatrz|strona|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, jest o wartości pustej, przeciwnie przyjmuje wartość: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}. ==== Szablony tekstu ==== Dla artykułu korzystanego, według: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, uruchamiamy dwie tutaj funkcje, tzn.: * Pierwsza: {{Code|{{sr|#p.UstawPobierzKorzystanie|p=StronicowyParser/SzablonyTekstu}}}}, aktualizująca zmienne, nie informacje, zbierania artykułów w zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. * Druga: {{Code|{{sr|#p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu|p=StronicowyParser/SzablonyTekstu}}}}, aktualizujące tablice zbierania danych informacji o stronie dotyczące szablonów tekstu: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}, nie w zmiennej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, tylko w: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a także modyfikujące tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, w której zbieramy wiadomości o stronie. ==== Zbieranie informacji o nagłówkach dodatnich o zaznaczonych do takiej analizy ==== * Dla zmiennej dla strony korzystanej według: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, która w tym przypadku przyjmuje wartość prawdziwą, gdy chcemy liczyć jej spis, to musi być ustawiona zmienna z: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o kluczu: {{Code|analiza_spis_tresci_korzystane}} {{LinkPatrz|analiza_spis_tresci_korzystane|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, przyjmującej ten parametr wartość prawdziwą. * A dla niekorzystanej dla klucza z: {{Code|analiza_spis_tresci_doloczone}} {{LinkPatrz|analiza_spis_tresci_doloczone|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, wtedy przygotuwujemy tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, do dalszej analizy, funkcją: {{Code|{{sr|#p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania|p=Szablonowe}}}}, by potem stworzyć tablicę spisu {{Code|toc}} {{Patrz|toc}}, zwracaną przez naszą opisywaną funkcję, i inne parametry ze strony, przy pomocy funkcji: {{Code|{{sr|#p.SpisRzeczyWedlePodanegoTekstu|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}. ===== Ustawianie wygenerowanego spisu treści analizowanego artykułu ===== Zmienna tablicowa: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, a w niej podtablica o kluczu: {{Code|TOC}} {{Patrz|TOC}}, jest określana wartością tablicy: {{Code|toc}} {{LinkPatrz|toc}}, która została wygenerowana z funkcji generującą spis danego rozważanego artykułu. ==== Sprawdzanie spisu rozważanego artykułu ==== Funkcja przy pomocy parametrów liczy, czy podana strona jest stroną zbiorczą, według funkcji: {{LinkŚródtytuł|StronaSubstFunkcja|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, uruchamiana z pewnymi parametrami. ==== Niedokończone zbierania elementów spisowych o danej stronie niekorzystanej, gdy wcześniej było to niemożliwe ==== Zmienna: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, powinna przyjmować wartość fałszywą, przy innej wartości nie wchodzimy w ten krok instrukcji warunkowej. * A funkcja: {{Code|SpisToc}} {{Patrz|SpisToc}}, powinna zwwrócić zawsze funkcję, którą nazwiemy: {{Code|czy_spis_function}} {{Patrz|czy_spis_function}}, to jej wywołanie raz jest prawdziwe, raz nilowe. Prawdziwe, gdy w tym wywołaniu funkcji głównej dla danego niekorzystanego artykułu udało się zebrać spis, a jeśli nie, to jej wynik jest fałszywy. * Wtedy przy fałszywości tego wyniku ustawiane jest w tablicy o kluczu: {{Code|TOCSPIS_FUNCTION}} {{LinkPatrz|TOCSPIS_FUNCTION|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, dla: {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, jej wartość, która jest równa: {{Code|czy_spis_function}} {{LinkPatrz|czy_spis_function}}. ** {{Code|czy_spis_function}} {{LinkPatrz|czy_spis_function}} - to jest funkcja, która jest zwrócona przez inną o nazwie: {{Code|SpisToc}} {{LinkPatrz|SpisToc}}. ==== Zbieranie danych w bieżącym artykule dotyczących nazwy przestrzeni nazw, nazw przestrzeni książki, nazwy książki i nazwy artykułu ==== Dla strony korzystanej: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, wtedy ta zmienna przyjmuje wartość {{Code|true}}, dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, wtedy jej podzmienne o kluczach: * {{Code|link_wikidane}} {{LinkPatrz|link_wikidane}}, jaka jest tablica z kodem linku inteligentnego dla bieżacej strony jako pierwszy element, * {{Code|tablica_aktualnego_artykulu}} {{Patrz|tablica_aktualnego_artykulu}}, którą jest tablica dla aktualnego artykułu, * {{Code|tablica_aktualnej_przestrzeni_nazw}} {{Patrz|tablica_aktualnej_przestrzeni_nazw}}, którą jest tablica dla aktualnej przestrzeni nazw, * {{Code|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, którą jest tablica dla aktualnej przestrzeni nazw, * {{Code|tablica_aktualnej_ksiazki}} {{Patrz|tablica_aktualnej_ksiazki}}, którą jest tablica dla aktualnej książki. Te tablice, jako dalsze podtablice, dokowane są w głównej tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, o kluczu: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}. * One zbierają informacje o książkach (artykułach) w zależności od kluczy, jakie one przyjmują nazwy. ==== Dane zebrane o szablonach tekstu - zbieranie informacji ==== Dla artykułów niekorzystanych, czyli wtedy wartość: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, przyjmuje wartość fałszywą, wtedy zmienną: * {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}}, tworzymy w niej podtablicę o kluczu: {{Code|dane_zebrane_ze_stron}} {{LinkPatrz|dane_zebrane_ze_stron|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, wtedy dajemy jej wartość: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. * Dalej dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, tworzona jest podtablica pusta, jeśli nie istnieje, o kluczu: {{Code|dane_zebrane_ze_stron_lista}} {{Patrz|dane_zebrane_ze_stron_lista}}, która zbiera wszystkie elementy z analizowanych artykułów, tzn.: ** {{Code|tablica_danych_nazwy_artykulu}} {{LinkPatrz|tablica_danych_nazwy_artykulu}} - dane dotyczace danego artykułu. Te stworzone tutaj zmienne kasujemy dla: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, prawdziwego. * Też dodatkowo usuwamy zmienną: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, w tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}. Te usuwania dokonujemy przy pomocy wartości {{Code|nil}}, która ma takie właściwości. * Też kasujemy w tej zmiennej podtablicę: {{Code|TOCSPIS_FUNCTION}} {{LinkPatrz|TOCSPIS_FUNCTION|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}. ==== Zwracane wartości i ich opis ==== Ostatecznie funkcja zwraca po przeanalizowaniu wszystkiego, po zakończeniu zbierania wszystkich danych o danej stronie, według: <syntaxhighlight lang="lua"> return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true; </syntaxhighlight> Parametry zwracane: {{OpisParametrów | 1 = {{Code|self.tabela_listy_danych_analizy_ksiazki}} | _1 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/ZbieranieDanychStron/Moduł główny/Część I}}, | 2 = {{Code|tablica_zmiennych}} | _2 = Jak w: {{LinkPatrz|tablica_zmiennych|StronicowyParser/ZbieranieDanychStron/Potrzebne/Tom I}}, | 3 = {{Code|true}} | _3 = Wartość zwracana, gdy strona jest analizowana i przeanalizowana pierwszy raz. }} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> nmwg7ucrbglzba1efjt4tjth0j530ov Szablon:OpisParametrów 10 64146 558142 557701 2026-10-01T07:44:49Z Persino 2851 558142 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów {{{klasa|}}}" {{#if:{{{styl|}}}|style="{{{styl|}}}"}}<!-- |+ <div class="OpisParametrów-tytuł">Parametry szablonu lub ramki, bądź funkcji bibliotecznej.</div>--> |- !{{!}} Lp. ! {{#if:{{{klasa parametru|}}}|class="{{{klasa parametru}}}"}} {{#if:{{{styl parametru|}}}|style="{{{styl parametru}}}"}} {{!}} Parametr ! {{#if:{{{klasa opisu|}}}|class="{{{klasa opisu}}}"}} {{#if:{{{styl opisu|}}}|style="{{{styl opisu}}}"}} {{!}} Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=| {{!}}- <!-- -->{{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{(((}}komórka{{((}}_{{))}}{{!}}{{)))}}{{!}}<!-- -->class{{=}}"OpisParametrów-{{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}nagłówek{{!}}komórka{{))}} {{(((}}klasa wiersza{{((}}_{{))}}{{!}}{{)))}}"{{!}}<!-- -->{{((}}#if:{{(((}}klasa wiersza{{((}}_{{))}}{{!}}{{)))}}{{!}}class{{=}}"{{(((}}klasa wiersza{{((}}_{{))}}{{)))}}"{{))}}<!-- -->{{))}} <!-- -->{{((}}#if:{{(((}}styl wiersza{{((}}_{{))}}{{!}}{{)))}}{{!}}style{{=}}"{{(((}}styl wiersza{{((}}_{{))}}{{)))}}"{{))}} {{!}}{{!}} <div>{{((}}_{{))}}</div> {{((}}#if:{{(((}}komórka{{((}}_{{))}}{{!}}{{)))}}{{!}}{{((}}!{{))}}{{!}}!{{))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{(((}}komórka{{((}}_{{))}}{{!}}{{)))}}{{!}}colspan{{=}}"2"{{))}} <!-- --> {{((}}#if:{{(((}}styl parametru{{((}}_{{))}}{{!}}{{)))}}{{!}}style{{=}}"{{(((}}styl parametru{{((}}_{{))}}{{)))}}"{{))}} <!-- --> {{((}}#if:{{(((}}klasa parametru{{((}}_{{))}}{{!}}{{)))}}{{!}}class{{=}}"{{(((}}klasa parametru{{((}}_{{))}}{{)))}}"{{))}} <!-- -->{{!}}<div> {{(((}}{{((}}_{{))}}{{)))}}</div> {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{(((}}komórka{{((}}_{{))}}{{!}}{{)))}}{{!}}{{!}}<!-- -->{{((}}!{{))}} <!-- --> {{((}}#if:{{(((}}styl wartości{{((}}_{{))}}{{!}}{{)))}}{{!}}style{{=}}"{{(((}}styl wartości{{((}}_{{))}}{{)))}}"{{))}} <!-- --> {{((}}#if:{{(((}}klasa wartości{{((}}_{{))}}{{!}}{{)))}}{{!}}class{{=}}"{{(((}}klasa wartości{{((}}_{{))}}{{)))}}"{{))}} <!-- --> {{((}}!{{))}} <div> {{(((}}_{{((}}_{{))}}{{)))}}</div><!-- -->{{))}}<!-- -->}} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{!}}klasa{{=}}{{!}}styl{{=}}{{!}}klasa parametru{{=}}{{!}}styl parametru{{=}}{{!}}klasa opisu{{=}}{{!}}styl opisu{{=}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}styl parametru{{((}}_{{))}}{{=}}{{!}}klasa parametru{{((}}_{{))}}{{=}}{{!}}styl wartości{{((}}_{{))}}{{=}}{{!}}klasa wartości{{((}}_{{))}}{{=}}{{!}}styl wiersza{{((}}_{{))}}{{=}}{{!}}klasa wiersza{{((}}_{{))}}{{=}}{{!}}nagłówek{{((}}_{{))}}{{=}}txt?;_{{((}}_{{))}};komórka{{((}}_{{))}}{{!}}komórka{{((}}_{{))}}{{=}}txt?;_{{((}}_{{))}};nagłówek{{((}}_{{))}}{{!}}_{{((}}_{{))}}{{=}}txt?!;nagłówek{{((}}_{{))}};komórka{{((}}_{{))}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 79qgcjgtnfout0vbee88ngqwyk8kbhy Szablon:PrzypisStrona 10 64317 558116 556548 2026-09-30T17:01:21Z Persino 2851 558116 wikitext text/x-wiki <includeonly><!-- -->{{#invoke:Ramka|Szablon<!-- -->| Nazwa = Cytuj | Funkcja = custom2 | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} | zmienna sprawdzania parametrów = adres=uri!;;adres=uri!;;1=txt!;podstrona;;podstrona=txt!;1;;2=txt!;nazwa;;nazwa=txt!;2;;serwis=uri;;tryb=txt | bez argumentów szablonu=url;tytuł;praca;Funkcja | zmienna z parametrami rodzica=tak | zmienna z argumentami ramki= }}</includeonly><noinclude>{{Dokumentacja}}</noinclude> o2bgut9ngkyzmagh3ern1xkwhzsylmu 558119 558116 2026-09-30T17:13:34Z Persino 2851 558119 wikitext text/x-wiki <includeonly><!-- -->{{#invoke:Ramka|Szablon<!-- -->| Nazwa = Cytuj | Funkcja = custom2 | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} | zmienna sprawdzania parametrów = adres=uri!;;adres=uri!;;1=txt!;podstrona;;podstrona=txt!;1;;2=txt!;nazwa;;nazwa=txt!;2;;serwis=uri;;tryb=txt | bez argumentów szablonu = url;tytuł;praca;Funkcja | zmienna z parametrami rodzica = tak | zmienna z argumentami ramki = }}</includeonly><noinclude>{{Dokumentacja}}</noinclude> in7j1b357j42i39tf8imbs9ut6oyf8l Moduł:StronicowyParser/ZbieranieDanychStron/Potrzebne 828 64332 558155 557803 2026-10-01T08:45:30Z Persino 2851 558155 Scribunto text/plain local p={}; function p.UstawUchwytyWeTablicyBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod) if(lista_dwuelementowa)then local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; if(not tab_obiekt)then tabela_elementow_strony_kodow[nazwa_obiektu]={}; tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; end; local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; if(not uchwyty_bez_numeracji)then tab_obiekt.uchwyty_bez_numeracji={}; uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; end; uchwyty_bez_numeracji[kod]=lista_dwuelementowa; end; end; function p.WydobywanieUchwytuZeTablicyBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod) local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; if(not tab_obiekt)then return nil;end; local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; if(uchwyty_bez_numeracji)then return uchwyty_bez_numeracji[kod]; end; end; function p.RozpatrywanieElementuUchwytuNumeracji(self,uchwyt_obiektu,tab_numer,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); uchwyt_obiektu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(uchwyt_obiektu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or uchwyt_obiektu; local html_modul=require("Module:Html"); uchwyt_obiektu=html_modul.DecodeHtml(uchwyt_obiektu,true); if(uchwyt_obiektu~="")then KtorySzablonMaZwracacKategorie(uchwyt_obiektu); local lista_dwuelementowa={}; lista_dwuelementowa[1]=uchwyt_obiektu; local parametry_modul=require("Module:Parametry"); if((not tablica_zmiennych.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu); end; tablica_zmiennych.sprawdzenie_dokonane_obiektu=true; end; if(tab_numer)then tab_numer[nazwa_obiektu]=tab_numer[nazwa_obiektu]+1; local numer=tab_numer[nazwa_obiektu]; table.insert(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],numer,lista_dwuelementowa); else table.insert(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; return lista_dwuelementowa; end; end; function p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji,tab_numer,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[numer_numeracji]; if(uchwyt_obiektu)then local lista_dwuelementowa=p.RozpatrywanieElementuUchwytuNumeracji(self,uchwyt_obiektu,tab_numer,tablica_zmiennych, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return lista_dwuelementowa; end; end; function p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki))then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni_wszystkiego=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron; if(tablica_przestrzeni_wszystkiego)then local tabela_przestrzeni_ksiazek=tablica_przestrzeni_wszystkiego[nazwa_przestrzeni]; if(tabela_przestrzeni_ksiazek)then local tabela_ksiazek=tabela_przestrzeni_ksiazek[nazwa_przestrzeni_ksiazki] if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then --czy_lista_niepusta=true; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); for _,tab_value in ipairs(tab_ksiazki.spis)do if(tab_value[2])then for _,artykul_w_bazie_element in ipairs(tab_value[2])do local artykul_w_bazie=artykul_w_bazie_element[1]; local czy_table=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie); artykul_w_bazie=czy_table and artykul_w_bazie[1] or artykul_w_bazie; local artykul_bez_naglowka_w_bazie=stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul_w_bazie); if(artykul_bez_naglowka_w_bazie==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu~=nazwa_przestrzeni_ksiazki) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu~=nazwa_ksiazki) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu~=nazwa_artykulu))then if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki, nazwa_ksiazki)))then stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"brak spisów treści do dołączonych stron",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak spisu treści do korzystanych stron"))then if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak spisu treści do korzystanych stron"); end; end; end; end; end; function p.PusteParametryReferencji(self, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and (nazwa_ksiazki=="") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and (nazwa_artykulu=="") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and (uchwyt_obiektu=="") or nil; ---- local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); ---- if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,1))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,1); end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,2))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,2); end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,3))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,3); end; end; end; function p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,bezuchwytowe) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[bezuchwytowe and 1 or 2]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[bezuchwytowe and 2 or 3]; local parametry_modul=require("Module:Parametry"); local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",}; end; local nazwa_ksiazki;local nazwa_przestrzeni_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul.DecodeHtml(pelna_nazwa_ksiazki,true); local techniczne_modul=require("Module:Techniczne"); pelna_nazwa_ksiazki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=pelna_nazwa_ksiazki,[2]=nazwa_modulu_aktualna_czy_biezaca,}; ---- local tabela_nazw={}; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and (nazwy_modul["SUBNAZWAKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw)) or (nazwy_modul["NAZWAKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw))); --pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); end; return nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu; end; function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy) local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu; if(not czy_inna_wartosc_tekst)then nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true); else nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=tab_nazwy[1],tab_nazwy[2],tab_nazwy[3],tab_nazwy[4]; end; --local ksiazkowe_modul=require("Module:Książkowe"); --pelna_nazwa_ksiazki=pelna_nazwa_ksiazki or ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](); --nazwa_artykulu=nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"](); if((nazwa_przestrzeni)or(nazwa_przestrzeni_ksiazki)or(nazwa_ksiazki)or(nazwa_artykulu))then local tabela_nazw={}; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw); local nazwa_przestrzeni_ksiazki=nazwa_przestrzeni_ksiazki or ksiazkowe_modul["NazwaPrzestrzeniKsiążki"](nil,tabela_nazw); local nazwa_ksiazki=nazwa_ksiazki or ksiazkowe_modul["NazwaTytułuKsiążki"](nil,tabela_nazw); local nazwa_artykulu=nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"](nil,tabela_nazw); if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end; local stronicowyparser_zbieraniedanychstron_modul=require("Module:StronicowyParser/ZbieranieDanychStron"); local tabela_listy_danych_analizy_ksiazki=stronicowyparser_zbieraniedanychstron_modul.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false); end; end; function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie) local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not nazwa_przestrzeni)and(not nazwa_jednostki))then return;end; local parametry_modul=require("Module:Parametry"); if((nazwa_jednostki) and (nazwa_jednostki==""))then return;end; local szablonowe_modul=require("Module:Szablonowe"); if((nazwa_jednostki and mw.ustring.match(nazwa_jednostki,szablonowe_modul.NormaWzoruKodowaniaTekstu())) or (nazwa_przestrzeni and mw.ustring.match(nazwa_przestrzeni,szablonowe_modul.NormaWzoruKodowaniaTekstu())) )then return;end; local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe"); local html_modul=require("Module:Html"); if(nazwa_jednostki)then nazwa_jednostki=html_modul.DecodeHtml(nazwa_jednostki,true); end; local tabela_nazw_art={}; local nazwa_jednostki=(nazwa_jednostki and mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1") or nil ) or ksiazkowe_modul["NazwaArtykułu"](nil,tabela_nazw_art); if(nazwa_przestrzeni)then nazwa_przestrzeni=html_modul.DecodeHtml(nazwa_przestrzeni,true); end; local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw_art); local strona=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local techniczne_modul=require("Module:Techniczne"); strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=self.nazwa_modulu_biezaca,}; --strona=ksiazkowe_modul["PEŁNANAZWASTRONY"](strona); local tabela_nazw={}; local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); local nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); local nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and (nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw)) or (nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw))); local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw); if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end; local stronicowyparser_zbieraniedanychstron_modul=require("Module:StronicowyParser/ZbieranieDanychStron"); local tabela_listy_danych_analizy_ksiazki=stronicowyparser_zbieraniedanychstron_modul.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,nil,czy_szablon_pudelkowy_strony_zbiorczej); end; function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); local nazwy_modul=require("Module:Nazwy"); local czy_inna_wartosc_tekst=true; if((nazwa_artykulu)and(nazwa_ksiazki))then --local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwy_modul["NazwaModułu"]("",nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); elseif((nazwa_artykulu)and(not nazwa_ksiazki))then local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ksiazkowe_modul["NazwaPrzestrzeni"](); local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or (ksiazkowe_modul["NazwaKsiążki"]()..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "")); ---- tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwa_jednostki; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); elseif((not nazwa_artykulu)and(nazwa_ksiazki))then local ksiazkowe_modul=require("Module:Książkowe"); local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ksiazkowe_modul["NazwaPrzestrzeni"](); local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ksiazkowe_modul["NazwaKsiążki"](); ---- tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwa_jednostki; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); else p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); end; end; function p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,__FUNKCJA_SPRAWDZANIE) local pudelko_modul=require("Module:Pudełko"); if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_przestrzeni)))or(nazwa_przestrzeni==""))) and((nazwa_przestrzeni_ksiazki)and(((nazwa_przestrzeni_ksiazki~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_przestrzeni_ksiazki)))or(nazwa_przestrzeni_ksiazki==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_ksiazki))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_artykulu)))or(nazwa_artykulu==""))) )then if(__FUNKCJA_SPRAWDZANIE)then __FUNKCJA_SPRAWDZANIE(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); end; else local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu))then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron"); end; else if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nieprawidłowe nazwy stron dołączanych do stron"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy stron dołączanych do stron"); end; end; end; end; function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz) local linkobiekttab=tablica_zmiennych.linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tablica_zmiennych.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu; local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki)))then p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; tablica_zmiennych.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); if(czy_pobierz)then if(not tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane)then tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane={}; end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); end; end; function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz) p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,function() local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tablica_zmiennych2={}; tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2={} local stronicowyparser_zbieraniedanychstron_modul=require("Module:StronicowyParser/ZbieranieDanychStron") local tabela_listy_danych_analizy_ksiazki0,tablica_zmiennych2,czy_inna=stronicowyparser_zbieraniedanychstron_modul.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,tablica_zmiennych2); if(tabela_listy_danych_analizy_ksiazki0)then if((not czy_inna)or(not tablica_zmiennych2))then return;end; local stronicowyparser_szablony_tekstu_modul=require("Module:StronicowyParser/SzablonyTekstu"); local JuzPoliczone=function() if(czy_pobierz)then stronicowyparser_szablony_tekstu_modul.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,false); end; if(not tablica_zmiennych2.dane_juz_policzone)then tablica_zmiennych2.dane_juz_policzone={};end; local tab_nazwa_obiektu=tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu]; if(not tab_nazwa_obiektu)then tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu]={}; tab_nazwa_obiektu=tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu]; end; local tab_uchwyt=tab_nazwa_obiektu[uchwyt_obiektu]; if(tab_uchwyt)then return true; end; tab_nazwa_obiektu[uchwyt_obiektu]=true; return false; end; if(not parametry_modul.CzyTak(tabela_listy_danych_analizy_ksiazki0))then local czy_policzone=JuzPoliczone(); if(czy_policzone)then return; end; else JuzPoliczone(); end; stronicowyparser_szablony_tekstu_modul.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2); p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local CzyLink=czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2.CzyLink; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in ipairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",(CzyLink and "Link" or "Pobierz")..nazwa_obiektu))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",(CzyLink and "Link" or "Pobierz")..nazwa_obiektu); end; p.PusteParametryReferencji(self,nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare, uchwyt_obiektu, nazwa_obiektu); end; else local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"); end; end; else p.PusteParametryReferencji(self,nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare, uchwyt_obiektu, nazwa_obiektu); end; end); end; function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz) local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(uchwyt_obiektu))then local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); uchwyt_obiektu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(uchwyt_obiektu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or uchwyt_obiektu; local html_modul=require("Module:Html"); uchwyt_obiektu=html_modul.DecodeHtml(uchwyt_obiektu,true); end; ---- local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); ---- local UstalanieNazwStronyArtykularnegoWoluminu=function(czy_tak) nazwa_przestrzeni=(czy_tak and nazwa_przestrzeni or nil) or self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=(czy_tak and nazwa_przestrzeni_ksiazki or nil) or self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=(czy_tak and nazwa_ksiazki or nil) or self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; nazwa_artykulu=nazwa_artykulu or self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu; end; local nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare=nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu; local function ZbieranieDanychPrzezGeneralneLinkowanie() if(parametry_modul.CzyTak(uchwyt_obiektu))then nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then UstalanieNazwStronyArtykularnegoWoluminu(false); elseif(nazwa_ksiazki=="")then p.PusteParametryReferencji(self,nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p.PusteParametryReferencji(self,nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare, uchwyt_obiektu, nazwa_obiektu); return; else UstalanieNazwStronyArtykularnegoWoluminu(false); end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni) or(nazwa_przestrzeni_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu) or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu) or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu))then p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz); else p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz); p.PusteParametryReferencji(self,nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare, uchwyt_obiektu, nazwa_obiektu); end; else UstalanieNazwStronyArtykularnegoWoluminu(true); p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz) p.PusteParametryReferencji(self,nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare, uchwyt_obiektu, nazwa_obiektu); end; else UstalanieNazwStronyArtykularnegoWoluminu(true); if((uchwyt_obiektu)and(uchwyt_obiektu==""))then p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,nil); p.PusteParametryReferencji(self,nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare, uchwyt_obiektu, nazwa_obiektu); elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu))then p.PusteParametryReferencji(self,nazwa_przestrzeni_stare,nazwa_przestrzeni_ksiazki_stare,nazwa_ksiazki_stare,nazwa_artykulu_stare, uchwyt_obiektu, nazwa_obiektu); stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu); end; end; end; ZbieranieDanychPrzezGeneralneLinkowanie(); KtorySzablonMaZwracacKategorie(uchwyt_obiektu); end; return p; 24vow6f9qb8vsw4xpwf8a6xl5k20b5c Kategoria:Szablony wykorzystujące moduły Lua/Przykłady, w modułach Lua w Scribunto, przygotowane specjalnie dla dokumentacji funkcji bibliotecznych 14 64397 558085 558079 2026-09-30T12:12:51Z Persino 2851 558085 wikitext text/x-wiki {{Kategoria|Szablony wykorzystujące moduły Lua/Przykłady, w modułach Lua w Scribunto, przygotowane specjalnie dla dokumentacji funkcji Wikibooks}} fjldwa0cw2tf2p4maca43f8rs17atyy Kategoria:Szablony wykorzystujące moduły Lua/Przykłady, w modułach Lua w Scribunto, przygotowane specjalnie dla dokumentacji funkcji ramek 14 64399 558083 2026-09-30T12:10:08Z Persino 2851 Utworzono nową stronę „{{Kategoria|Szablony wykorzystujące moduły Lua}}” 558083 wikitext text/x-wiki {{Kategoria|Szablony wykorzystujące moduły Lua}} 5e53iqedpjvmozy3qdb8mna52k01sm8 558086 558083 2026-09-30T12:13:16Z Persino 2851 558086 wikitext text/x-wiki {{Kategoria|Szablony wykorzystujące moduły Lua/Przykłady, w modułach Lua w Scribunto, przygotowane specjalnie dla dokumentacji funkcji Wikibooks}} fjldwa0cw2tf2p4maca43f8rs17atyy Kategoria:Szablony wykorzystujące moduły Lua/Przykłady, w modułach Lua w Scribunto, przygotowane specjalnie dla dokumentacji funkcji Wikibooks 14 64400 558084 2026-09-30T12:11:54Z Persino 2851 Utworzono nową stronę „{{Kategoria|Szablony wykorzystujące moduły Lua}}” 558084 wikitext text/x-wiki {{Kategoria|Szablony wykorzystujące moduły Lua}} 5e53iqedpjvmozy3qdb8mna52k01sm8 Moduł:Wikibooks/Przykład/Szeregi/SzeregiOmijanieFunkcyjne/Kod 1 828 64401 558166 2026-10-01T09:55:31Z Persino 2851 Utworzono nową stronę „require("strict"); local p={}; p["Przykład"]=function(frame) local szeregi_modul=require("Module:Szeregi"); local tekst="Oto jest tekst wywołania: \"&#35;\""; -- Elementem omijanym jest "&#35;"; local tekst2=szeregi_modul.SzeregiOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end, function(kod) -- Operacje robione na przechwytywanym ciągu, tzn. z dodawaniem prefiksu początkowego i końcowego; return "&"..ko…” 558166 Scribunto text/plain require("strict"); local p={}; p["Przykład"]=function(frame) local szeregi_modul=require("Module:Szeregi"); local tekst="Oto jest tekst wywołania: \"&#35;\""; -- Elementem omijanym jest "&#35;"; local tekst2=szeregi_modul.SzeregiOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end, function(kod) -- Operacje robione na przechwytywanym ciągu, tzn. z dodawaniem prefiksu początkowego i końcowego; return "&"..kod..";"; end); local zrodlolua_modul=require("Module:ŹródłoLua"); local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{ {"tekst",tekst,}, {"tekst2",tekst2,}, }); return wikikod; end; return p; 2j8o8b27sgfd46tbz0cw2fz75gc0rxz 558168 558166 2026-10-01T09:58:02Z Persino 2851 Persino przeniósł(-osła) stronę [[Moduł:Wikibooks/Przykład/Szeregi/SzeregiOmijanieFunkcyjneSzeregiOmijanieFunkcyjne/Kod 1]] do [[Moduł:Wikibooks/Przykład/Szeregi/SzeregiOmijanieFunkcyjne/Kod 1]], bez pozostawienia przekierowania pod starym tytułem 558166 Scribunto text/plain require("strict"); local p={}; p["Przykład"]=function(frame) local szeregi_modul=require("Module:Szeregi"); local tekst="Oto jest tekst wywołania: \"&#35;\""; -- Elementem omijanym jest "&#35;"; local tekst2=szeregi_modul.SzeregiOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end, function(kod) -- Operacje robione na przechwytywanym ciągu, tzn. z dodawaniem prefiksu początkowego i końcowego; return "&"..kod..";"; end); local zrodlolua_modul=require("Module:ŹródłoLua"); local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{ {"tekst",tekst,}, {"tekst2",tekst2,}, }); return wikikod; end; return p; 2j8o8b27sgfd46tbz0cw2fz75gc0rxz 558170 558168 2026-10-01T09:58:04Z Persino 2851 Persino przeniósł(-osła) stronę [[Moduł:Wikibooks/Przykład/Szeregi/SzeregiOmijanieFunkcyjneSzeregiOmijanieFunkcyjne/Kod 1]] do [[Moduł:Wikibooks/Przykład/Szeregi/SzeregiOmijanieFunkcyjne/Kod 1]], bez pozostawienia przekierowania pod starym tytułem 558166 Scribunto text/plain require("strict"); local p={}; p["Przykład"]=function(frame) local szeregi_modul=require("Module:Szeregi"); local tekst="Oto jest tekst wywołania: \"&#35;\""; -- Elementem omijanym jest "&#35;"; local tekst2=szeregi_modul.SzeregiOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end, function(kod) -- Operacje robione na przechwytywanym ciągu, tzn. z dodawaniem prefiksu początkowego i końcowego; return "&"..kod..";"; end); local zrodlolua_modul=require("Module:ŹródłoLua"); local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{ {"tekst",tekst,}, {"tekst2",tekst2,}, }); return wikikod; end; return p; 2j8o8b27sgfd46tbz0cw2fz75gc0rxz 558172 558170 2026-10-01T09:58:06Z Persino 2851 Persino przeniósł(-osła) stronę [[Moduł:Wikibooks/Przykład/Szeregi/SzeregiOmijanieFunkcyjneSzeregiOmijanieFunkcyjne/Kod 1]] do [[Moduł:Wikibooks/Przykład/Szeregi/SzeregiOmijanieFunkcyjne/Kod 1]], bez pozostawienia przekierowania pod starym tytułem 558166 Scribunto text/plain require("strict"); local p={}; p["Przykład"]=function(frame) local szeregi_modul=require("Module:Szeregi"); local tekst="Oto jest tekst wywołania: \"&#35;\""; -- Elementem omijanym jest "&#35;"; local tekst2=szeregi_modul.SzeregiOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end, function(kod) -- Operacje robione na przechwytywanym ciągu, tzn. z dodawaniem prefiksu początkowego i końcowego; return "&"..kod..";"; end); local zrodlolua_modul=require("Module:ŹródłoLua"); local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{ {"tekst",tekst,}, {"tekst2",tekst2,}, }); return wikikod; end; return p; 2j8o8b27sgfd46tbz0cw2fz75gc0rxz Moduł:Wikibooks/Przykład/Szeregi/SzeregiOmijanieFunkcyjne/Kod 1/opis 828 64402 558167 2026-10-01T09:56:55Z Persino 2851 Utworzono nową stronę „{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=|klucz4=}}” 558167 wikitext text/x-wiki {{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=|klucz4=}} r4nzmqhbz8e26m1g27v4b4tbx39k7cv 558169 558167 2026-10-01T09:58:02Z Persino 2851 Persino przeniósł(-osła) stronę [[Moduł:Wikibooks/Przykład/Szeregi/SzeregiOmijanieFunkcyjneSzeregiOmijanieFunkcyjne/Kod 1/opis]] do [[Moduł:Wikibooks/Przykład/Szeregi/SzeregiOmijanieFunkcyjne/Kod 1/opis]], bez pozostawienia przekierowania pod starym tytułem 558167 wikitext text/x-wiki {{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=|klucz4=}} r4nzmqhbz8e26m1g27v4b4tbx39k7cv 558171 558169 2026-10-01T09:58:05Z Persino 2851 Persino przeniósł(-osła) stronę [[Moduł:Wikibooks/Przykład/Szeregi/SzeregiOmijanieFunkcyjneSzeregiOmijanieFunkcyjne/Kod 1/opis]] do [[Moduł:Wikibooks/Przykład/Szeregi/SzeregiOmijanieFunkcyjne/Kod 1/opis]], bez pozostawienia przekierowania pod starym tytułem 558167 wikitext text/x-wiki {{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=|klucz4=}} r4nzmqhbz8e26m1g27v4b4tbx39k7cv 558173 558171 2026-10-01T09:58:06Z Persino 2851 Persino przeniósł(-osła) stronę [[Moduł:Wikibooks/Przykład/Szeregi/SzeregiOmijanieFunkcyjneSzeregiOmijanieFunkcyjne/Kod 1/opis]] do [[Moduł:Wikibooks/Przykład/Szeregi/SzeregiOmijanieFunkcyjne/Kod 1/opis]], bez pozostawienia przekierowania pod starym tytułem 558167 wikitext text/x-wiki {{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=|klucz4=}} r4nzmqhbz8e26m1g27v4b4tbx39k7cv Kategoria:Szablony, moduły Lua w Scribunto, z opisami, przykładów stron projektu/Szeregi 14 64404 558175 2026-10-01T10:06:38Z Persino 2851 Utworzono nową stronę „{{Kategoria|Szablony, moduły Lua w Scribunto, z opisami, przykładów stron projektu}}” 558175 wikitext text/x-wiki {{Kategoria|Szablony, moduły Lua w Scribunto, z opisami, przykładów stron projektu}} b6lz6rtgdy8574elh6cxs9mf0u1nnnm Kategoria:Szablony, moduły Lua w Scribunto, bez opisów, przykładów stron projektu/Szeregi 14 64405 558176 2026-10-01T10:07:38Z Persino 2851 Utworzono nową stronę „{{Kategoria|Szablony, moduły Lua w Scribunto, bez opisów, przykładów stron projektu}}” 558176 wikitext text/x-wiki {{Kategoria|Szablony, moduły Lua w Scribunto, bez opisów, przykładów stron projektu}} 37h9jjo3mkpr8t03n0iz5hi6aicw54a