Wikibooks plwikibooks https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna MediaWiki 1.47.0-wmf.3 first-letter Media Specjalna Dyskusja Wikipedysta Dyskusja wikipedysty Wikibooks Dyskusja Wikibooks Plik Dyskusja pliku MediaWiki Dyskusja MediaWiki Szablon Dyskusja szablonu Pomoc Dyskusja pomocy Kategoria Dyskusja kategorii Wikijunior Dyskusja Wikijuniora TimedText TimedText talk Moduł Dyskusja modułu Wydarzenie Dyskusja wydarzenia Szablon:Wzór/silnik 10 6249 543781 528741 2026-05-21T22:43:50Z Persino 2851 543781 wikitext text/x-wiki <includeonly>{{#if:{{{z mathml|}}}|<templatestyles src="Szablon:Wzór/styles.css" />}}{{#if:{{#invoke:StronicowyParser|formatowanie}}|<templatestyles src="Szablon:StronaStart/styles.css" />}}{{#invoke:StronicowyParser|NumerWzoru | uchwyt = {{{uchwyt|{{{2|}}}}}} | z mathml = {{{z mathml|}}} | obiekt = wzór | styl główny = width:{{{długość linii|auto}}};display:flex;flex-direction:row;overflow:auto;overflow-y:hidden; | styl odstępu = width:{{{odstęp|19px}}};height:100%; | pole odstępu = {{{pole odstępu|}}} | styl wzoru = width:auto;height:100%;{{#ifeq:{{{obramuj|}}}|tak|border: solid 1px black; padding:4px;}};text-align:{{#switch:{{{wyrównanie|lewy}}}|lewy=left|prawy=right|środkowy=center}};white-space:nowrap;{{Jeśli niepuste|{{{czcionka wzoru|}}}|przed lewy=font:|po lewy=;}}{{#if:{{{czcionka wzoru|}}}||{{Jeśli niepuste|{{{rozmiar czcionki wzoru|}}}|przed lewy=font-size:|po lewy=;}}}}{{#if:{{{czcionka wzoru|}}}||{{Jeśli niepuste|{{{wysokość linii czcionki wzoru|}}}|przed lewy=line-height:|po lewy=;}}}}{{#if:{{{czcionka wzoru|}}}||{{Jeśli niepuste|{{{rodzina czcionki wzoru|}}}|przed lewy=font-family:|po lewy=;}}}}{{#if:{{{czcionka wzoru|}}}||{{Jeśli niepuste|{{{wariant czcionki wzoru|}}}|przed lewy=font-variant:|po lewy=;}}}}{{#if:{{{czcionka wzoru|}}}||{{Jeśli niepuste|{{{rozciągnięcie czcionki wzoru|}}}|przed lewy=font-stretch:|po lewy=;}}}}{{#if:{{{czcionka wzoru|}}}||{{Jeśli niepuste|{{{waga czcionki wzoru|}}}|przed lewy=font-weight:|po lewy=;}}}}{{#if:{{{czcionka wzoru|}}}||{{Jeśli niepuste|{{{styl czcionki wzoru|}}}|przed lewy=font-style:|po lewy=;}}}} | klasa wzoru = {{#if:{{#invoke:StronicowyParser|formatowanie}}|fonty_rodzina_serif fonty_wzory}} {{#if:{{{z mathml|}}}|mathml}} szablon_wzór | wzór = {{{wzór|{{{1}}}}}} | opis {{#switch:{{{nazwa szablonu rodzica|}}}|Wzór2|MathMLWzór2=2}} = {{#if:{{{opis|}}}|tak}} | opis {{#switch:{{{nazwa szablonu rodzica|}}}|Wzór2|MathMLWzór2=|#default=2}} = {{#if:{{{opis 2|}}}|tak}} | klasa opisu = {{#if:{{#invoke:StronicowyParser|formatowanie}}|fonty_rodzina_sans fonty_opis_i_numeracja}} | styl opisu {{#switch:{{{nazwa szablonu rodzica|}}}|Wzór2|MathMLWzór2=2}} = width:{{#switch:{{{nazwa szablonu rodzica|}}}|Wzór2|MathMLWzór2={{#switch:{{{wyrównanie|lewy}}}|lewy=auto|prawy=100%|środkowy=50%}}|{{#switch:{{{wyrównanie|lewy}}}|lewy=100%|prawy=auto|środkowy=50%}}}};height:100%;box-sizing:border-box;padding-left:5px;padding-right:5px;{{#if:{{{odstęp opisu|}}}|padding:{{{odstęp opisu|}}};|}}text-align:{{#switch:{{{pozioma pozycja opisu|środkowy}}}|lewy=left|środkowy=center|prawy=right}};{{#switch:{{{pionowa pozycja opisu|środek}}}|góra=margin-top:0;margin-bottom:auto|środek=margin-top:auto;margin-bottom:auto|dół=margin-top:auto;margin-bottom:0}};white-space:nowrap;{{Jeśli niepuste|{{{czcionka opisu|}}}|przed lewy=font:|po lewy=;}}{{#if:{{{czcionka opisu|}}}||{{Jeśli niepuste|{{{rodzina czcionki opisu|}}}|przed lewy=font-family:|po lewy=;}}}}{{#if:{{{czcionka opisu|}}}||{{Jeśli niepuste|{{{rozmiar czcionki opisu|}}}|przed lewy=font-size:|po lewy=;}}}}{{#if:{{{czcionka opisu|}}}||{{Jeśli niepuste|{{{wysokość linii czcionki opisu|}}}|przed lewy=line-height:|po lewy=;}}}}{{#if:{{{czcionka opisu|}}}||{{Jeśli niepuste|{{{wariant czcionki opisu|}}}|przed lewy=font-variant:|po lewy=;}}}}{{#if:{{{czcionka opisu|}}}||{{Jeśli niepuste|{{{rozciągnięcie czcionki opisu|}}}|przed lewy=font-stretch:|po lewy=;}}}}{{#if:{{{czcionka opisu|}}}||{{Jeśli niepuste|{{{waga czcionki opisu|}}}|przed lewy=font-weight:|po lewy=;}}}}{{#if:{{{czcionka opisu|}}}||{{Jeśli niepuste|{{{styl czcionki opisu|}}}|przed lewy=font-style:|po lewy=;}}}} | styl opisu {{#switch:{{{nazwa szablonu rodzica|}}}|Wzór2|MathMLWzór2=|#default=2}} = width:{{#switch:{{{nazwa szablonu rodzica|}}}|Wzór2|MathMLWzór2={{#switch:{{{wyrównanie|lewy}}}|lewy=100%|prawy=auto|środkowy=50%}}|{{#switch:{{{wyrównanie|lewy}}}|lewy=auto|prawy=100%|środkowy=50%}}}};height:100%;box-sizing:border-box;padding-left:5px;padding-right:5px;{{#if:{{{odstęp opisu 2|}}}|padding:{{{odstęp opisu 2|}}};|}}text-align:{{#switch:{{{pozioma pozycja opisu 2|środkowy}}}|lewy=left|środkowy=center|prawy=right}};{{#switch:{{{pionowa pozycja opisu 2|środek}}}|góra=margin-top:0;margin-bottom:auto|środek=margin-top:auto;margin-bottom:auto|dół=margin-top:auto;margin-bottom:0}};white-space:nowrap;{{Jeśli niepuste|{{{czcionka opisu 2|}}}|przed lewy=font:|po lewy=;}}{{#if:{{{czcionka opisu 2|}}}||{{Jeśli niepuste|{{{rodzina czcionki opisu 2|}}}|przed lewy=font-family:|po lewy=;}}}}{{#if:{{{czcionka opisu 2|}}}||{{Jeśli niepuste|{{{rozmiar czcionki opisu 2|}}}|przed lewy=font-size:|po lewy=;}}}}{{#if:{{{czcionka opisu 2|}}}||{{Jeśli niepuste|{{{wysokość linii czcionki opisu 2|}}}|przed lewy=line-height:|po lewy=;}}}}{{#if:{{{czcionka opisu 2|}}}||{{Jeśli niepuste|{{{wariant czcionki opisu 2|}}}|przed lewy=font-variant:|po lewy=;}}}}{{#if:{{{czcionka opisu 2|}}}||{{Jeśli niepuste|{{{rozciągnięcie czcionki opisu 2|}}}|przed lewy=font-stretch:|po lewy=;}}}}{{#if:{{{czcionka opisu 2|}}}||{{Jeśli niepuste|{{{waga czcionki opisu 2|}}}|przed lewy=font-weight:|po lewy=;}}}}{{#if:{{{czcionka opisu 2|}}}||{{Jeśli niepuste|{{{styl czcionki opisu 2|}}}|przed lewy=font-style:|po lewy=;}}}} | wzór opisu {{#switch:{{{nazwa szablonu rodzica|}}}|Wzór2|MathMLWzór2=2}} = {{{ogranicznik lewy|{{{ogranicznik|(}}}}}}{{{opis|}}}{{{ogranicznik prawy|{{{ogranicznik|)}}}}}} | wzór opisu {{#switch:{{{nazwa szablonu rodzica|}}}|Wzór2|MathMLWzór2=|#default=2}} = {{{ogranicznik lewy 2|{{{ogranicznik 2|{{{ogranicznik lewy|{{{ogranicznik|(}}}}}}}}}}}}{{{opis 2|}}}{{{ogranicznik prawy 2|{{{ogranicznik 2|{{{ogranicznik prawy|{{{ogranicznik|)}}}}}}}}}}}} | styl alternatywy opisu {{#switch:{{{nazwa szablonu rodzica|}}}|Wzór2|MathMLWzór2=2}} = width:{{#switch:{{{nazwa szablonu rodzica|}}}|Wzór2|MathMLWzór2={{#switch:{{{wyrównanie|lewy}}}|lewy=auto|prawy=100%|środkowy=50%}}|{{#switch:{{{wyrównanie|lewy}}}|lewy=100%|prawy=auto|środkowy=50%}}}};height:100% | styl alternatywy opisu {{#switch:{{{nazwa szablonu rodzica|}}}|Wzór2|MathMLWzór2=|#default=2}} = width:{{#switch:{{{nazwa szablonu rodzica|}}}|Wzór2|MathMLWzór2={{#switch:{{{wyrównanie|lewy}}}|lewy=100%|prawy=auto|środkowy=50%}}|{{#switch:{{{wyrównanie|lewy}}}|lewy=auto|prawy=100%|środkowy=50%}}}};height:100% | pozycja numeracji = {{#switch:{{{pozycja numeracji|po prawej}}}|po prawej=tak|po lewej=|#default=tak}} | klasa numeracji = {{#if:{{#invoke:StronicowyParser|formatowanie}}|fonty_rodzina_sans fonty_opis_i_numeracja}} | styl numeracji = width:auto;height:100%;text-align:left;white-space:nowrap;{{#switch:{{{pionowa pozycja numeracji|środek}}}|góra=margin-top:0;margin-bottom:auto|środek=margin-top:auto;margin-bottom:auto|dół=margin-top:auto;margin-bottom:0}};{{Jeśli niepuste|{{{czcionka numeracji|}}}|przed lewy=font:|po lewy=;}}{{#if:{{{czcionka numeracji|}}}||{{Jeśli niepuste|{{{rozmiar czcionki numeracji|}}}|przed lewy=font-size:|po lewy=;}}}}{{#if:{{{czcionka numeracji|}}}||{{Jeśli niepuste|{{{wysokość linii numeracji|}}}|przed lewy=line-height:|po lewy=;}}}}{{#if:{{{czcionka numeracji|}}}||{{Jeśli niepuste|{{{rodzina czcionki numeracji|}}}|przed lewy=font-family:|po lewy=;}}}}{{#if:{{{czcionka numeracji|}}}||{{Jeśli niepuste|{{{wariant czcionki numeracji|}}}|przed lewy=font-variant:|po lewy=;}}}}{{#if:{{{czcionka numeracji|}}}||{{Jeśli niepuste|{{{waga czcionki numeracji|}}}|przed lewy=font-weight:|po lewy=;}}}}{{#if:{{{czcionka numeracji|}}}||{{Jeśli niepuste|{{{rozciągnięcie czcionki numeracji|}}}|przed lewy=font-stretch:|po lewy=;}}}}{{#if:{{{czcionka numeracji|}}}||{{Jeśli niepuste|{{{styl czcionki numeracji|}}}|przed lewy=font-style:|po lewy=;}}}} | bez automatu = {{{bez automatu|}}} }}{{#if:{{{bez kategorii stronicowych|}}}{{{bez automatu|}}}||{{#if:{{{uchwyt|{{{2|}}}}}}|{{#invoke:StronicowyParser|WstawKategorie|{{{uchwyt|{{{2|}}}}}}|Wzór}}}}}}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Sprawdź|Parametry | = parametry-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s %s do sprawdzenia{{))}} | 1 = txt!;wzór | wzór = txt!;1 | uchwyt = ;2 | 2 = ;uchwyt | opis = | opis 2 = | długość linii = txt | odstęp = txt | pole odstępu = | wyrównanie = ^lewy${{!}}^prawy${{!}}^środkowy$ | obramuj = | czcionka wzoru = | rozmiar czcionki wzoru = | wysokość linii czcionki wzoru = | rodzina czcionki wzoru = | wariant czcionki wzoru = | rozciągnięcie czcionki wzoru = | waga czcionki wzoru = | styl czcionki wzoru = | pozioma pozycja opisu = ^lewy${{!}}^środkowy${{!}}^prawy$ | pionowa pozycja opisu = ^góra${{!}}^środek${{!}}^dół$ | czcionka opisu = | rozmiar czcionki opisu = | wysokość linii czcionki opisu = | rodzina czcionki opisu = | wariant czcionki opisu = | rozciągnięcie czcionki opisu = | waga czcionki opisu = | ogranicznik = | ogranicznik lewy = | ogranicznik prawy = | pozioma pozycja opisu 2 = ^lewy${{!}}^środkowy${{!}}^prawy$ | pionowa pozycja opisu 2 = ^góra${{!}}^środek${{!}}^dół$ | czcionka opisu 2 = | rozmiar czcionki opisu 2 = | wysokość linii czcionki opisu 2 = | rodzina czcionki opisu 2 = | wariant czcionki opisu 2 = | rozciągnięcie czcionki opisu 2 = | waga czcionki opisu 2 = | ogranicznik 2 = | ogranicznik lewy 2 = | ogranicznik prawy 2 = | pionowa pozycja numeracji = ^góra${{!}}^środek${{!}}^dół$ | czcionka numeracji = | rozmiar czcionki numeracji = | wysokość linii numeracji = | rodzina czcionki numeracji = | wariant czcionki numeracji = | waga czcionki numeracji = | rozciągnięcie czcionki numeracji = | styl czcionki numeracji = | pozycja numeracji = ^po prawej${{!}}^po lewej$ | bez automatu = | bez kategorii stronicowych = }}}}</includeonly><noinclude>{{Dokumentacja|zawartość=Szablon silnik jest wykorzystywany w szablonach: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, {{s|MathMLWzór}}, {{s|MathMLWzór2}}, {{s|CentrujMathMLWzór}} i {{s|CentrujMathMLWzór2}}.}}{{Kategoria|Szablony - silniki}}</noinclude> 713kut5am7zubg1qkkua82p87qrlq85 Niemiecki/Słowotwórstwo/Zrostek/Tabela zrostków derywacyjnych 0 22422 543834 543534 2026-05-22T08:03:49Z EdytaT 2664 /* Sufixoidy (Suffixoide) */ 543834 wikitext text/x-wiki {{Podrozdział|[[Niemiecki|Język niemiecki]]<br>[[Niemiecki/Słowotwórstwo|Słowotwórstwo]]|Tabela zrostków derywacyjnych}} == Zrostki derywacyjne (''Derivationsaffixe'') w języku niemieckim == === Afiksy rzeczownikowe (''Nominalaffixe'') === {|class="wikitable" |+ ! Przedrostki (''Präfixe'') ! Przedrostki (''Präfixe'')<br> pochodzenia obcego ! Przyrostki (''Suffixe'') ! Przyrostki (''Suffixe'')<br> pochodzenia obcego |- | erz-, ge-, haupt-, [http://pl.wiktionary.org/wiki/miss- miss-], [http://pl.wiktionary.org/wiki/un- un-], [http://pl.wiktionary.org/wiki/ur- ur-] | a-/an-, anti-, de-/des-, dis-, ex- hyper-, in-, inter-, ko-/kon-, kom-, non-, prä-, pro-, re-, super-, trans-, ultra- | [http://pl.wiktionary.org/wiki/-bold -bold], [http://pl.wiktionary.org/wiki/-chen -chen], [http://pl.wiktionary.org/wiki/-de -de], [http://pl.wiktionary.org/wiki/-e -e], [http://pl.wiktionary.org/wiki/-ei -(er/el)ei], [http://pl.wiktionary.org/wiki/-er -er], [http://pl.wiktionary.org/wiki/-heit -heit], [http://pl.wiktionary.org/wiki/-keit -keit]/[http://pl.wiktionary.org/wiki/-igkeit -igkeit], [http://pl.wiktionary.org/wiki/-icht -icht], [http://pl.wiktionary.org/wiki/-ian -ian]/[http://pl.wiktionary.org/wiki/-jan -jan], [http://pl.wiktionary.org/wiki/-i -i], [http://pl.wiktionary.org/wiki/-in -in], [http://pl.wiktionary.org/wiki/-kein -kein], [http://pl.wiktionary.org/wiki/-ler -ler], [http://pl.wiktionary.org/wiki/-ling -ling], [http://pl.wiktionary.org/wiki/-ner -ner], [http://pl.wiktionary.org/wiki/-nis -nis], [http://pl.wiktionary.org/wiki/-or -or], [http://pl.wiktionary.org/wiki/-rich -rich], [http://pl.wiktionary.org/wiki/-s -s], [http://pl.wiktionary.org/wiki/-sal -sal], [http://pl.wiktionary.org/wiki/-schaft -schaft], [http://pl.wiktionary.org/wiki/-sel -sel], [http://pl.wiktionary.org/wiki/-t -t], [http://pl.wiktionary.org/wiki/-tel -tel], [http://pl.wiktionary.org/wiki/-tum -tum], [http://pl.wiktionary.org/wiki/-ung -ung], [http://pl.wiktionary.org/wiki/-wesen -wesen] | -ament/-ement, -ant/-ent, -anz/-enz, -age, -ar/-är, -arium, -at, -aille, -ade, -asmus/[http://pl.wiktionary.org/wiki/-de -ismus], -ee, -elle, -esse, -ette, -(er)ie, -eur, -ier, -iere, -ik, -iker, -ine, -(at/t/x)ion, [http://pl.wiktionary.org/wiki/-de -ist], -(i)tät, -(at/it)or, -ose, -ur |- |} === Afiksy przymiotnikowe (''Adjektivaffixe'') === {|class="wikitable" |+ ! Przedrostki (''Präfixe'') ! Przedrostki (''Präfixe'')<br> pochodzenia obcego ! Przyrostki (''Suffixe'') ! Przyrostki (''Suffixe'')<br> pochodzenia obcego |- | erz-, [http://pl.wiktionary.org/wiki/miss- miss-], [http://pl.wiktionary.org/wiki/un- un-], [http://pl.wiktionary.org/wiki/ur- ur-] | a-/an-, anti-, de-/des-, dis-, ex- hyper-, in-/il-/-im/-ir, inter-, ko-/kon-/kor-, non-, par-, post-, prä-, pro-, super-, trans-, ultra- | [http://pl.wiktionary.org/wiki/-bar -bar], [http://pl.wiktionary.org/wiki/-ern -e(r)n], [http://pl.wiktionary.org/wiki/-er -er], [http://pl.wiktionary.org/wiki/-fach -fach], [http://pl.wiktionary.org/wiki/-haft -haft], [http://pl.wiktionary.org/wiki/-icht -icht], [http://pl.wiktionary.org/wiki/-ig -ig], [http://pl.wiktionary.org/wiki/-isch -isch], [http://pl.wiktionary.org/wiki/-lich -lich], [http://pl.wiktionary.org/wiki/-los -los], [http://pl.wiktionary.org/wiki/-sam -sam], [http://pl.wiktionary.org/wiki/-voll -voll] | -abel/-ibel, -al/-ell, -ant/-ent, -ar/-är, -esk, -iv, -oid, -os/-õs |- |} === Afiksy czasownikowe (''Verbalaffixe'') === {|class="wikitable" |+ ! Przedrostki (''Präfixe'') ! Przedrostki (''Präfixe'')<br> pochodzenia obcego ! Przyrostki (''Suffixe'') ! Przyrostki (''Suffixe'')<br> pochodzenia obcego |- | [http://pl.wiktionary.org/wiki/ab- ab-], [http://pl.wiktionary.org/wiki/an- an-], [http://pl.wiktionary.org/wiki/auf- auf-], [http://pl.wiktionary.org/wiki/aus- aus-], [http://pl.wiktionary.org/wiki/be- be-], bei-, dar-, ein-, [http://pl.wiktionary.org/wiki/ent- ent-], er-, ge-, los-, [http://pl.wiktionary.org/wiki/miss- miss-], nach-, ob, über-, [http://pl.wiktionary.org/wiki/ver- ver-], vor-, weg-, wider-, zer-, zu- | de-/des-/dis-, in-, inter-, ko-/kom-/kon-/kor-/kol-, prä-, re-, trans- | -ig, -(is/ifiz)ier, -(e)l, -(e)r | |- |} === Afiksy przysłówkowe (''Adverbialaffixe'') === {|class="wikitable" |+ ! Przedrostki (''Präfixe'') ! Przedrostki (''Präfixe'')<br> pochodzenia obcego ! Przyrostki (''Suffixe'') ! Przyrostki (''Suffixe'')<br> pochodzenia obcego |- | | | -dings, -ens, -halben/-halber, hin-, lei, -lings, -mals, -maßen, -s, -wärts, -weg, -weise | |- |} === Sufixoidy (''Suffixoide'') === Sufixoidy (''Suffixoide''), inaczej półprzyrostki, to cząstki słowotwórcze, które stoją na pograniczu samodzielnego słowa i przyrostka. W nowym złożeniu zatracają swoje pierwotne znaczenie i pełnią funkcję cząstki tworzącej nowe słowo. * [http://pl.wiktionary.org/wiki/-artig -artig] * [http://pl.wiktionary.org/wiki/-arm -arm] * [http://pl.wiktionary.org/wiki/-feindlich -feindlich] * [http://pl.wiktionary.org/wiki/-fest -fest] * [http://pl.wiktionary.org/wiki/-förmig -förmig] * [http://pl.wiktionary.org/wiki/-frei -frei] * [http://pl.wiktionary.org/wiki/-freundlich -freundlich] * [http://pl.wiktionary.org/wiki/-gemäß -gemäß] * [http://pl.wiktionary.org/wiki/-haltig -haltig] * [http://pl.wiktionary.org/wiki/-krank -krank] * [http://pl.wiktionary.org/wiki/-los -los] * [http://pl.wiktionary.org/wiki/-mäßig -mäßig] * [http://pl.wiktionary.org/wiki/-reich -reich] * [http://pl.wiktionary.org/wiki/-teilig -teilig] * [http://pl.wiktionary.org/wiki/-voll -voll] * [http://pl.wiktionary.org/wiki/-werk -werk] * [http://pl.wiktionary.org/wiki/-wert -wert] {{Przypisy}} <!-- https://www.duden.de/sprachwissen/sprachratgeber/Die-Suffixe-los-und-weise --> m0e90zemei2htnr1k172ajry7xhiqb3 Pruski 0 24859 543743 543062 2026-05-21T18:42:57Z Aklbmd164 37133 /* Przymiotniki i przysłówki */ 543743 wikitext text/x-wiki {{status|-50%|Języki|język=indoeuropejskie}} {{Rozdział|Podręcznik|Pruski}} '''Witajcie! Kaīls!''' ''Witamy w podręczniku do nauki odtworzonego języka pruskiego (nawaprūsiskan) w polskojęzycznym serwisie [[Wikibooks:Czym jest Wikibooks|Wikibooks]]!'' == Spis treści == === Podstawy === * [[Pruski/Wstęp|Czym jest język pruski?]] * [[Pruski/Lekcja1|Lekcja 1 – Lakciōni 1]] * [[Pruski/Lekcja2|Lekcja 2 – Lakciōni 2]] * [[Pruski/Ćwiczenia1|Ćwiczenia do lekcji 1 i 2]] === Rzeczowniki === * [[Pruski/Lekcja3|Lekcja 3 – Lakciōni 3]] * [[Pruski/Lekcja4|Lekcja 4 – Lakciōni 4]] * [[Pruski/Lekcja5|Lekcja 5 – Lakciōni 5]] * [[Pruski/Lekcja6|Lekcja 6 – Lakciōni 6]] * [[Pruski/Lekcja7|Lekcja 7 – Lakciōni 7]] * [[Pruski/Lekcja8|Lekcja 8 – Lakciōni 8]] * [[Pruski/Lekcja9|Lekcja 9 – Lakciōni 9]] === Zaimki === * [[Pruski/Lekcja10|Lekcja 10 – Lakciōni 10]] === Przyimki === * [[Pruski/Lekcja11|Lekcja 11 – Lakciōni 11]] === Słowniki tematyczne === * [[Pruski/Lekcja12|Lekcja 12 – Lakciōni 12]] * [[Pruski/Lekcja13|Lekcja 13 – Lakciōni 13]] * [[Pruski/Lekcja14|Lekcja 14 – Lakciōni 14]] * [[Pruski/Lekcja15|Lekcja 15 – Lakciōni 15]] * [[Pruski/Lekcja16|Lekcja 16 – Lakciōni 16]] * [[Pruski/Lekcja17|Lekcja 17 – Lakciōni 17]] * [[Pruski/Lekcja18|Lekcja 18 – Lakciōni 18]] * [[Pruski/Lekcja19|Lekcja 19 – Lakciōni 19]] * [[Pruski/Lekcja20|Lekcja 20 – Lakciōni 20]] * [[Pruski/Lekcja21|Lekcja 21 – Lakciōni 21]] === Czasowniki === * [[Pruski/Lekcja22|Lekcja 22 – Lakciōni 22]] * [[Pruski/Lekcja23|Lekcja 23 – Lakciōni 23]] * [[Pruski/Lekcja24|Lekcja 24 – Lakciōni 24]] * [[Pruski/Lekcja25|Lekcja 25 – Lakciōni 25]] * [[Pruski/Lekcja26|Lekcja 26 – Lakciōni 26]] * [[Pruski/Lekcja27|Lekcja 27 – Lakciōni 27]] * [[Pruski/Lekcja28|Lekcja 28 – Lakciōni 28]] * [[Pruski/Lekcja29|Lekcja 29 – Lakciōni 29]] === Przymiotniki i przysłówki === * [[Pruski/Lekcja30|Lekcja 30 – Lakciōni 30]] * [[Pruski/Lekcja31|Lekcja 31 – Lakciōni 31]] * [[Pruski/Lekcja32|Lekcja 32 – Lakciōni 32]] * [[Pruski/Lekcja33|Lekcja 33 – Lakciōni 33]] === Listy słówek === * [[Pruski/Lista najważniejszych czasowników|Lista najważniejszych czasowników]] === Teksty === * [[Pruski/Modlitwy po prusku|Modlitwy po prusku]] === Inne materiały do nauki === * [http://prusaspira.org/ Materiały Stowarzyszenia Prusaspirā] * [https://tatoeba.org/pl/sentences/search?from=prg&has_audio=&native=&orphans=no&query=&sort=relevance&sort_reverse=&tags=&to=&trans_filter=limit&trans_has_audio=&trans_link=&trans_orphan=&trans_to=&trans_unapproved=&trans_user=&unapproved=no&user=Piteris&word_count_max=&word_count_min=1 Pruskie zdania na Tatoebie] * [https://incubator.m.wikimedia.org/wiki/Wp/prg Testowa Wikipedia w języku pruskim] * [https://incubator.m.wikimedia.org/wiki/Wt/prg Testowy Wikisłownik w języku pruskim] * [https://youtube.com/@prusiskataliwidasna?si=OMpzpgNy9hZUwFUa Kanał na YouTube z Litwy w języku pruskim] * [https://sitti.vdu.lt//prussian/ Strona Letasa Palmaitisa] * [https://sitti.vdu.lt//prussian/chrestom.pdf Pruska Chrestomatia] * [https://jezyk-pruski.blogspot.com/ Blog o języku pruskim] bre6runzoi3yi8qyk783ucf5klz9jaf Moduł:Sprawdź 828 31189 543797 543647 2026-05-22T00:56:04Z Persino 2851 543797 Scribunto text/plain return { ["NazwaKategoriiSprawdzaniaParametrówSzablonu"]=function() return "Szablony z dodatkową opcją sprawdzania parametrów"; end; ["UsuńKategorięSprawdzaniaParametrówSzablonu"]=function(frame) local wikikod=frame.args[1]; local sprawdz_modul=require("Module:Sprawdź"); local kategoria_sprawdzania_parametrow=sprawdz_modul["NazwaKategoriiSprawdzaniaParametrówSzablonu"](); local specjalne_modul=require("Module:Specjalne"); return specjalne_modul["UsuńŚciśleOkreśloneKategorie"]{[1]=wikikod,[2]=kategoria_sprawdzania_parametrow,} end; ["Porównaj"] = function(frame) local pf=frame:getParent(); local config = pf.args[""] or "" local brudnopis=pf.args["brudnopis"]; local options = mw.text.split(config, "|") local templateName = mw.text.trim(options[1]) if #templateName == 0 then local title = mw.title.getCurrentTitle() if title.namespace == 10 then templateName = mw.ustring.match(title.text, "^(.-)/opis") or mw.ustring.match(title.text, "^(.-)/test") or mw.ustring.match(title.text, "^(.-)/brudnopis") or title.text end if #templateName == 0 then mw.log("brak nazwy szablonu") return end end local i = 2 local showparams = true local showinfo = true local vertical = false local brudnopis; while i <= #options do local parametr,wartosc=mw.ustring.match(options[i],"^([^%=]*)%=(.*)$") if(not parametr)then local option = mw.text.trim(options[i]) if option == "bez wikikodu" then showparams = false elseif option == "bez opisu" then showinfo = false elseif option == "pionowo" then vertical = true end else local parametr=mw.text.trim(parametr) if(parametr=="brudnopis")then brudnopis=mw.text.trim(wartosc); end; end i = i + 1 end; local templateTitle = mw.title.new(templateName, 10) if templateTitle.id == 0 then mw.log("szablon '"..templateName.."' nie istnieje") return end local sandboxName = brudnopis or (templateName.."/brudnopis") local sandboxTitle = mw.title.new(sandboxName, 10) if sandboxTitle.id == 0 then mw.log("brudnopis '"..sandboxName.."' nie istnieje") return end local templateParams = {} local params = {} for k, v in pairs(pf.args) do if (k ~= "") then templateParams[k] = v table.insert(params, k) end end local result = {} table.insert(result, '<table style="width: 100%;">') if showparams and (#params > 0) then local compare = function(a, b) -- return a < b if (type(a) == "number") and (type(b) == "number") then return a < b end if (type(a) == "string") and (type(b) == "string") then return a < b end if (type(a) == "number") and (type(b) == "string") then return true end return false end table.sort(params, compare) table.insert(result, "<caption><code>&#x7B;&#x7B;") table.insert(result, templateName) for i, k in ipairs(params) do table.insert(result, " &#x7C; ") local p = mw.text.nowiki(tostring(k)) local v = mw.text.nowiki(templateParams[k]) table.insert(result, p) table.insert(result, " = ") table.insert(result, v) end table.insert(result, "&#x7D;&#x7D;</code></caption>") end local templateResult = frame:expandTemplate{ title=templateName, args=templateParams} local sandboxResult = frame:expandTemplate{ title=sandboxName, args=templateParams} if templateResult and string.match(templateResult, "^{|") then templateResult = "\n"..templateResult end if sandboxResult and string.match(sandboxResult, "^{|") then sandboxResult = "\n"..sandboxResult end if vertical and showinfo then table.insert(result, '<tr><th style="width: 15em">[[Szablon:') table.insert(result, templateName) table.insert(result, '|Szablon]]</th><td>') table.insert(result, templateResult) table.insert(result, '</td></tr><tr><th>[[Szablon:') table.insert(result, sandboxName) table.insert(result, '|Brudnopis szablonu]]</th><td>') table.insert(result, sandboxResult) table.insert(result, '</td></tr>') elseif vertical then table.insert(result, '<tr><td>') table.insert(result, templateResult) table.insert(result, '</td></tr><tr><td>') table.insert(result, sandboxResult) table.insert(result, '</td></tr>') else if showinfo then table.insert(result, '<tr><th style="width: 50%;">[[Szablon:') table.insert(result, templateName) table.insert(result, '|Szablon]]</th><th style="width: 50%;">[[Szablon:') table.insert(result, sandboxName) table.insert(result, '|Brudnopis szablonu]]</th></tr>') end table.insert(result, '<tr style="vertical-align: top;"><td>') table.insert(result, templateResult) table.insert(result, '</td><td>') table.insert(result, sandboxResult) table.insert(result, '</td></tr>') end table.insert(result, "</table>") return table.concat(result) end, ["Parametry"] = function(frame) local pf=frame:getParent(); local unknown = {} local invalid = {} local deprecated = {} local nakedurl = {} local exturl = {} local files = {}; local templateName; local function argName(arg) local span = mw.html.create('span'); span:css('white-space','pre'); span:wikitext(arg); return type(arg) ~= "string" and tostring(arg) or ('"'..tostring(span:allDone())..'"'); end local ramka_modul=require("Module:Ramka"); local tabelka1=ramka_modul.RozpakujArgumenty(frame.args["bez argumentów szablonu"]); local tabelka2=ramka_modul.RozpakujArgumenty(pf.args["bez argumentów szablonu"]); local parametry_modul=require("Module:Parametry"); local tabelka_bez_argumentow=parametry_modul["ŁączDwieTabele"](tabelka1,tabelka2) local required = {}; local repeated = {}; local konieczne = {}; local empty = {}; local noempty = {}; local tabelka_argumentow_systemowych_funkcji={ ["nazwa przestrzeni nazw"]="", ["nazwa jednostki"]="txt", ["typ jednostki"]="txt", ["tytuł przestrzeni nazw"]="", ["tytuł jednostki"]="txt", ["rodzaj jednostki"]="txt", ["strona główna dla dzieci"]="txt", ["strona główna projektu"]="txt", ---- Kategorie błędów; ["usuń dodatkowe informacje"]="", ["usuń ostrzeżenie"]="", ["usuń linkowanie"]="", ["bez dodatkowych sprawdzeń"]="", -- parametr systemowy szablonu do nieuruchamiania tej funkcji; ["dokumentacja"]="", -- parametr używany zamiast: "bez kategorii", "usuń dodatkowe informacje", "usuń ostrzeżenie" i "usuń linkowanie"; ["bez kategorii"]="", -- parametr systemowy szablonu, by kategorie się nie pojawiały ---- Koniec kategorii błędów; };--tabelka powyższa jest tabelką argumentów systemowych tej funkcji tego modułu; local tabelka_argumentow_dodatkowych_funkcji={ ["bez argumentów szablonu"]="", -- zawiera w sobie argumenty szablonu - oddzielone średnikem, których szablon nie może zawierać w wywołaniu; ["dodaj parametry pudełka"]="", -- dodaje parametry funkcji: Ogólne pudełko, modułu Pudełko; }; local tabelka_argumentow_systemowych_szablonu={ ["nazwij jednostką"]="", -- parametr systemowy funkcji mówiący, czy dowolną jednostkę nazwać po prostu jednostką; }; -- tabelka powyższa jest tabelką argumentów systemowych szablonu wywołującego tę funkcję tego modułu; local tabelka_parametrow_rodzica={}; local parametry_rodzica=parametry_modul.CzyTak(pf.args["potomek"])and pf.args["parametry rodzica"]; local szablonowe_modul=require("Module:Szablonowe"); if(parametry_rodzica)then tabelka_parametrow_rodzica=ramka_modul.RozpakujParametry(parametry_rodzica); templateName=pf.args["nazwa szablonu rodzica"] or szablonowe_modul.NazwaSzablonu(pf:getTitle()); else tabelka_parametrow_rodzica=pf.args; templateName=szablonowe_modul.NazwaSzablonu(pf:getTitle()); end; local czy_dodaj_parametry_pudelka=parametry_modul.CzyTak(frame.args["dodaj parametry pudełka"]); if(czy_dodaj_parametry_pudelka)then--dodaje parametry pudełka tabelka_argumentow_systemowych_szablonu["parametry pudełka"]=""; tabelka_argumentow_systemowych_szablonu["bez błędu"]=""; tabelka_argumentow_systemowych_szablonu["bez szczegółów"]=""; --dodaje parametry nienazwane i dla parametru: 1, którego ewentualną pierwszą nazwą jest: cel-- local maksimum=parametry_modul.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabelka_parametrow_rodzica); for i=1,maksimum,1 do if(i>1)then tabelka_argumentow_systemowych_szablonu[i]="txt!"; else tabelka_argumentow_systemowych_szablonu[1]="txt!;cel"; end; end; tabelka_argumentow_systemowych_szablonu["cel"]="txt!;1" end; local tablica_mikroszablonow={ ["{{+}}"]=";", ["{{!+}}"]="^", ["{{+!}}"]="$", }; tabelka_bez_argumentow=parametry_modul["UsuńElementyTabeli"](tabelka_bez_argumentow,tabelka_argumentow_systemowych_funkcji); tabelka_bez_argumentow=parametry_modul["UsuńElementyTabeli"](tabelka_bez_argumentow,tabelka_argumentow_systemowych_szablonu); local zmienna_sprawdzania_parametrow=pf.args["zmienna sprawdzania parametrów"]; local zmienne_dodane={}; if(zmienna_sprawdzania_parametrow)then local tabelka_zmiennych=mw.text.split(zmienna_sprawdzania_parametrow,";;",false); for poz,war in ipairs(tabelka_zmiennych)do local zmienna,wartosc=mw.ustring.match(war,"^%s*(.+)%s*=%s*(.*)%s*$") if((zmienna)and(wartosc))then zmienna=mw.text.trim(zmienna); wartosc=mw.text.trim(wartosc); zmienne_dodane[tonumber(zmienna) or mw.ustring.gsub(zmienna,"{{[^{}]+}}",tablica_mikroszablonow)]=wartosc; end; end; end; local zmienne_konieczne=function(tab,czy_odjete) for k, v in pairs(tab)do if(czy_odjete or ((not tabelka_argumentow_systemowych_funkcji[k]) and (not tabelka_argumentow_systemowych_szablonu[k]) and (not tabelka_bez_argumentow[k]) ) )then local wydziel=mw.ustring.match(v,"^%s*(^.*$%s*%??%s*!?)%s*"); if wydziel and mw.ustring.match(wydziel, "!%s*$") then required[k] = true elseif mw.ustring.match(mw.ustring.match(v,"^([^;]*!?)%s*"), "!%s*$") then required[k] = true end end; end; end; zmienne_konieczne(frame.args,false); zmienne_konieczne(zmienne_dodane,true); zmienne_konieczne(tabelka_argumentow_systemowych_funkcji,true); zmienne_konieczne(tabelka_argumentow_systemowych_szablonu,true); local emptyArg = false local obslugiwane=function(k) local kind=(not tabelka_argumentow_dodatkowych_funkcji[k]) and ((not tabelka_bez_argumentow[k]) and (tabelka_argumentow_systemowych_funkcji[k] or tabelka_argumentow_systemowych_szablonu[k] or zmienne_dodane[k] or frame.args[k])); return kind; end; local tab={}; local function inne_elementy_konieczne(k) local element=tab[k] if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((wartosc[1])and(not wartosc[2])and (not tabelka_parametrow_rodzica[name2]) and (obslugiwane(name2)))then return true; end; end; end; end; return false; end; local function tab_inne_elementy_konieczne(k) local element=tab[k] local tab_konieczne={}; if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((wartosc[1])and(not wartosc[2])and (not tabelka_parametrow_rodzica[name2]) and (obslugiwane(name2)))then table.insert(tab_konieczne,argName(tonumber(name2) or name2)); end; end; end; end; return tab_konieczne; end; local function inne_elementy_nieobslugiwane(k) local element=tab[k] if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(not wartosc[1])then if(not wartosc[2] and not wartosc[3])then if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]) and(((wartosc[4])and (#tabelka_parametrow_rodzica[name2]>0) )or((not wartosc[4])and(#tabelka_parametrow_rodzica[name2]==0))) )then return true; else return false; end; elseif(not wartosc[2] and wartosc[3])then return true; elseif(wartosc[2] and not wartosc[3])then if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]==0))then return true; else return false; end; end; end; end; end; end; return false; end; local function tab_inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) local element=tab[k]; local tab_konieczne_puste={}; if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((wartosc[4])and(not wartosc[2])and (not wartosc[3])and (tabelka_parametrow_rodzica[name2]) and(#tabelka_parametrow_rodzica[name2]==0) and (obslugiwane(name2)))then table.insert(tab_konieczne_puste,argName(tonumber(name2) or name2)); end; end; end; end; return tab_konieczne_puste; end; local function tab_inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) local element=tab[k]; local tab_konieczne_puste={}; if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((not wartosc[4])and(not wartosc[2])and (not wartosc[3])and (tabelka_parametrow_rodzica[name2]) and(#tabelka_parametrow_rodzica[name2]>0) and (obslugiwane(name2)))then table.insert(tab_konieczne_puste,argName(tonumber(name2) or name2)); end; end; end; end; return tab_konieczne_puste; end; local function inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) local element=tab[k]; local czy=false; if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(wartosc[1])then if((wartosc[4])and(not wartosc[2])and(not wartosc[3]))then if((obslugiwane(name2))and((tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]==0)))then return true; end; end; end; end; end; end; return czy; end; local function inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) local element=tab[k]; local czy=false; if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(wartosc[1])then if((not wartosc[4])and(not wartosc[2])and(not wartosc[3]))then if((obslugiwane(name2))and((tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]>0)))then return true; end; end; end; end; end; end; return czy; end; local function inne_elementy_powtarzane_i_z_mozliwymi_dopuszczalnymi_pustymi_wartosciami(k) local element=tab[k]; local czy=true; if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(wartosc[1])then if(wartosc[2])then if(not wartosc[3])then if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]))then if(#tabelka_parametrow_rodzica[name2]==0)then return false; else return true; end; end; elseif((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]))then return true; end; end; end; end; end; end; return false; end; local strony_modul=require("Module:Strony"); local NumerPlik=function(k,v,zapytajnik,tryb) local czy_zapytajnik=(zapytajnik~="?"); local zero=(czy_zapytajnik and(#v==0)); if(zero)then table.insert(invalid, argName(k)); elseif((czy_zapytajnik)or((not czy_zapytajnik)and(#v~=0)))then local u=strony_modul.SprawdzanieRozmiaruPliku{rozmiar=v,tryb=tryb,}; if not u then table.insert(invalid,argName(k)) end; end; end; local GrafikaPlik=function(k,v,zapytajnik,przestrzen) local czy_zapytajnik=(zapytajnik~="?"); local zero=(czy_zapytajnik and(#v==0)); if(zero)then table.insert(invalid, argName(k)) elseif((czy_zapytajnik)or((not czy_zapytajnik)and(#v~=0)))then if strony_modul.ZnajdowanieNormalnychStronHttp(v) then table.insert(nakedurl, argName(k)) else local g = strony_modul.SprawdzanieNazwyPlikowe{nazwa = v, ["przestrzeń"]=przestrzen, }; if not g then table.insert(invalid, argName(k)) end end; end; end; for k, v in pairs(tabelka_parametrow_rodzica) do required[k] = false local kind=obslugiwane(k); local zapytajnik; local wykrzyknik; if (kind) then local kind2;local zmienne; kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*(!?^.*$)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$"); if((not kind2)or(not zmienne)or (not zapytajnik))then kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*([^;]-)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$"); end; if((kind2)and(zmienne))then local tab2=mw.text.split(mw.text.trim(zmienne),"%s*;%s*",false); tab[k]={}; for _,value in ipairs(tab2) do value=mw.text.trim(value); local indeks=tonumber(value) or mw.ustring.gsub(value,"{{[^{}]+}}",tablica_mikroszablonow); local indeks2,wykrzyknik=mw.ustring.match(tostring(indeks),"^%s*(.*)%s*(!!?)%s*$"); local indeks3,zapytajnik=mw.ustring.match(tostring(indeks2 or indeks),"^%s*(.*)%s*(%?)%s*$"); local inne,indeks4=mw.ustring.match(tostring(indeks3 or indeks2 or indeks),"^%s*(!)%s*(.*)%s*$"); tab[k][indeks4 or indeks3 or indeks2 or indeks]={((not inne) and true or false), ((not wykrzyknik) and true or false), ((not zapytajnik) and true or false), ((not (wykrzyknik=="!!")) and true or false), }; end; kind=mw.ustring.gsub(kind2,"{{[^{}]+}}",tablica_mikroszablonow); else kind2,zapytajnik,wykrzyknik=mw.ustring.match(kind,"^%s*(!?%s*^.*$)%s*(%??)%s*(!?)%s*$"); if(not kind2)or(not zapytajnik)then kind2,zapytajnik,wykrzyknik=mw.ustring.match(kind,"^%s*(.-)%s*(%??)%s*(!?)%s*$"); end; kind=mw.ustring.gsub(kind2,"{{[^{}]+}}",tablica_mikroszablonow); end; end; kind=kind and mw.text.trim(kind); if k == "" then emptyArg = v elseif not kind or inne_elementy_nieobslugiwane(k) then table.insert(unknown, argName(k)) elseif inne_elementy_powtarzane_i_z_mozliwymi_dopuszczalnymi_pustymi_wartosciami(k) then table.insert(repeated, argName(k)); elseif inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) then table.insert(empty, k); elseif inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) then table.insert(noempty, k); elseif inne_elementy_konieczne(k) then table.insert(konieczne, k); elseif (kind == "num") then if(zapytajnik~="?")then local n = tonumber(v) if not n then table.insert(invalid, argName(k)) end else local n = (#v == 0) or tonumber(v) if not n then table.insert(invalid, argName(k)) end end; elseif (kind == "uri") then if(zapytajnik~="?")then local u = strony_modul.SprawdzanieURL(v) if not u then table.insert(invalid, argName(k)) end else local u = (#v == 0) or strony_modul.SprawdzanieURL(v) if not u then table.insert(invalid, argName(k)) end end; elseif(kind=="txt")then if(zapytajnik~="?")then if #v == 0 then table.insert(invalid, argName(k)) end; end; elseif (kind=="all")then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) end; end; end; elseif(kind=="grafika")then GrafikaPlik(k,v,zapytajnik,false); elseif(kind=="grafika*")then GrafikaPlik(k,v,zapytajnik,true); elseif (kind == "text") then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u= strony_modul.ZnajdowaniePlikowe(v); if(u)then table.insert(files, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieJakikolwiekStronHttp(v) if(u)then table.insert(exturl, argName(k)) end; end; end; end; end; elseif(kind == "text-img")then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieJakikolwiekStronHttp(v) if(u)then table.insert(exturl, argName(k)) end; end; end; end; elseif((kind == "text-link")or(kind == "tekst"))then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u= strony_modul.ZnajdowaniePlikowe(v); if(u)then table.insert(files, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) end; end; end; end; elseif (kind == "old") then table.insert(deprecated, argName(k)); elseif(kind == "uri*")then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u = strony_modul.SprawdzanieURL(v) or strony_modul.SprawdzanieURL(mw.text.unstripNoWiki(v)) if not u then table.insert(invalid, argName(k)) end end; elseif(kind=="rozmiar")then NumerPlik(k,v,zapytajnik,false); elseif(kind=="rozmiar*")then NumerPlik(k,v,zapytajnik,true); elseif(kind~="")then local function regex(kind) local tab_pattern_wykrzyknik_lub_nie_wzorow={}; local pattern_poczatek=kind; local function funkcja_zbierajacy_dane_patternow(pattern_analiza_wzorow_koniunkcji) local tab_split_pattern_koniunkcji={}; local pattern_poczatek=pattern_analiza_wzorow_koniunkcji; repeat local pattern_poczatek_2,pattern_koniec=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*&%s*(.*)%s*$"); if(pattern_poczatek_2 and pattern_koniec)then table.insert(tab_split_pattern_koniunkcji,pattern_poczatek_2); pattern_poczatek=pattern_koniec; else local pattern_caly=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*$"); if pattern_caly then table.insert(tab_split_pattern_koniunkcji,pattern_caly); end; end; until not pattern_poczatek_2; local tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji={}; for _,wartosc_elementu_koniunkcji in ipairs(tab_split_pattern_koniunkcji)do local wykrzyknik,pattern=mw.ustring.match(wartosc_elementu_koniunkcji,"^%s*(!?)%s*(^.-$)%s*$"); table.insert(tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji,{[1]=pattern,[2]=wykrzyknik}); end; table.insert(tab_pattern_wykrzyknik_lub_nie_wzorow,tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji); end; repeat local pattern_poczatek_2,pattern_koniec=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*|%s*(.*)%s*$"); if pattern_poczatek_2 and pattern_koniec then funkcja_zbierajacy_dane_patternow(pattern_poczatek_2); pattern_poczatek=pattern_koniec; else local pattern_caly=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*$"); if(pattern_caly)then funkcja_zbierajacy_dane_patternow(pattern_caly); end; break; end; until not pattern_poczatek_2; if(#tab_pattern_wykrzyknik_lub_nie_wzorow>0)then for _ , tab_pattern_koniunkcja in ipairs(tab_pattern_wykrzyknik_lub_nie_wzorow) do local czy=true; for _,tab_pattern_elementy_koniunkcji in ipairs(tab_pattern_koniunkcja)do local pattern=tab_pattern_elementy_koniunkcji[1]; local wykrzyknik_negujacy_pattern=(tab_pattern_elementy_koniunkcji[2]=="!"); if(pattern)then if((not wykrzyknik_negujacy_pattern and mw.ustring.match(v, pattern))or(wykrzyknik_negujacy_pattern and not mw.ustring.match(v, pattern)))then czy=czy and true; if(not czy)then break; end; else czy=false; break; end; end end; if(czy)then return true;end; end; return false; end; return nil; end; if((zapytajnik)and((zapytajnik=="")or((zapytajnik=="?")and(#v>0))))then local wynik=regex(kind); if((type(wynik)~="nil")and(not wynik))then table.insert(invalid, argName(k)); elseif (#v > 0) and strony_modul.SprawdzanieURL(v) then table.insert(nakedurl, argName(k)) elseif strony_modul.ZnajdowanieNormalnychStronHttp(v) then table.insert(nakedurl, argName(k)) end; end; end end; local missing = {} local function inny_element2(k) local element=tab[k] if(element)then for name2,wartosc in pairs(element)do if((wartosc[2])and(k~=name2))then if(tabelka_parametrow_rodzica[name2] and obslugiwane(name2))then return true; end; end; end; end; for name,value in pairs(tab)do for name2,wartosc in pairs(value)do if((wartosc[2])and(name2==k)and(name2~=name))then if((tabelka_parametrow_rodzica[name])and obslugiwane(name))then return true; end; end; end; end; return false; end; for k, v in pairs(required) do if v and not inny_element2(k) then table.insert(missing, argName(k)) end end local czy_dokumentacja=parametry_modul.CzyTak(tabelka_parametrow_rodzica["dokumentacja"]); local czy_not_category=parametry_modul.CzyTak(tabelka_parametrow_rodzica["bez kategorii"]) or czy_dokumentacja; local function Szablon_z_sprawdz_parametry() if(czy_not_category)then return "";end; local nazwy_modul=require("Module:Nazwy"); local nazwa_szablonu=szablonowe_modul.NazwaSzablonu(nazwy_modul["PEŁNANAZWASTRONY"]()); if(templateName==nazwa_szablonu)then local sprawdz_modul=require("Module:Sprawdź"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); return "[["..nazwy_np_modul.Category..":"..sprawdz_modul["NazwaKategoriiSprawdzaniaParametrówSzablonu"]().."|"..nazwy_modul["NAZWASTRONY"]().."]]"; end; return ""; end; local czy_missing=parametry_modul["CzySąElementyNumerowaneTablicy"](missing); local czy_konieczne=parametry_modul["CzySąElementyNumerowaneTablicy"](konieczne); local czy_unknown=parametry_modul["CzySąElementyNumerowaneTablicy"](unknown); local czy_invalid=parametry_modul["CzySąElementyNumerowaneTablicy"](invalid); local czy_deprecated=parametry_modul["CzySąElementyNumerowaneTablicy"](deprecated); local czy_repeated=parametry_modul["CzySąElementyNumerowaneTablicy"](repeated); local czy_empty=parametry_modul["CzySąElementyNumerowaneTablicy"](empty); local czy_noempty=parametry_modul["CzySąElementyNumerowaneTablicy"](noempty); local czy_files=parametry_modul["CzySąElementyNumerowaneTablicy"](files); local czy_nakedurl=parametry_modul["CzySąElementyNumerowaneTablicy"](nakedurl); local czy_exturl=parametry_modul["CzySąElementyNumerowaneTablicy"](exturl); if ((not czy_missing) and (not czy_konieczne) and (not czy_unknown) and (not czy_invalid) and (not czy_deprecated) and (not czy_repeated) and (not czy_empty) and (not czy_noempty) and (not czy_files) and (not czy_nakedurl) and (not czy_exturl) and (not emptyArg)) then return Szablon_z_sprawdz_parametry(); end local czy_informacje=not parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń dodatkowe informacje"]) or czy_dokumentacja; local result; if(czy_informacje)then result=mw.html.create("span") result:addClass("problemy"); result:addClass("error"); result:css('white-space','pre-line'); result:css('font-size','unset'); end; local typ; local typ_jednostki; local czy_nazwij_jednostka=parametry_modul.CzyTak(tabelka_parametrow_rodzica["nazwij jednostką"]); ----[""]=?--- local config = frame.args[""] local class, space, category = string.match(config or "", "^%s*(%S+)(%s+)(.-)%s*$") local nl = space and string.match(space, "\n") or "" class = class or config ---- if(((czy_informacje)and(not czy_nazwij_jednostka))or((category)and((not czy_not_category)and(mw.ustring.match(category,"%%s.-%%s")))))then --local frame2=pf:newChild{args = {["obsługiwane jednostki jako nieopisowe strony"]="tak"}} local pudelko_modul=require("Module:Pudełko"); typ_jednostki=pudelko_modul["Typ jednostki 2"]{args={ ["obsługiwane jednostki jako nieopisowe strony"]="tak", ["nazwa przestrzeni nazw"]=pf and pf.args["tytuł przestrzeni nazw"] or frame.args["tytuł przestrzeni nazw"], ["nazwa jednostki"]=pf and pf.args["tytuł jednostki"] or frame.args["tytuł jednostki"], ["typ jednostki"]=pf and pf.args["rodzaj jednostki"] or frame.args["rodzaj jednostki"], },}; if(typ_jednostki=="artykuł")then typ="(artykuły)"; elseif(typ_jednostki=="artykuł dla dzieci")then typ="(artykuły dla dzieci)"; elseif(typ_jednostki=="strona użytkownika")then typ="(strony użytkowników)"; elseif(typ_jednostki=="strona brudnopisu projektu")then typ="(strony brudnopisu projektu)"; else typ="(strony niepodręcznikowe)"; end; else typ=nil; end; if(czy_informacje)then if(not czy_nazwij_jednostka)then if typ_jednostki=="artykuł" or typ_jednostki=="artykuł dla dzieci" or typ_jednostki=="strona użytkownika" or typ_jednostki=="strona brudnopisu projektu" then result:css("display", "none"); result:css("color","black"); else result:css("color", "red") end else result:css("color", "red") end; end; local czy_warning=not parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń ostrzeżenie"]) or czy_dokumentacja; local message; if(czy_informacje or czy_warning)then message=mw.html.create() if emptyArg then message:wikitext("Podano parametr o nazwie pustej o wartosci: |=", emptyArg, "|.<br/>") end if czy_missing then message:wikitext("Brakujące pola, które powinny być koniecznie podane: ", mw.text.listToText(missing), ".<br/>") end if czy_konieczne then for _,_konieczne in ipairs(konieczne) do message:wikitext("Konieczne pola, które powinny być używane z innymi parametrami, dla "..argName(_konieczne)..": "..mw.text.listToText(tab_inne_elementy_konieczne(_konieczne))..".<br/>") end; end if czy_invalid then message:wikitext("O nieprawidłowej wartości pola: ", mw.text.listToText(invalid), ".<br/>") end if czy_unknown then message:wikitext("Nieznane pola używane przez szablon: ", mw.text.listToText(unknown), ".<br/>") end if czy_deprecated then message:wikitext("Przestarzałe pola, które są obsługiwane, ale których nie powinno się raczej używać: ", mw.text.listToText(deprecated), ".<br/>") end if czy_repeated then message:wikitext("Pola o odpowiedniej podanej wartości, które nie powinne być używane z innymi parametrami lub z tymi podanymi: ", mw.text.listToText(repeated), ".<br/>") end if czy_empty then for _,_empty in ipairs(empty) do message:wikitext("Dla pola "..argName(_empty).." wykryto wartości z pustymi polami: "..mw.text.listToText(tab_inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(_empty))..", które powinny być niepuste.<br/>") end; end if czy_noempty then for _,_noempty in ipairs(noempty) do message:wikitext("Dla pola "..argName(_noempty).." wykryto wartości z niepustymi polami: "..mw.text.listToText(tab_inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(_noempty))..", które powinny być niepuste.<br/>") end; end if czy_files then for _,_files in ipairs(files) do message:wikitext("Dla pola "..argName(_files).." wykryto nieoczekiwaną grafikę: " .. mw.text.listToText(files) .. ".") end; end; if czy_nakedurl then for _,_nakedurl in ipairs(nakedurl) do message:wikitext("Dla pola "..argName(_nakedurl).." wykryto gołe linki: " .. mw.text.listToText(nakedurl) .. ".") end; end; if czy_exturl then for _,_exturl in ipairs(exturl) do message:wikitext("Dla pola "..argName(_exturl).." wykryto linki zewnętrzne: " .. mw.text.listToText(exturl) .. ".") end; end; end; local warning; if(czy_warning)then warning = mw.html.create('span'); warning:css('color','red'); warning:css('white-space','pre-line'); warning:css('word-break','break-all'); warning:addClass("problemy"); end; if(templateName)then mw.logObject(templateName, "templateName") local dwukropek=mw.ustring.match(templateName,"^%s*:"); local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](templateName); local wywolanie;local wywolanie2; local szablonowe_modul=require("Module:Szablonowe"); if dwukropek or nazwa_przestrzeni_strony~="" then wywolanie=szablonowe_modul["PokazanieWywołaniaSzablonu"](templateName,tabelka_parametrow_rodzica); wywolanie2="{{"..templateName.."}}"; if(parametry_modul.CzyTak(category))then templateName=mw.ustring.gsub(templateName,"^%s*:",""); if(not czy_not_category)then if(typ)then category=mw.ustring.format(category,templateName,typ); else category=mw.ustring.format(category,templateName); end; category=pf:preprocess(category); end; class=mw.ustring.format(class,mw.ustring.gsub(templateName,"%s+","-")); end; else wywolanie=szablonowe_modul["PokazanieWywołaniaSzablonu"](templateName,tabelka_parametrow_rodzica); wywolanie2="{{"..templateName.."}}"; if(parametry_modul.CzyTak(category))then local bez_pierwszej_litery=mw.ustring.match(templateName,"^.(.*)"); local czy_jest_wielka_litera=mw.ustring.match(bez_pierwszej_litery,"%u"); local szablon; if(not czy_jest_wielka_litera)then szablon=mw.getContentLanguage():lcfirst(templateName);else szablon=templateName;end; if(not czy_not_category)then if(typ)then category=mw.ustring.format(category,szablon,typ); else category=mw.ustring.format(category,szablon); end; category=pf:preprocess(category); end; class=mw.ustring.format(class,mw.ustring.gsub(szablon,"%s+","-")); end; end if(czy_warning)then local strong = mw.html.create('strong'); strong:wikitext("Wywołanie ") local span = mw.html.create('span'); span:css('font-weight','normal'); span:css('white-space','pre'); span:css('color',"brown"); span:wikitext(wywolanie); local strong2=mw.html.create('strong'); strong2:wikitext(" z wykrytymi parametrami z nieprawidłościami:<br/>"); warning:node(strong); warning:node(span); warning:node(strong2); end; if(czy_informacje)then local strong = mw.html.create('strong'); strong:wikitext("Szablon "..wywolanie2.." z wykrytymi parametrami z nieprawidłościami:<br/>"); result:node(strong); end; end; local czy_usun_linkowanie=parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń linkowanie"]) or czy_dokumentacja; if(not czy_usun_linkowanie)then local _ = mw.title.new("Module:Sprawdź/Wywołanie funkcji/Parametry").id; end; if(czy_informacje or czy_warning)then message = tostring(message) end; if(czy_warning)then warning:wikitext(message); mw.addWarning(tostring(warning)); end; if czy_informacje and class then result:addClass(class) end if(czy_informacje)then result:wikitext(message);end; local str_category; if not czy_not_category and category then str_category=category; else str_category=""; end return nl..((czy_informacje)and tostring(result:allDone()) or "")..str_category..Szablon_z_sprawdz_parametry(); end, ["odn"] = function(frame) local pf = frame:getParent() local i = 1 local problems = false local yeardetected = false while true do local arg = pf.args[i] if not arg then problems = i == 1 and "brak argumentów" or false break end if (i > 5) or yeardetected then problems = "za dużo argumentów pozycyjnych" break end if #arg == 0 then problems = "pusty argument" break end if arg ~= mw.text.trim(arg) then problems = "nieoczekiwane odstępy na początku lub końcu argumentu" break end if string.match(arg, "^%d+%l?$") then yeardetected = true if i == 1 then problems = "rok musi być ostatnim parametrem po nazwiskach autorów" break end elseif string.match(arg, "^s[%-%.:]%s*%d+") then problems = "prawdopodobnie nieprawidłowo podany numer strony" break elseif string.match(arg, "%s%s") then problems = "podwójne odstępy" break elseif mw.ustring.match(arg, "^%a+%d") then if not mw.ustring.match(arg, "^[%u%d]+$") then problems = "prawdopodobnie sklejone argumenty (brak pionowej kreski)" break end elseif mw.ustring.match(arg, "^OdeB ") then -- [[Ordre de Bataille]] elseif mw.ustring.match(arg, "^%u%l+%u") then local justification = { ["De"] = true, ["Del"] = true, ["Di"] = true, ["Le"] = true, ["Mac"] = true, ["Mc"] = true, ["Te"] = true, -- TeSelle ["Sar"] = true, -- SarDesai ["Van"] = true, -- VanBuren ["La"] = true, -- LaSalle } if not justification[mw.ustring.match(arg, "^%u%l+")] then problems = "prawdopodobnie sklejone argumenty (brak pionowej kreski)" break end end i = i + 1 end if not problems then local odn = pf.args.odn if odn and ((#odn ~= 1) or (odn < "a") or (odn > "z")) then problems = "nieoczekiwany parametr odn" end end if not problems then local s = pf.args.s if s and string.match(s, "&[a-z]+;") then problems = "użyto encji HTML w numerze strony" end end if not problems then if pf.args.strona or pf.args.ss or pf.args.strony or pf.args.p or pf.args.page or pf.args.pp or pf.args.pages then problems = "przestarzały parametr z numerem strony" end end if not problems then return nil end local result = mw.html.create("span"):addClass("problemy-w-odn") local frame2=pf:newChild{args = {["obsługiwane jednostki jako nieopisowe strony"]="tak"}} local typ_jednostki=require("Module:Pudełko")["Typ jednostki 2"](frame2) if typ_jednostki=="artykuł" or typ_jednostki=="artykuł dla dzieci" or typ_jednostki=="strona użytkownika" or typ_jednostki=="strona brudnopisu projektu" then result:css("display", "none") else result:css("color", "red") end local typ; if(typ_jednostki=="artykuł")then typ="artykuły"; elseif(typ_jednostki=="artykuł dla dzieci")then typ="artykuły dla dzieci"; elseif(typ_jednostki=="strona użytkownika")then typ="strony użytkowników"; elseif(typ_jednostki=="strona brudnopisu projektu")then typ="strony brudnopisu projektu"; else typ="strony niepodręcznikowe"; end; local kategorie_modul=require("Module:Kategorie"); local str_kategoria=kategorie_modul.Kategoria{args={[1]="Szablon odn ("..typ..") do sprawdzenia"}}; result:wikitext(str_kategoria); result:wikitext("ODN: ", problems) return tostring(result) end, ["Wikidane"] = function(frame) local property = frame.args.cecha local field = frame.args.pole local value = frame.args[1] if not property or not field then return end if not value then value = frame:getParent().args[field] if not value or (#value == 0) then return end end local entity = mw.wikibase.getEntity() if not entity or not entity.claims or not entity.claims[property] then return end for i, v in ipairs(entity.claims[property]) do if v.mainsnak.snaktype == "value" then if value == v.mainsnak.datavalue.value then return end end end local template = frame:getParent():getTitle() local infobox = mw.ustring.match(template, "^Szablon:(.- infobox)$") return mw.ustring.format("[[Kategoria:%s – niezgodność w Wikidanych – %s – %s]]", infobox and "Infoboksy" or "Szablony", infobox or template, field) end, ["bez parametrów"] = function(frame) for k, v in pairs(frame:getParent().args) do return nil end return "tak" end, ["pole z hostem"] = function (frame) local host = frame.args.host if host and (#host > 0) then for k, v in pairs(frame:getParent().args) do local link = string.match(v, "[hH][tT][tT][pP][sS]?://[%S]+") if link then local uri = mw.uri.new(link) local valid, _ = mw.uri.validate(uri) if valid and uri.host and (#uri.host > 0) then if host == uri.host then mw.logObject({k, link}, "cały") return k end if #host < #uri.host then local s1 = '.'..host local s2 = string.sub(uri.host, -#s1) if s1 == s2 then mw.logObject({k, link}, "fragment") return k end end end end end end end, ["pola z autorami"] = function (frame) local result = {} local nazwisko = frame.args["nazwisko"] local imie = frame.args["imię"] local autor = frame.args["autor"] local link = frame.args["link"] local maxIndex = tonumber(frame.args["max"]) local prefix = frame.args["przed"] or "" local suffix = frame.args["po"] or "" for i = 1, maxIndex do local s = i == 1 and "" or tostring(i) local nin = string.gsub(nazwisko, '#', s) local iin = string.gsub(imie, '#', s) local ain = string.gsub(autor, '#', s) local lin = string.gsub(link, '#', s) local niv = frame:getParent().args[nin] local iiv = frame:getParent().args[iin] local aiv = frame:getParent().args[ain] local liv = frame:getParent().args[lin] local nis = niv and (#niv > 0) local iis = iiv and (#iiv > 0) local ais = aiv and (#aiv > 0) local lis = liv and (#liv > 0) local bad = (nis and ais) -- nazwisko -> zbędny autor or (nis and not iis) -- nazwisko bez imienia or (lis and not nis and not ais) -- tylko link or (iis and not nis) -- imię bez nazwiska if bad then table.insert(result, i) end end if #result > 0 then return prefix..mw.text.listToText(result)..suffix end end, ["pola z gołymi linkami"] = function (frame) local result = {} for k, v in pairs(frame:getParent().args) do local link = string.match(v, "^[hH][tT][tT][pP][sS]?://[%S]+") if link then local justified = frame.args[k] if not justified then mw.logObject(v,k) table.insert(result, '"'..k..'"') end end end return mw.text.listToText(result) end, ["uri"] = function(frame) mw.logObject(frame:getParent():getTitle(), "parent:title") _ = mw.title.new("Moduł:Sprawdź/deprecated/uri").id local link = frame.args["link"] local space = frame.args["spacja"] local strony_modul=require("Module:Strony"); local check = strony_modul.SprawdzanieURL(link) if check then return link end return (space and (check ~= nil)) and link or "" end, ["url"] = function(frame) local link = frame.args[1] local okText = frame.args[2] or "ok" local isValid = string.find(link, '{{{') == 1 or checkUri(link) if isValid then return okText end return "" end, ["lista nazw niepustych argumentów"] = function(frame) local argNames = {} for k, v in pairs(frame:getParent().args) do if #mw.text.trim(v) > 0 then table.insert(argNames, tostring(k)) end end return table.concat(argNames, ", ") end, } 51sna4yyei7beyvkinlfqh9svkd04o5 543798 543797 2026-05-22T01:05:38Z Persino 2851 543798 Scribunto text/plain return { ["NazwaKategoriiSprawdzaniaParametrówSzablonu"]=function() return "Szablony z dodatkową opcją sprawdzania parametrów"; end; ["UsuńKategorięSprawdzaniaParametrówSzablonu"]=function(frame) local wikikod=frame.args[1]; local sprawdz_modul=require("Module:Sprawdź"); local kategoria_sprawdzania_parametrow=sprawdz_modul["NazwaKategoriiSprawdzaniaParametrówSzablonu"](); local specjalne_modul=require("Module:Specjalne"); return specjalne_modul["UsuńŚciśleOkreśloneKategorie"]{[1]=wikikod,[2]=kategoria_sprawdzania_parametrow,} end; ["Porównaj"] = function(frame) local pf=frame:getParent(); local config = pf.args[""] or "" local brudnopis=pf.args["brudnopis"]; local options = mw.text.split(config, "|") local templateName = mw.text.trim(options[1]) if #templateName == 0 then local title = mw.title.getCurrentTitle() if title.namespace == 10 then templateName = mw.ustring.match(title.text, "^(.-)/opis") or mw.ustring.match(title.text, "^(.-)/test") or mw.ustring.match(title.text, "^(.-)/brudnopis") or title.text end if #templateName == 0 then mw.log("brak nazwy szablonu") return end end local i = 2 local showparams = true local showinfo = true local vertical = false local brudnopis; while i <= #options do local parametr,wartosc=mw.ustring.match(options[i],"^([^%=]*)%=(.*)$") if(not parametr)then local option = mw.text.trim(options[i]) if option == "bez wikikodu" then showparams = false elseif option == "bez opisu" then showinfo = false elseif option == "pionowo" then vertical = true end else local parametr=mw.text.trim(parametr) if(parametr=="brudnopis")then brudnopis=mw.text.trim(wartosc); end; end i = i + 1 end; local templateTitle = mw.title.new(templateName, 10) if templateTitle.id == 0 then mw.log("szablon '"..templateName.."' nie istnieje") return end local sandboxName = brudnopis or (templateName.."/brudnopis") local sandboxTitle = mw.title.new(sandboxName, 10) if sandboxTitle.id == 0 then mw.log("brudnopis '"..sandboxName.."' nie istnieje") return end local templateParams = {} local params = {} for k, v in pairs(pf.args) do if (k ~= "") then templateParams[k] = v table.insert(params, k) end end local result = {} table.insert(result, '<table style="width: 100%;">') if showparams and (#params > 0) then local compare = function(a, b) -- return a < b if (type(a) == "number") and (type(b) == "number") then return a < b end if (type(a) == "string") and (type(b) == "string") then return a < b end if (type(a) == "number") and (type(b) == "string") then return true end return false end table.sort(params, compare) table.insert(result, "<caption><code>&#x7B;&#x7B;") table.insert(result, templateName) for i, k in ipairs(params) do table.insert(result, " &#x7C; ") local p = mw.text.nowiki(tostring(k)) local v = mw.text.nowiki(templateParams[k]) table.insert(result, p) table.insert(result, " = ") table.insert(result, v) end table.insert(result, "&#x7D;&#x7D;</code></caption>") end local templateResult = frame:expandTemplate{ title=templateName, args=templateParams} local sandboxResult = frame:expandTemplate{ title=sandboxName, args=templateParams} if templateResult and string.match(templateResult, "^{|") then templateResult = "\n"..templateResult end if sandboxResult and string.match(sandboxResult, "^{|") then sandboxResult = "\n"..sandboxResult end if vertical and showinfo then table.insert(result, '<tr><th style="width: 15em">[[Szablon:') table.insert(result, templateName) table.insert(result, '|Szablon]]</th><td>') table.insert(result, templateResult) table.insert(result, '</td></tr><tr><th>[[Szablon:') table.insert(result, sandboxName) table.insert(result, '|Brudnopis szablonu]]</th><td>') table.insert(result, sandboxResult) table.insert(result, '</td></tr>') elseif vertical then table.insert(result, '<tr><td>') table.insert(result, templateResult) table.insert(result, '</td></tr><tr><td>') table.insert(result, sandboxResult) table.insert(result, '</td></tr>') else if showinfo then table.insert(result, '<tr><th style="width: 50%;">[[Szablon:') table.insert(result, templateName) table.insert(result, '|Szablon]]</th><th style="width: 50%;">[[Szablon:') table.insert(result, sandboxName) table.insert(result, '|Brudnopis szablonu]]</th></tr>') end table.insert(result, '<tr style="vertical-align: top;"><td>') table.insert(result, templateResult) table.insert(result, '</td><td>') table.insert(result, sandboxResult) table.insert(result, '</td></tr>') end table.insert(result, "</table>") return table.concat(result) end, ["Parametry"] = function(frame) local pf=frame:getParent(); local unknown = {} local invalid = {} local deprecated = {} local nakedurl = {} local exturl = {} local files = {}; local templateName; local function argName(arg) local span = mw.html.create('span'); span:css('white-space','pre'); span:wikitext(arg); return type(arg) ~= "string" and tostring(arg) or ('"'..tostring(span:allDone())..'"'); end local ramka_modul=require("Module:Ramka"); local tabelka1=ramka_modul.RozpakujArgumenty(frame.args["bez argumentów szablonu"]); local tabelka2=ramka_modul.RozpakujArgumenty(pf.args["bez argumentów szablonu"]); local parametry_modul=require("Module:Parametry"); local tabelka_bez_argumentow=parametry_modul["ŁączDwieTabele"](tabelka1,tabelka2) local required = {}; local repeated = {}; local konieczne = {}; local empty = {}; local noempty = {}; local tabelka_argumentow_systemowych_funkcji={ ["nazwa przestrzeni nazw"]="", ["nazwa jednostki"]="txt", ["typ jednostki"]="txt", ["tytuł przestrzeni nazw"]="", ["tytuł jednostki"]="txt", ["rodzaj jednostki"]="txt", ["strona główna dla dzieci"]="txt", ["strona główna projektu"]="txt", ---- Kategorie błędów; ["usuń dodatkowe informacje"]="", ["usuń ostrzeżenie"]="", ["usuń linkowanie"]="", ["bez dodatkowych sprawdzeń"]="", -- parametr systemowy szablonu do nieuruchamiania tej funkcji; ["dokumentacja"]="", -- parametr używany zamiast: "bez kategorii", "usuń dodatkowe informacje", "usuń ostrzeżenie" i "usuń linkowanie"; ["bez kategorii"]="", -- parametr systemowy szablonu, by kategorie się nie pojawiały ---- Koniec kategorii błędów; };--tabelka powyższa jest tabelką argumentów systemowych tej funkcji tego modułu; local tabelka_argumentow_dodatkowych_funkcji={ ["bez argumentów szablonu"]="", -- zawiera w sobie argumenty szablonu - oddzielone średnikem, których szablon nie może zawierać w wywołaniu; ["dodaj parametry pudełka"]="", -- dodaje parametry funkcji: Ogólne pudełko, modułu Pudełko; }; local tabelka_argumentow_systemowych_szablonu={ ["nazwij jednostką"]="", -- parametr systemowy funkcji mówiący, czy dowolną jednostkę nazwać po prostu jednostką; }; -- tabelka powyższa jest tabelką argumentów systemowych szablonu wywołującego tę funkcję tego modułu; local tabelka_parametrow_rodzica={}; local parametry_rodzica=parametry_modul.CzyTak(pf.args["potomek"])and pf.args["parametry rodzica"]; local szablonowe_modul=require("Module:Szablonowe"); if(parametry_rodzica)then tabelka_parametrow_rodzica=ramka_modul.RozpakujParametry(parametry_rodzica); templateName=pf.args["nazwa szablonu rodzica"] or szablonowe_modul.NazwaSzablonu(pf:getTitle()); else tabelka_parametrow_rodzica=pf.args; templateName=szablonowe_modul.NazwaSzablonu(pf:getTitle()); end; local czy_dodaj_parametry_pudelka=parametry_modul.CzyTak(frame.args["dodaj parametry pudełka"]); if(czy_dodaj_parametry_pudelka)then--dodaje parametry pudełka tabelka_argumentow_systemowych_szablonu["parametry pudełka"]=""; tabelka_argumentow_systemowych_szablonu["bez błędu"]=""; tabelka_argumentow_systemowych_szablonu["bez szczegółów"]=""; --dodaje parametry nienazwane i dla parametru: 1, którego ewentualną pierwszą nazwą jest: cel-- local maksimum=parametry_modul.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabelka_parametrow_rodzica); for i=1,maksimum,1 do if(i>1)then tabelka_argumentow_systemowych_szablonu[i]="txt!"; else tabelka_argumentow_systemowych_szablonu[1]="txt!;cel"; end; end; tabelka_argumentow_systemowych_szablonu["cel"]="txt!;1" end; local tablica_mikroszablonow={ ["{{+}}"]=";", ["{{!+}}"]="^", ["{{+!}}"]="$", }; tabelka_bez_argumentow=parametry_modul["UsuńElementyTabeli"](tabelka_bez_argumentow,tabelka_argumentow_systemowych_funkcji); tabelka_bez_argumentow=parametry_modul["UsuńElementyTabeli"](tabelka_bez_argumentow,tabelka_argumentow_systemowych_szablonu); local zmienna_sprawdzania_parametrow=pf.args["zmienna sprawdzania parametrów"]; local zmienne_dodane={}; if(zmienna_sprawdzania_parametrow)then local tabelka_zmiennych=mw.text.split(zmienna_sprawdzania_parametrow,";;",false); for poz,war in ipairs(tabelka_zmiennych)do local zmienna,wartosc=mw.ustring.match(war,"^%s*(.+)%s*=%s*(.*)%s*$") if((zmienna)and(wartosc))then zmienna=mw.text.trim(zmienna); wartosc=mw.text.trim(wartosc); zmienne_dodane[tonumber(zmienna) or mw.ustring.gsub(zmienna,"{{[^{}]+}}",tablica_mikroszablonow)]=wartosc; end; end; end; local zmienne_konieczne=function(tab,czy_odjete) for k, v in pairs(tab)do if(czy_odjete or ((not tabelka_argumentow_systemowych_funkcji[k]) and (not tabelka_argumentow_systemowych_szablonu[k]) and (not tabelka_bez_argumentow[k]) ) )then local wydziel=mw.ustring.match(v,"^%s*(^.*$%s*%??%s*!?)%s*"); if wydziel and mw.ustring.match(wydziel, "!%s*$") then required[k] = true elseif mw.ustring.match(mw.ustring.match(v,"^([^;]*!?)%s*"), "!%s*$") then required[k] = true end end; end; end; zmienne_konieczne(frame.args,false); zmienne_konieczne(zmienne_dodane,true); zmienne_konieczne(tabelka_argumentow_systemowych_funkcji,true); zmienne_konieczne(tabelka_argumentow_systemowych_szablonu,true); local emptyArg = false local obslugiwane=function(k) local kind=(not tabelka_argumentow_dodatkowych_funkcji[k]) and ((not tabelka_bez_argumentow[k]) and (tabelka_argumentow_systemowych_funkcji[k] or tabelka_argumentow_systemowych_szablonu[k] or zmienne_dodane[k] or frame.args[k])); return kind; end; local tab={}; local function inne_elementy_konieczne(k) local element=tab[k] if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((wartosc[1])and(not wartosc[2])and (not tabelka_parametrow_rodzica[name2]) and (obslugiwane(name2)))then return true; end; end; end; end; return false; end; local function tab_inne_elementy_konieczne(k) local element=tab[k] local tab_konieczne={}; if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((wartosc[1])and(not wartosc[2])and (not tabelka_parametrow_rodzica[name2]) and (obslugiwane(name2)))then table.insert(tab_konieczne,argName(tonumber(name2) or name2)); end; end; end; end; return tab_konieczne; end; local function inne_elementy_nieobslugiwane(k) local element=tab[k] if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(not wartosc[1])then if(not wartosc[2] and not wartosc[3])then if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]) and(((wartosc[4])and (#tabelka_parametrow_rodzica[name2]>0) )or((not wartosc[4])and(#tabelka_parametrow_rodzica[name2]==0))) )then return true; else return false; end; elseif(not wartosc[2] and wartosc[3])then return true; elseif(wartosc[2] and not wartosc[3])then if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]==0))then return true; else return false; end; end; end; end; end; end; return false; end; local function tab_inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) local element=tab[k]; local tab_konieczne_puste={}; if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((wartosc[4])and(not wartosc[2])and (not wartosc[3])and (tabelka_parametrow_rodzica[name2]) and(#tabelka_parametrow_rodzica[name2]==0) and (obslugiwane(name2)))then table.insert(tab_konieczne_puste,argName(tonumber(name2) or name2)); end; end; end; end; return tab_konieczne_puste; end; local function tab_inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) local element=tab[k]; local tab_konieczne_puste={}; if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((not wartosc[4])and(not wartosc[2])and (not wartosc[3])and (tabelka_parametrow_rodzica[name2]) and(#tabelka_parametrow_rodzica[name2]>0) and (obslugiwane(name2)))then table.insert(tab_konieczne_puste,argName(tonumber(name2) or name2)); end; end; end; end; return tab_konieczne_puste; end; local function inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) local element=tab[k]; local czy=false; if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(wartosc[1])then if((wartosc[4])and(not wartosc[2])and(not wartosc[3]))then if((obslugiwane(name2))and((tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]==0)))then return true; end; end; end; end; end; end; return czy; end; local function inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) local element=tab[k]; local czy=false; if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(wartosc[1])then if((not wartosc[4])and(not wartosc[2])and(not wartosc[3]))then if((obslugiwane(name2))and((tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]>0)))then return true; end; end; end; end; end; end; return czy; end; local function inne_elementy_powtarzane_i_z_mozliwymi_dopuszczalnymi_pustymi_wartosciami(k) local element=tab[k]; local czy=true; if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(wartosc[1])then if(wartosc[2])then if(not wartosc[3])then if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]))then if(#tabelka_parametrow_rodzica[name2]==0)then return false; else return true; end; end; elseif((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]))then return true; end; end; end; end; end; end; return false; end; local strony_modul=require("Module:Strony"); local NumerPlik=function(k,v,zapytajnik,tryb) local czy_zapytajnik=(zapytajnik~="?"); local zero=(czy_zapytajnik and(#v==0)); if(zero)then table.insert(invalid, argName(k)); elseif((czy_zapytajnik)or((not czy_zapytajnik)and(#v~=0)))then local u=strony_modul.SprawdzanieRozmiaruPliku{rozmiar=v,tryb=tryb,}; if not u then table.insert(invalid,argName(k)) end; end; end; local GrafikaPlik=function(k,v,zapytajnik,przestrzen) local czy_zapytajnik=(zapytajnik~="?"); local zero=(czy_zapytajnik and(#v==0)); if(zero)then table.insert(invalid, argName(k)) elseif((czy_zapytajnik)or((not czy_zapytajnik)and(#v~=0)))then if strony_modul.ZnajdowanieNormalnychStronHttp(v) then table.insert(nakedurl, argName(k)) else local g = strony_modul.SprawdzanieNazwyPlikowe{nazwa = v, ["przestrzeń"]=przestrzen, }; if not g then table.insert(invalid, argName(k)) end end; end; end; for k, v in pairs(tabelka_parametrow_rodzica) do required[k] = false local kind=obslugiwane(k); local zapytajnik; local wykrzyknik; if (kind) then local kind2;local zmienne; kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*(!?^.*$)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$"); if((not kind2)or(not zmienne)or (not zapytajnik))then kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*([^;]-)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$"); end; if((kind2)and(zmienne))then local tab2=mw.text.split(mw.text.trim(zmienne),"%s*;%s*",false); tab[k]={}; for _,value in ipairs(tab2) do value=mw.text.trim(value); local indeks=tonumber(value) or mw.ustring.gsub(value,"{{[^{}]+}}",tablica_mikroszablonow); local indeks2,wykrzyknik=mw.ustring.match(tostring(indeks),"^%s*(.*)%s*(!!?)%s*$"); local indeks3,zapytajnik=mw.ustring.match(tostring(indeks2 or indeks),"^%s*(.*)%s*(%?)%s*$"); local inne,indeks4=mw.ustring.match(tostring(indeks3 or indeks2 or indeks),"^%s*(!)%s*(.*)%s*$"); tab[k][indeks4 or indeks3 or indeks2 or indeks]={((not inne) and true or false), ((not wykrzyknik) and true or false), ((not zapytajnik) and true or false), ((not (wykrzyknik=="!!")) and true or false), }; end; kind=mw.ustring.gsub(kind2,"{{[^{}]+}}",tablica_mikroszablonow); else kind2,zapytajnik,wykrzyknik=mw.ustring.match(kind,"^%s*(!?%s*^.*$)%s*(%??)%s*(!?)%s*$"); if(not kind2)or(not zapytajnik)then kind2,zapytajnik,wykrzyknik=mw.ustring.match(kind,"^%s*(.-)%s*(%??)%s*(!?)%s*$"); end; kind=mw.ustring.gsub(kind2,"{{[^{}]+}}",tablica_mikroszablonow); end; end; kind=kind and mw.text.trim(kind); if k == "" then emptyArg = v elseif not kind or inne_elementy_nieobslugiwane(k) then table.insert(unknown, argName(k)) elseif inne_elementy_powtarzane_i_z_mozliwymi_dopuszczalnymi_pustymi_wartosciami(k) then table.insert(repeated, argName(k)); elseif inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) then table.insert(empty, k); elseif inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) then table.insert(noempty, k); elseif inne_elementy_konieczne(k) then table.insert(konieczne, k); elseif (kind == "num") then if(zapytajnik~="?")then local n = tonumber(v) if not n then table.insert(invalid, argName(k)) end else local n = (#v == 0) or tonumber(v) if not n then table.insert(invalid, argName(k)) end end; elseif (kind == "uri") then if(zapytajnik~="?")then local u = strony_modul.SprawdzanieURL(v) if not u then table.insert(invalid, argName(k)) end else local u = (#v == 0) or strony_modul.SprawdzanieURL(v) if not u then table.insert(invalid, argName(k)) end end; elseif(kind=="txt")then if(zapytajnik~="?")then if #v == 0 then table.insert(invalid, argName(k)) end; end; elseif (kind=="all")then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) end; end; end; elseif(kind=="grafika")then GrafikaPlik(k,v,zapytajnik,false); elseif(kind=="grafika*")then GrafikaPlik(k,v,zapytajnik,true); elseif (kind == "text") then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u= strony_modul.ZnajdowaniePlikowe(v); if(u)then table.insert(files, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieJakikolwiekStronHttp(v) if(u)then table.insert(exturl, argName(k)) end; end; end; end; end; elseif(kind == "text-img")then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieJakikolwiekStronHttp(v) if(u)then table.insert(exturl, argName(k)) end; end; end; end; elseif((kind == "text-link")or(kind == "tekst"))then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u= strony_modul.ZnajdowaniePlikowe(v); if(u)then table.insert(files, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) end; end; end; end; elseif (kind == "old") then table.insert(deprecated, argName(k)); elseif(kind == "uri*")then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u = strony_modul.SprawdzanieURL(v) or strony_modul.SprawdzanieURL(mw.text.unstripNoWiki(v)) if not u then table.insert(invalid, argName(k)) end end; elseif(kind=="rozmiar")then NumerPlik(k,v,zapytajnik,false); elseif(kind=="rozmiar*")then NumerPlik(k,v,zapytajnik,true); elseif(kind~="")then local function regex(kind) local tab_pattern_wykrzyknik_lub_nie_wzorow={}; local pattern_poczatek=kind; local function funkcja_zbierajacy_dane_patternow(pattern_analiza_wzorow_koniunkcji) local tab_split_pattern_koniunkcji={}; local pattern_poczatek=pattern_analiza_wzorow_koniunkcji; repeat local pattern_poczatek_2,pattern_koniec=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*&%s*(.*)%s*$"); if(pattern_poczatek_2 and pattern_koniec)then table.insert(tab_split_pattern_koniunkcji,pattern_poczatek_2); pattern_poczatek=pattern_koniec; else local pattern_caly=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*$"); if pattern_caly then table.insert(tab_split_pattern_koniunkcji,pattern_caly); end; end; until not pattern_poczatek_2; local tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji={}; for _,wartosc_elementu_koniunkcji in ipairs(tab_split_pattern_koniunkcji)do local wykrzyknik,pattern=mw.ustring.match(wartosc_elementu_koniunkcji,"^%s*(!?)%s*(^.-$)%s*$"); table.insert(tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji,{[1]=pattern,[2]=wykrzyknik}); end; table.insert(tab_pattern_wykrzyknik_lub_nie_wzorow,tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji); end; repeat local pattern_poczatek_2,pattern_koniec=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*|%s*(.*)%s*$"); if pattern_poczatek_2 and pattern_koniec then funkcja_zbierajacy_dane_patternow(pattern_poczatek_2); pattern_poczatek=pattern_koniec; else local pattern_caly=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*$"); if(pattern_caly)then funkcja_zbierajacy_dane_patternow(pattern_caly); end; break; end; until not pattern_poczatek_2; if(#tab_pattern_wykrzyknik_lub_nie_wzorow>0)then for _ , tab_pattern_koniunkcja in ipairs(tab_pattern_wykrzyknik_lub_nie_wzorow) do local czy=true; for _,tab_pattern_elementy_koniunkcji in ipairs(tab_pattern_koniunkcja)do local pattern=tab_pattern_elementy_koniunkcji[1]; local wykrzyknik_negujacy_pattern=(tab_pattern_elementy_koniunkcji[2]=="!"); if(pattern)then if((not wykrzyknik_negujacy_pattern and mw.ustring.match(v, pattern))or(wykrzyknik_negujacy_pattern and not mw.ustring.match(v, pattern)))then czy=czy and true; if(not czy)then break; end; else czy=false; break; end; end end; if(czy)then return true;end; end; return false; end; return nil; end; if((zapytajnik)and((zapytajnik=="")or((zapytajnik=="?")and(#v>0))))then local wynik=regex(kind); if((type(wynik)~="nil")and(not wynik))then table.insert(invalid, argName(k)); elseif (#v > 0) and strony_modul.SprawdzanieURL(v) then table.insert(nakedurl, argName(k)) elseif strony_modul.ZnajdowanieNormalnychStronHttp(v) then table.insert(nakedurl, argName(k)) end; end; end end; local missing = {} local function inny_element2(k) local element=tab[k] if(element)then for name2,wartosc in pairs(element)do if((wartosc[2])and(k~=name2))then if(tabelka_parametrow_rodzica[name2] and obslugiwane(name2))then return true; end; end; end; end; for name,value in pairs(tab)do for name2,wartosc in pairs(value)do if((wartosc[2])and(name2==k)and(name2~=name))then if((tabelka_parametrow_rodzica[name])and obslugiwane(name))then return true; end; end; end; end; return false; end; for k, v in pairs(required) do if v and not inny_element2(k) then table.insert(missing, argName(k)) end end local czy_dokumentacja=parametry_modul.CzyTak(tabelka_parametrow_rodzica["dokumentacja"]); local czy_not_category=parametry_modul.CzyTak(tabelka_parametrow_rodzica["bez kategorii"]) or czy_dokumentacja; local function Szablon_z_sprawdz_parametry() if(czy_not_category)then return "";end; local nazwy_modul=require("Module:Nazwy"); local nazwa_szablonu=szablonowe_modul.NazwaSzablonu(nazwy_modul["PEŁNANAZWASTRONY"]()); if(templateName==nazwa_szablonu)then local sprawdz_modul=require("Module:Sprawdź"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); return "[["..nazwy_np_modul.Category..":"..sprawdz_modul["NazwaKategoriiSprawdzaniaParametrówSzablonu"]().."|"..nazwy_modul["NAZWASTRONY"]().."]]"; end; return ""; end; local czy_missing=parametry_modul["CzySąElementyNumerowaneTablicy"](missing); local czy_konieczne=parametry_modul["CzySąElementyNumerowaneTablicy"](konieczne); local czy_unknown=parametry_modul["CzySąElementyNumerowaneTablicy"](unknown); local czy_invalid=parametry_modul["CzySąElementyNumerowaneTablicy"](invalid); local czy_deprecated=parametry_modul["CzySąElementyNumerowaneTablicy"](deprecated); local czy_repeated=parametry_modul["CzySąElementyNumerowaneTablicy"](repeated); local czy_empty=parametry_modul["CzySąElementyNumerowaneTablicy"](empty); local czy_noempty=parametry_modul["CzySąElementyNumerowaneTablicy"](noempty); local czy_files=parametry_modul["CzySąElementyNumerowaneTablicy"](files); local czy_nakedurl=parametry_modul["CzySąElementyNumerowaneTablicy"](nakedurl); local czy_exturl=parametry_modul["CzySąElementyNumerowaneTablicy"](exturl); if ((not czy_missing) and (not czy_konieczne) and (not czy_unknown) and (not czy_invalid) and (not czy_deprecated) and (not czy_repeated) and (not czy_empty) and (not czy_noempty) and (not czy_files) and (not czy_nakedurl) and (not czy_exturl) and (not emptyArg)) then return Szablon_z_sprawdz_parametry(); end local czy_informacje=not (parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń dodatkowe informacje"]) or czy_dokumentacja); local result; if(czy_informacje)then result=mw.html.create("span") result:addClass("problemy"); result:addClass("error"); result:css('white-space','pre-line'); result:css('font-size','unset'); end; local typ; local typ_jednostki; local czy_nazwij_jednostka=parametry_modul.CzyTak(tabelka_parametrow_rodzica["nazwij jednostką"]); ----[""]=?--- local config = frame.args[""] local class, space, category = string.match(config or "", "^%s*(%S+)(%s+)(.-)%s*$") local nl = space and string.match(space, "\n") or "" class = class or config ---- if(((czy_informacje)and(not czy_nazwij_jednostka))or((category)and((not czy_not_category)and(mw.ustring.match(category,"%%s.-%%s")))))then --local frame2=pf:newChild{args = {["obsługiwane jednostki jako nieopisowe strony"]="tak"}} local pudelko_modul=require("Module:Pudełko"); typ_jednostki=pudelko_modul["Typ jednostki 2"]{args={ ["obsługiwane jednostki jako nieopisowe strony"]="tak", ["nazwa przestrzeni nazw"]=pf and pf.args["tytuł przestrzeni nazw"] or frame.args["tytuł przestrzeni nazw"], ["nazwa jednostki"]=pf and pf.args["tytuł jednostki"] or frame.args["tytuł jednostki"], ["typ jednostki"]=pf and pf.args["rodzaj jednostki"] or frame.args["rodzaj jednostki"], },}; if(typ_jednostki=="artykuł")then typ="(artykuły)"; elseif(typ_jednostki=="artykuł dla dzieci")then typ="(artykuły dla dzieci)"; elseif(typ_jednostki=="strona użytkownika")then typ="(strony użytkowników)"; elseif(typ_jednostki=="strona brudnopisu projektu")then typ="(strony brudnopisu projektu)"; else typ="(strony niepodręcznikowe)"; end; else typ=nil; end; if(czy_informacje)then if(not czy_nazwij_jednostka)then if typ_jednostki=="artykuł" or typ_jednostki=="artykuł dla dzieci" or typ_jednostki=="strona użytkownika" or typ_jednostki=="strona brudnopisu projektu" then result:css("display", "none"); result:css("color","black"); else result:css("color", "red") end else result:css("color", "red") end; end; local czy_warning=not (parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń ostrzeżenie"]) or czy_dokumentacja); local message; if(czy_informacje or czy_warning)then message=mw.html.create() if emptyArg then message:wikitext("Podano parametr o nazwie pustej o wartosci: |=", emptyArg, "|.<br/>") end if czy_missing then message:wikitext("Brakujące pola, które powinny być koniecznie podane: ", mw.text.listToText(missing), ".<br/>") end if czy_konieczne then for _,_konieczne in ipairs(konieczne) do message:wikitext("Konieczne pola, które powinny być używane z innymi parametrami, dla "..argName(_konieczne)..": "..mw.text.listToText(tab_inne_elementy_konieczne(_konieczne))..".<br/>") end; end if czy_invalid then message:wikitext("O nieprawidłowej wartości pola: ", mw.text.listToText(invalid), ".<br/>") end if czy_unknown then message:wikitext("Nieznane pola używane przez szablon: ", mw.text.listToText(unknown), ".<br/>") end if czy_deprecated then message:wikitext("Przestarzałe pola, które są obsługiwane, ale których nie powinno się raczej używać: ", mw.text.listToText(deprecated), ".<br/>") end if czy_repeated then message:wikitext("Pola o odpowiedniej podanej wartości, które nie powinne być używane z innymi parametrami lub z tymi podanymi: ", mw.text.listToText(repeated), ".<br/>") end if czy_empty then for _,_empty in ipairs(empty) do message:wikitext("Dla pola "..argName(_empty).." wykryto wartości z pustymi polami: "..mw.text.listToText(tab_inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(_empty))..", które powinny być niepuste.<br/>") end; end if czy_noempty then for _,_noempty in ipairs(noempty) do message:wikitext("Dla pola "..argName(_noempty).." wykryto wartości z niepustymi polami: "..mw.text.listToText(tab_inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(_noempty))..", które powinny być niepuste.<br/>") end; end if czy_files then for _,_files in ipairs(files) do message:wikitext("Dla pola "..argName(_files).." wykryto nieoczekiwaną grafikę: " .. mw.text.listToText(files) .. ".") end; end; if czy_nakedurl then for _,_nakedurl in ipairs(nakedurl) do message:wikitext("Dla pola "..argName(_nakedurl).." wykryto gołe linki: " .. mw.text.listToText(nakedurl) .. ".") end; end; if czy_exturl then for _,_exturl in ipairs(exturl) do message:wikitext("Dla pola "..argName(_exturl).." wykryto linki zewnętrzne: " .. mw.text.listToText(exturl) .. ".") end; end; end; local warning; if(czy_warning)then warning = mw.html.create('span'); warning:css('color','red'); warning:css('white-space','pre-line'); warning:css('word-break','break-all'); warning:addClass("problemy"); end; if(templateName)then mw.logObject(templateName, "templateName") local dwukropek=mw.ustring.match(templateName,"^%s*:"); local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](templateName); local wywolanie;local wywolanie2; local szablonowe_modul=require("Module:Szablonowe"); if dwukropek or nazwa_przestrzeni_strony~="" then wywolanie=szablonowe_modul["PokazanieWywołaniaSzablonu"](templateName,tabelka_parametrow_rodzica); wywolanie2="{{"..templateName.."}}"; if(parametry_modul.CzyTak(category))then templateName=mw.ustring.gsub(templateName,"^%s*:",""); if(not czy_not_category)then if(typ)then category=mw.ustring.format(category,templateName,typ); else category=mw.ustring.format(category,templateName); end; category=pf:preprocess(category); end; class=mw.ustring.format(class,mw.ustring.gsub(templateName,"%s+","-")); end; else wywolanie=szablonowe_modul["PokazanieWywołaniaSzablonu"](templateName,tabelka_parametrow_rodzica); wywolanie2="{{"..templateName.."}}"; if(parametry_modul.CzyTak(category))then local bez_pierwszej_litery=mw.ustring.match(templateName,"^.(.*)"); local czy_jest_wielka_litera=mw.ustring.match(bez_pierwszej_litery,"%u"); local szablon; if(not czy_jest_wielka_litera)then szablon=mw.getContentLanguage():lcfirst(templateName);else szablon=templateName;end; if(not czy_not_category)then if(typ)then category=mw.ustring.format(category,szablon,typ); else category=mw.ustring.format(category,szablon); end; category=pf:preprocess(category); end; class=mw.ustring.format(class,mw.ustring.gsub(szablon,"%s+","-")); end; end if(czy_warning)then local strong = mw.html.create('strong'); strong:wikitext("Wywołanie ") local span = mw.html.create('span'); span:css('font-weight','normal'); span:css('white-space','pre'); span:css('color',"brown"); span:wikitext(wywolanie); local strong2=mw.html.create('strong'); strong2:wikitext(" z wykrytymi parametrami z nieprawidłościami:<br/>"); warning:node(strong); warning:node(span); warning:node(strong2); end; if(czy_informacje)then local strong = mw.html.create('strong'); strong:wikitext("Szablon "..wywolanie2.." z wykrytymi parametrami z nieprawidłościami:<br/>"); result:node(strong); end; end; local czy_usun_linkowanie=parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń linkowanie"]) or czy_dokumentacja; if(not czy_usun_linkowanie)then local _ = mw.title.new("Module:Sprawdź/Wywołanie funkcji/Parametry").id; end; if(czy_informacje or czy_warning)then message = tostring(message) end; if(czy_warning)then warning:wikitext(message); mw.addWarning(tostring(warning)); end; if czy_informacje and class then result:addClass(class) end if(czy_informacje)then result:wikitext(message);end; local str_category; if not czy_not_category and category then str_category=category; else str_category=""; end return nl..((czy_informacje)and tostring(result:allDone()) or "")..str_category..Szablon_z_sprawdz_parametry(); end, ["odn"] = function(frame) local pf = frame:getParent() local i = 1 local problems = false local yeardetected = false while true do local arg = pf.args[i] if not arg then problems = i == 1 and "brak argumentów" or false break end if (i > 5) or yeardetected then problems = "za dużo argumentów pozycyjnych" break end if #arg == 0 then problems = "pusty argument" break end if arg ~= mw.text.trim(arg) then problems = "nieoczekiwane odstępy na początku lub końcu argumentu" break end if string.match(arg, "^%d+%l?$") then yeardetected = true if i == 1 then problems = "rok musi być ostatnim parametrem po nazwiskach autorów" break end elseif string.match(arg, "^s[%-%.:]%s*%d+") then problems = "prawdopodobnie nieprawidłowo podany numer strony" break elseif string.match(arg, "%s%s") then problems = "podwójne odstępy" break elseif mw.ustring.match(arg, "^%a+%d") then if not mw.ustring.match(arg, "^[%u%d]+$") then problems = "prawdopodobnie sklejone argumenty (brak pionowej kreski)" break end elseif mw.ustring.match(arg, "^OdeB ") then -- [[Ordre de Bataille]] elseif mw.ustring.match(arg, "^%u%l+%u") then local justification = { ["De"] = true, ["Del"] = true, ["Di"] = true, ["Le"] = true, ["Mac"] = true, ["Mc"] = true, ["Te"] = true, -- TeSelle ["Sar"] = true, -- SarDesai ["Van"] = true, -- VanBuren ["La"] = true, -- LaSalle } if not justification[mw.ustring.match(arg, "^%u%l+")] then problems = "prawdopodobnie sklejone argumenty (brak pionowej kreski)" break end end i = i + 1 end if not problems then local odn = pf.args.odn if odn and ((#odn ~= 1) or (odn < "a") or (odn > "z")) then problems = "nieoczekiwany parametr odn" end end if not problems then local s = pf.args.s if s and string.match(s, "&[a-z]+;") then problems = "użyto encji HTML w numerze strony" end end if not problems then if pf.args.strona or pf.args.ss or pf.args.strony or pf.args.p or pf.args.page or pf.args.pp or pf.args.pages then problems = "przestarzały parametr z numerem strony" end end if not problems then return nil end local result = mw.html.create("span"):addClass("problemy-w-odn") local frame2=pf:newChild{args = {["obsługiwane jednostki jako nieopisowe strony"]="tak"}} local typ_jednostki=require("Module:Pudełko")["Typ jednostki 2"](frame2) if typ_jednostki=="artykuł" or typ_jednostki=="artykuł dla dzieci" or typ_jednostki=="strona użytkownika" or typ_jednostki=="strona brudnopisu projektu" then result:css("display", "none") else result:css("color", "red") end local typ; if(typ_jednostki=="artykuł")then typ="artykuły"; elseif(typ_jednostki=="artykuł dla dzieci")then typ="artykuły dla dzieci"; elseif(typ_jednostki=="strona użytkownika")then typ="strony użytkowników"; elseif(typ_jednostki=="strona brudnopisu projektu")then typ="strony brudnopisu projektu"; else typ="strony niepodręcznikowe"; end; local kategorie_modul=require("Module:Kategorie"); local str_kategoria=kategorie_modul.Kategoria{args={[1]="Szablon odn ("..typ..") do sprawdzenia"}}; result:wikitext(str_kategoria); result:wikitext("ODN: ", problems) return tostring(result) end, ["Wikidane"] = function(frame) local property = frame.args.cecha local field = frame.args.pole local value = frame.args[1] if not property or not field then return end if not value then value = frame:getParent().args[field] if not value or (#value == 0) then return end end local entity = mw.wikibase.getEntity() if not entity or not entity.claims or not entity.claims[property] then return end for i, v in ipairs(entity.claims[property]) do if v.mainsnak.snaktype == "value" then if value == v.mainsnak.datavalue.value then return end end end local template = frame:getParent():getTitle() local infobox = mw.ustring.match(template, "^Szablon:(.- infobox)$") return mw.ustring.format("[[Kategoria:%s – niezgodność w Wikidanych – %s – %s]]", infobox and "Infoboksy" or "Szablony", infobox or template, field) end, ["bez parametrów"] = function(frame) for k, v in pairs(frame:getParent().args) do return nil end return "tak" end, ["pole z hostem"] = function (frame) local host = frame.args.host if host and (#host > 0) then for k, v in pairs(frame:getParent().args) do local link = string.match(v, "[hH][tT][tT][pP][sS]?://[%S]+") if link then local uri = mw.uri.new(link) local valid, _ = mw.uri.validate(uri) if valid and uri.host and (#uri.host > 0) then if host == uri.host then mw.logObject({k, link}, "cały") return k end if #host < #uri.host then local s1 = '.'..host local s2 = string.sub(uri.host, -#s1) if s1 == s2 then mw.logObject({k, link}, "fragment") return k end end end end end end end, ["pola z autorami"] = function (frame) local result = {} local nazwisko = frame.args["nazwisko"] local imie = frame.args["imię"] local autor = frame.args["autor"] local link = frame.args["link"] local maxIndex = tonumber(frame.args["max"]) local prefix = frame.args["przed"] or "" local suffix = frame.args["po"] or "" for i = 1, maxIndex do local s = i == 1 and "" or tostring(i) local nin = string.gsub(nazwisko, '#', s) local iin = string.gsub(imie, '#', s) local ain = string.gsub(autor, '#', s) local lin = string.gsub(link, '#', s) local niv = frame:getParent().args[nin] local iiv = frame:getParent().args[iin] local aiv = frame:getParent().args[ain] local liv = frame:getParent().args[lin] local nis = niv and (#niv > 0) local iis = iiv and (#iiv > 0) local ais = aiv and (#aiv > 0) local lis = liv and (#liv > 0) local bad = (nis and ais) -- nazwisko -> zbędny autor or (nis and not iis) -- nazwisko bez imienia or (lis and not nis and not ais) -- tylko link or (iis and not nis) -- imię bez nazwiska if bad then table.insert(result, i) end end if #result > 0 then return prefix..mw.text.listToText(result)..suffix end end, ["pola z gołymi linkami"] = function (frame) local result = {} for k, v in pairs(frame:getParent().args) do local link = string.match(v, "^[hH][tT][tT][pP][sS]?://[%S]+") if link then local justified = frame.args[k] if not justified then mw.logObject(v,k) table.insert(result, '"'..k..'"') end end end return mw.text.listToText(result) end, ["uri"] = function(frame) mw.logObject(frame:getParent():getTitle(), "parent:title") _ = mw.title.new("Moduł:Sprawdź/deprecated/uri").id local link = frame.args["link"] local space = frame.args["spacja"] local strony_modul=require("Module:Strony"); local check = strony_modul.SprawdzanieURL(link) if check then return link end return (space and (check ~= nil)) and link or "" end, ["url"] = function(frame) local link = frame.args[1] local okText = frame.args[2] or "ok" local isValid = string.find(link, '{{{') == 1 or checkUri(link) if isValid then return okText end return "" end, ["lista nazw niepustych argumentów"] = function(frame) local argNames = {} for k, v in pairs(frame:getParent().args) do if #mw.text.trim(v) > 0 then table.insert(argNames, tostring(k)) end end return table.concat(argNames, ", ") end, } 4htmi80rwpm014a062r120gsnttoumd 543802 543798 2026-05-22T01:44:51Z Persino 2851 543802 Scribunto text/plain return { ["NazwaKategoriiSprawdzaniaParametrówSzablonu"]=function() return "Szablony z dodatkową opcją sprawdzania parametrów"; end; ["UsuńKategorięSprawdzaniaParametrówSzablonu"]=function(frame) local wikikod=frame.args[1]; local sprawdz_modul=require("Module:Sprawdź"); local kategoria_sprawdzania_parametrow=sprawdz_modul["NazwaKategoriiSprawdzaniaParametrówSzablonu"](); local specjalne_modul=require("Module:Specjalne"); return specjalne_modul["UsuńŚciśleOkreśloneKategorie"]{[1]=wikikod,[2]=kategoria_sprawdzania_parametrow,} end; ["Porównaj"] = function(frame) local pf=frame:getParent(); local config = pf.args[""] or "" local brudnopis=pf.args["brudnopis"]; local options = mw.text.split(config, "|") local templateName = mw.text.trim(options[1]) if #templateName == 0 then local title = mw.title.getCurrentTitle() if title.namespace == 10 then templateName = mw.ustring.match(title.text, "^(.-)/opis") or mw.ustring.match(title.text, "^(.-)/test") or mw.ustring.match(title.text, "^(.-)/brudnopis") or title.text end if #templateName == 0 then mw.log("brak nazwy szablonu") return end end local i = 2 local showparams = true local showinfo = true local vertical = false local brudnopis; while i <= #options do local parametr,wartosc=mw.ustring.match(options[i],"^([^%=]*)%=(.*)$") if(not parametr)then local option = mw.text.trim(options[i]) if option == "bez wikikodu" then showparams = false elseif option == "bez opisu" then showinfo = false elseif option == "pionowo" then vertical = true end else local parametr=mw.text.trim(parametr) if(parametr=="brudnopis")then brudnopis=mw.text.trim(wartosc); end; end i = i + 1 end; local templateTitle = mw.title.new(templateName, 10) if templateTitle.id == 0 then mw.log("szablon '"..templateName.."' nie istnieje") return end local sandboxName = brudnopis or (templateName.."/brudnopis") local sandboxTitle = mw.title.new(sandboxName, 10) if sandboxTitle.id == 0 then mw.log("brudnopis '"..sandboxName.."' nie istnieje") return end local templateParams = {} local params = {} for k, v in pairs(pf.args) do if (k ~= "") then templateParams[k] = v table.insert(params, k) end end local result = {} table.insert(result, '<table style="width: 100%;">') if showparams and (#params > 0) then local compare = function(a, b) -- return a < b if (type(a) == "number") and (type(b) == "number") then return a < b end if (type(a) == "string") and (type(b) == "string") then return a < b end if (type(a) == "number") and (type(b) == "string") then return true end return false end table.sort(params, compare) table.insert(result, "<caption><code>&#x7B;&#x7B;") table.insert(result, templateName) for i, k in ipairs(params) do table.insert(result, " &#x7C; ") local p = mw.text.nowiki(tostring(k)) local v = mw.text.nowiki(templateParams[k]) table.insert(result, p) table.insert(result, " = ") table.insert(result, v) end table.insert(result, "&#x7D;&#x7D;</code></caption>") end local templateResult = frame:expandTemplate{ title=templateName, args=templateParams} local sandboxResult = frame:expandTemplate{ title=sandboxName, args=templateParams} if templateResult and string.match(templateResult, "^{|") then templateResult = "\n"..templateResult end if sandboxResult and string.match(sandboxResult, "^{|") then sandboxResult = "\n"..sandboxResult end if vertical and showinfo then table.insert(result, '<tr><th style="width: 15em">[[Szablon:') table.insert(result, templateName) table.insert(result, '|Szablon]]</th><td>') table.insert(result, templateResult) table.insert(result, '</td></tr><tr><th>[[Szablon:') table.insert(result, sandboxName) table.insert(result, '|Brudnopis szablonu]]</th><td>') table.insert(result, sandboxResult) table.insert(result, '</td></tr>') elseif vertical then table.insert(result, '<tr><td>') table.insert(result, templateResult) table.insert(result, '</td></tr><tr><td>') table.insert(result, sandboxResult) table.insert(result, '</td></tr>') else if showinfo then table.insert(result, '<tr><th style="width: 50%;">[[Szablon:') table.insert(result, templateName) table.insert(result, '|Szablon]]</th><th style="width: 50%;">[[Szablon:') table.insert(result, sandboxName) table.insert(result, '|Brudnopis szablonu]]</th></tr>') end table.insert(result, '<tr style="vertical-align: top;"><td>') table.insert(result, templateResult) table.insert(result, '</td><td>') table.insert(result, sandboxResult) table.insert(result, '</td></tr>') end table.insert(result, "</table>") return table.concat(result) end, ["Parametry"] = function(frame) local pf=frame:getParent(); local unknown = {} local invalid = {} local deprecated = {} local nakedurl = {} local exturl = {} local files = {}; local templateName; local function argName(arg) local span = mw.html.create('span'); span:css('white-space','pre'); span:wikitext(arg); return type(arg) ~= "string" and tostring(arg) or ('"'..tostring(span:allDone())..'"'); end local ramka_modul=require("Module:Ramka"); local tabelka1=ramka_modul.RozpakujArgumenty(frame.args["bez argumentów szablonu"]); local tabelka2=ramka_modul.RozpakujArgumenty(pf.args["bez argumentów szablonu"]); local parametry_modul=require("Module:Parametry"); local tabelka_bez_argumentow=parametry_modul["ŁączDwieTabele"](tabelka1,tabelka2) local required = {}; local repeated = {}; local konieczne = {}; local empty = {}; local noempty = {}; local tabelka_argumentow_systemowych_funkcji={ ["nazwa przestrzeni nazw"]="", ["nazwa jednostki"]="txt", ["typ jednostki"]="txt", ["tytuł przestrzeni nazw"]="", ["tytuł jednostki"]="txt", ["rodzaj jednostki"]="txt", ["strona główna dla dzieci"]="txt", ["strona główna projektu"]="txt", ---- Kategorie błędów; ["usuń dodatkowe informacje"]="", ["usuń ostrzeżenie"]="", ["usuń linkowanie"]="", ["bez dodatkowych sprawdzeń"]="", -- parametr systemowy szablonu do nieuruchamiania tej funkcji; ["dokumentacja"]="", -- parametr używany zamiast: "bez kategorii", "usuń dodatkowe informacje", "usuń ostrzeżenie" i "usuń linkowanie"; ["bez kategorii"]="", -- parametr systemowy szablonu, by kategorie się nie pojawiały ---- Koniec kategorii błędów; };--tabelka powyższa jest tabelką argumentów systemowych tej funkcji tego modułu; local tabelka_argumentow_dodatkowych_funkcji={ ["bez argumentów szablonu"]="", -- zawiera w sobie argumenty szablonu - oddzielone średnikem, których szablon nie może zawierać w wywołaniu; ["dodaj parametry pudełka"]="", -- dodaje parametry funkcji: Ogólne pudełko, modułu Pudełko; }; local tabelka_argumentow_systemowych_szablonu={ ["nazwij jednostką"]="", -- parametr systemowy funkcji mówiący, czy dowolną jednostkę nazwać po prostu jednostką; }; -- tabelka powyższa jest tabelką argumentów systemowych szablonu wywołującego tę funkcję tego modułu; local tabelka_parametrow_rodzica={}; local parametry_rodzica=parametry_modul.CzyTak(pf.args["potomek"])and pf.args["parametry rodzica"]; local szablonowe_modul=require("Module:Szablonowe"); if(parametry_rodzica)then tabelka_parametrow_rodzica=ramka_modul.RozpakujParametry(parametry_rodzica); templateName=pf.args["nazwa szablonu rodzica"] or szablonowe_modul.NazwaSzablonu(pf:getTitle()); else tabelka_parametrow_rodzica=pf.args; templateName=szablonowe_modul.NazwaSzablonu(pf:getTitle()); end; local czy_dodaj_parametry_pudelka=parametry_modul.CzyTak(frame.args["dodaj parametry pudełka"]); if(czy_dodaj_parametry_pudelka)then--dodaje parametry pudełka tabelka_argumentow_systemowych_szablonu["parametry pudełka"]=""; tabelka_argumentow_systemowych_szablonu["bez błędu"]=""; tabelka_argumentow_systemowych_szablonu["bez szczegółów"]=""; --dodaje parametry nienazwane i dla parametru: 1, którego ewentualną pierwszą nazwą jest: cel-- local maksimum=parametry_modul.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabelka_parametrow_rodzica); for i=1,maksimum,1 do if(i>1)then tabelka_argumentow_systemowych_szablonu[i]="txt!"; else tabelka_argumentow_systemowych_szablonu[1]="txt!;cel"; end; end; tabelka_argumentow_systemowych_szablonu["cel"]="txt!;1" end; local tablica_mikroszablonow={ ["{{+}}"]=";", ["{{!+}}"]="^", ["{{+!}}"]="$", }; tabelka_bez_argumentow=parametry_modul["UsuńElementyTabeli"](tabelka_bez_argumentow,tabelka_argumentow_systemowych_funkcji); tabelka_bez_argumentow=parametry_modul["UsuńElementyTabeli"](tabelka_bez_argumentow,tabelka_argumentow_systemowych_szablonu); local zmienna_sprawdzania_parametrow=pf.args["zmienna sprawdzania parametrów"]; local zmienne_dodane={}; if(zmienna_sprawdzania_parametrow)then local tabelka_zmiennych=mw.text.split(zmienna_sprawdzania_parametrow,";;",false); for poz,war in ipairs(tabelka_zmiennych)do local zmienna,wartosc=mw.ustring.match(war,"^%s*(.+)%s*=%s*(.*)%s*$") if((zmienna)and(wartosc))then zmienna=mw.text.trim(zmienna); wartosc=mw.text.trim(wartosc); zmienne_dodane[tonumber(zmienna) or mw.ustring.gsub(zmienna,"{{[^{}]+}}",tablica_mikroszablonow)]=wartosc; end; end; end; local zmienne_konieczne=function(tab,czy_odjete) for k, v in pairs(tab)do if(czy_odjete or ((not tabelka_argumentow_systemowych_funkcji[k]) and (not tabelka_argumentow_systemowych_szablonu[k]) and (not tabelka_bez_argumentow[k]) ) )then local wydziel=mw.ustring.match(v,"^%s*(^.*$%s*%??%s*!?)%s*"); if wydziel and mw.ustring.match(wydziel, "!%s*$") then required[k] = true elseif mw.ustring.match(mw.ustring.match(v,"^([^;]*!?)%s*"), "!%s*$") then required[k] = true end end; end; end; zmienne_konieczne(frame.args,false); zmienne_konieczne(zmienne_dodane,true); zmienne_konieczne(tabelka_argumentow_systemowych_funkcji,true); zmienne_konieczne(tabelka_argumentow_systemowych_szablonu,true); local emptyArg = false local obslugiwane=function(k) local kind=(not tabelka_argumentow_dodatkowych_funkcji[k]) and ((not tabelka_bez_argumentow[k]) and (tabelka_argumentow_systemowych_funkcji[k] or tabelka_argumentow_systemowych_szablonu[k] or zmienne_dodane[k] or frame.args[k])); return kind; end; local tab={}; local function inne_elementy_konieczne(k) local element=tab[k] if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((wartosc[1])and(not wartosc[2])and (not tabelka_parametrow_rodzica[name2]) and (obslugiwane(name2)))then return true; end; end; end; end; return false; end; local function tab_inne_elementy_konieczne(k) local element=tab[k] local tab_konieczne={}; if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((wartosc[1])and(not wartosc[2])and (not tabelka_parametrow_rodzica[name2]) and (obslugiwane(name2)))then table.insert(tab_konieczne,argName(tonumber(name2) or name2)); end; end; end; end; return tab_konieczne; end; local function inne_elementy_nieobslugiwane(k) local element=tab[k] if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(not wartosc[1])then if(not wartosc[2] and not wartosc[3])then if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]) and(((wartosc[4])and (#tabelka_parametrow_rodzica[name2]>0) )or((not wartosc[4])and(#tabelka_parametrow_rodzica[name2]==0))) )then return true; else return false; end; elseif(not wartosc[2] and wartosc[3])then return true; elseif(wartosc[2] and not wartosc[3])then if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]==0))then return true; else return false; end; end; end; end; end; end; return false; end; local function tab_inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) local element=tab[k]; local tab_konieczne_puste={}; if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((wartosc[4])and(not wartosc[2])and (not wartosc[3])and (tabelka_parametrow_rodzica[name2]) and(#tabelka_parametrow_rodzica[name2]==0) and (obslugiwane(name2)))then table.insert(tab_konieczne_puste,argName(tonumber(name2) or name2)); end; end; end; end; return tab_konieczne_puste; end; local function tab_inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) local element=tab[k]; local tab_konieczne_puste={}; if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((not wartosc[4])and(not wartosc[2])and (not wartosc[3])and (tabelka_parametrow_rodzica[name2]) and(#tabelka_parametrow_rodzica[name2]>0) and (obslugiwane(name2)))then table.insert(tab_konieczne_puste,argName(tonumber(name2) or name2)); end; end; end; end; return tab_konieczne_puste; end; local function inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) local element=tab[k]; local czy=false; if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(wartosc[1])then if((wartosc[4])and(not wartosc[2])and(not wartosc[3]))then if((obslugiwane(name2))and((tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]==0)))then return true; end; end; end; end; end; end; return czy; end; local function inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) local element=tab[k]; local czy=false; if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(wartosc[1])then if((not wartosc[4])and(not wartosc[2])and(not wartosc[3]))then if((obslugiwane(name2))and((tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]>0)))then return true; end; end; end; end; end; end; return czy; end; local function inne_elementy_powtarzane_i_z_mozliwymi_dopuszczalnymi_pustymi_wartosciami(k) local element=tab[k]; local czy=true; if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(wartosc[1])then if(wartosc[2])then if(not wartosc[3])then if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]))then if(#tabelka_parametrow_rodzica[name2]==0)then return false; else return true; end; end; elseif((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]))then return true; end; end; end; end; end; end; return false; end; local strony_modul=require("Module:Strony"); local NumerPlik=function(k,v,zapytajnik,tryb) local czy_zapytajnik=(zapytajnik~="?"); local zero=(czy_zapytajnik and(#v==0)); if(zero)then table.insert(invalid, argName(k)); elseif((czy_zapytajnik)or((not czy_zapytajnik)and(#v~=0)))then local u=strony_modul.SprawdzanieRozmiaruPliku{rozmiar=v,tryb=tryb,}; if not u then table.insert(invalid,argName(k)) end; end; end; local GrafikaPlik=function(k,v,zapytajnik,przestrzen) local czy_zapytajnik=(zapytajnik~="?"); local zero=(czy_zapytajnik and(#v==0)); if(zero)then table.insert(invalid, argName(k)) elseif((czy_zapytajnik)or((not czy_zapytajnik)and(#v~=0)))then if strony_modul.ZnajdowanieNormalnychStronHttp(v) then table.insert(nakedurl, argName(k)) else local g = strony_modul.SprawdzanieNazwyPlikowe{nazwa = v, ["przestrzeń"]=przestrzen, }; if not g then table.insert(invalid, argName(k)) end end; end; end; for k, v in pairs(tabelka_parametrow_rodzica) do required[k] = false local kind=obslugiwane(k); local zapytajnik; local wykrzyknik; if (kind) then local kind2;local zmienne; kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*(!?^.*$)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$"); if((not kind2)or(not zmienne)or (not zapytajnik))then kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*([^;]-)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$"); end; if((kind2)and(zmienne))then local tab2=mw.text.split(mw.text.trim(zmienne),"%s*;%s*",false); tab[k]={}; for _,value in ipairs(tab2) do value=mw.text.trim(value); local indeks=tonumber(value) or mw.ustring.gsub(value,"{{[^{}]+}}",tablica_mikroszablonow); local indeks2,wykrzyknik=mw.ustring.match(tostring(indeks),"^%s*(.*)%s*(!!?)%s*$"); local indeks3,zapytajnik=mw.ustring.match(tostring(indeks2 or indeks),"^%s*(.*)%s*(%?)%s*$"); local inne,indeks4=mw.ustring.match(tostring(indeks3 or indeks2 or indeks),"^%s*(!)%s*(.*)%s*$"); tab[k][indeks4 or indeks3 or indeks2 or indeks]={((not inne) and true or false), ((not wykrzyknik) and true or false), ((not zapytajnik) and true or false), ((not (wykrzyknik=="!!")) and true or false), }; end; kind=mw.ustring.gsub(kind2,"{{[^{}]+}}",tablica_mikroszablonow); else kind2,zapytajnik,wykrzyknik=mw.ustring.match(kind,"^%s*(!?%s*^.*$)%s*(%??)%s*(!?)%s*$"); if(not kind2)or(not zapytajnik)then kind2,zapytajnik,wykrzyknik=mw.ustring.match(kind,"^%s*(.-)%s*(%??)%s*(!?)%s*$"); end; kind=mw.ustring.gsub(kind2,"{{[^{}]+}}",tablica_mikroszablonow); end; end; kind=kind and mw.text.trim(kind); if k == "" then emptyArg = v elseif not kind or inne_elementy_nieobslugiwane(k) then table.insert(unknown, argName(k)) elseif inne_elementy_powtarzane_i_z_mozliwymi_dopuszczalnymi_pustymi_wartosciami(k) then table.insert(repeated, argName(k)); elseif inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) then table.insert(empty, k); elseif inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) then table.insert(noempty, k); elseif inne_elementy_konieczne(k) then table.insert(konieczne, k); else local old,__kind=mw.ustring.match(kind,"^%s*(old)%s*+%s*(.-)%s*$"); if(not old or not __kind)then __kind,old=mw.ustring.match(kind,"^%s*(.*)%s*+%s*(old)%s*$"); end; if(old and __kind)then table.insert(deprecated, argName(k)); kind=__kind; end; if(kind == "")then -- Kod pusty elseif (kind == "num") then if(zapytajnik~="?")then local n = tonumber(v) if not n then table.insert(invalid, argName(k)) end else local n = (#v == 0) or tonumber(v) if not n then table.insert(invalid, argName(k)) end end; elseif (kind == "uri") then if(zapytajnik~="?")then local u = strony_modul.SprawdzanieURL(v) if not u then table.insert(invalid, argName(k)) end else local u = (#v == 0) or strony_modul.SprawdzanieURL(v) if not u then table.insert(invalid, argName(k)) end end; elseif(kind=="txt")then if(zapytajnik~="?")then if #v == 0 then table.insert(invalid, argName(k)) end; end; elseif (kind=="all")then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) end; end; end; elseif(kind=="grafika")then GrafikaPlik(k,v,zapytajnik,false); elseif(kind=="grafika*")then GrafikaPlik(k,v,zapytajnik,true); elseif (kind == "text") then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u= strony_modul.ZnajdowaniePlikowe(v); if(u)then table.insert(files, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieJakikolwiekStronHttp(v) if(u)then table.insert(exturl, argName(k)) end; end; end; end; end; elseif(kind == "text-img")then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieJakikolwiekStronHttp(v) if(u)then table.insert(exturl, argName(k)) end; end; end; end; elseif((kind == "text-link")or(kind == "tekst"))then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u= strony_modul.ZnajdowaniePlikowe(v); if(u)then table.insert(files, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) end; end; end; end; elseif ((not old)and(kind == "old")) then table.insert(deprecated, argName(k)); elseif(kind == "uri*")then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u = strony_modul.SprawdzanieURL(v) or strony_modul.SprawdzanieURL(mw.text.unstripNoWiki(v)) if not u then table.insert(invalid, argName(k)) end end; elseif(kind=="rozmiar")then NumerPlik(k,v,zapytajnik,false); elseif(kind=="rozmiar*")then NumerPlik(k,v,zapytajnik,true); elseif(kind~="")then local function regex(kind) local tab_pattern_wykrzyknik_lub_nie_wzorow={}; local pattern_poczatek=kind; local function funkcja_zbierajacy_dane_patternow(pattern_analiza_wzorow_koniunkcji) local tab_split_pattern_koniunkcji={}; local pattern_poczatek=pattern_analiza_wzorow_koniunkcji; repeat local pattern_poczatek_2,pattern_koniec=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*&%s*(.*)%s*$"); if(pattern_poczatek_2 and pattern_koniec)then table.insert(tab_split_pattern_koniunkcji,pattern_poczatek_2); pattern_poczatek=pattern_koniec; else local pattern_caly=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*$"); if pattern_caly then table.insert(tab_split_pattern_koniunkcji,pattern_caly); end; end; until not pattern_poczatek_2; local tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji={}; for _,wartosc_elementu_koniunkcji in ipairs(tab_split_pattern_koniunkcji)do local wykrzyknik,pattern=mw.ustring.match(wartosc_elementu_koniunkcji,"^%s*(!?)%s*(^.-$)%s*$"); table.insert(tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji,{[1]=pattern,[2]=wykrzyknik}); end; table.insert(tab_pattern_wykrzyknik_lub_nie_wzorow,tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji); end; repeat local pattern_poczatek_2,pattern_koniec=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*|%s*(.*)%s*$"); if pattern_poczatek_2 and pattern_koniec then funkcja_zbierajacy_dane_patternow(pattern_poczatek_2); pattern_poczatek=pattern_koniec; else local pattern_caly=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*$"); if(pattern_caly)then funkcja_zbierajacy_dane_patternow(pattern_caly); end; break; end; until not pattern_poczatek_2; if(#tab_pattern_wykrzyknik_lub_nie_wzorow>0)then for _ , tab_pattern_koniunkcja in ipairs(tab_pattern_wykrzyknik_lub_nie_wzorow) do local czy=true; for _,tab_pattern_elementy_koniunkcji in ipairs(tab_pattern_koniunkcja)do local pattern=tab_pattern_elementy_koniunkcji[1]; local wykrzyknik_negujacy_pattern=(tab_pattern_elementy_koniunkcji[2]=="!"); if(pattern)then if((not wykrzyknik_negujacy_pattern and mw.ustring.match(v, pattern))or(wykrzyknik_negujacy_pattern and not mw.ustring.match(v, pattern)))then czy=czy and true; if(not czy)then break; end; else czy=false; break; end; end end; if(czy)then return true;end; end; return false; end; return nil; end; if((zapytajnik)and((zapytajnik=="")or((zapytajnik=="?")and(#v>0))))then local wynik=regex(kind); if((type(wynik)~="nil")and(not wynik))then table.insert(invalid, argName(k)); elseif (#v > 0) and strony_modul.SprawdzanieURL(v) then table.insert(nakedurl, argName(k)) elseif strony_modul.ZnajdowanieNormalnychStronHttp(v) then table.insert(nakedurl, argName(k)) end; end; end end; end; local missing = {} local function inny_element2(k) local element=tab[k] if(element)then for name2,wartosc in pairs(element)do if((wartosc[2])and(k~=name2))then if(tabelka_parametrow_rodzica[name2] and obslugiwane(name2))then return true; end; end; end; end; for name,value in pairs(tab)do for name2,wartosc in pairs(value)do if((wartosc[2])and(name2==k)and(name2~=name))then if((tabelka_parametrow_rodzica[name])and obslugiwane(name))then return true; end; end; end; end; return false; end; for k, v in pairs(required) do if v and not inny_element2(k) then table.insert(missing, argName(k)) end end local czy_dokumentacja=parametry_modul.CzyTak(tabelka_parametrow_rodzica["dokumentacja"]); local czy_not_category=parametry_modul.CzyTak(tabelka_parametrow_rodzica["bez kategorii"]) or czy_dokumentacja; local function Szablon_z_sprawdz_parametry() if(czy_not_category)then return "";end; local nazwy_modul=require("Module:Nazwy"); local nazwa_szablonu=szablonowe_modul.NazwaSzablonu(nazwy_modul["PEŁNANAZWASTRONY"]()); if(templateName==nazwa_szablonu)then local sprawdz_modul=require("Module:Sprawdź"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); return "[["..nazwy_np_modul.Category..":"..sprawdz_modul["NazwaKategoriiSprawdzaniaParametrówSzablonu"]().."|"..nazwy_modul["NAZWASTRONY"]().."]]"; end; return ""; end; local czy_missing=parametry_modul["CzySąElementyNumerowaneTablicy"](missing); local czy_konieczne=parametry_modul["CzySąElementyNumerowaneTablicy"](konieczne); local czy_unknown=parametry_modul["CzySąElementyNumerowaneTablicy"](unknown); local czy_invalid=parametry_modul["CzySąElementyNumerowaneTablicy"](invalid); local czy_deprecated=parametry_modul["CzySąElementyNumerowaneTablicy"](deprecated); local czy_repeated=parametry_modul["CzySąElementyNumerowaneTablicy"](repeated); local czy_empty=parametry_modul["CzySąElementyNumerowaneTablicy"](empty); local czy_noempty=parametry_modul["CzySąElementyNumerowaneTablicy"](noempty); local czy_files=parametry_modul["CzySąElementyNumerowaneTablicy"](files); local czy_nakedurl=parametry_modul["CzySąElementyNumerowaneTablicy"](nakedurl); local czy_exturl=parametry_modul["CzySąElementyNumerowaneTablicy"](exturl); if ((not czy_missing) and (not czy_konieczne) and (not czy_unknown) and (not czy_invalid) and (not czy_deprecated) and (not czy_repeated) and (not czy_empty) and (not czy_noempty) and (not czy_files) and (not czy_nakedurl) and (not czy_exturl) and (not emptyArg)) then return Szablon_z_sprawdz_parametry(); end local czy_informacje=not (parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń dodatkowe informacje"]) or czy_dokumentacja); local result; if(czy_informacje)then result=mw.html.create("span") result:addClass("problemy"); result:addClass("error"); result:css('white-space','pre-line'); result:css('font-size','unset'); end; local typ; local typ_jednostki; local czy_nazwij_jednostka=parametry_modul.CzyTak(tabelka_parametrow_rodzica["nazwij jednostką"]); ----[""]=?--- local config = frame.args[""] local class, space, category = string.match(config or "", "^%s*(%S+)(%s+)(.-)%s*$") local nl = space and string.match(space, "\n") or "" class = class or config ---- if(((czy_informacje)and(not czy_nazwij_jednostka))or((category)and((not czy_not_category)and(mw.ustring.match(category,"%%s.-%%s")))))then --local frame2=pf:newChild{args = {["obsługiwane jednostki jako nieopisowe strony"]="tak"}} local pudelko_modul=require("Module:Pudełko"); typ_jednostki=pudelko_modul["Typ jednostki 2"]{args={ ["obsługiwane jednostki jako nieopisowe strony"]="tak", ["nazwa przestrzeni nazw"]=pf and pf.args["tytuł przestrzeni nazw"] or frame.args["tytuł przestrzeni nazw"], ["nazwa jednostki"]=pf and pf.args["tytuł jednostki"] or frame.args["tytuł jednostki"], ["typ jednostki"]=pf and pf.args["rodzaj jednostki"] or frame.args["rodzaj jednostki"], },}; if(typ_jednostki=="artykuł")then typ="(artykuły)"; elseif(typ_jednostki=="artykuł dla dzieci")then typ="(artykuły dla dzieci)"; elseif(typ_jednostki=="strona użytkownika")then typ="(strony użytkowników)"; elseif(typ_jednostki=="strona brudnopisu projektu")then typ="(strony brudnopisu projektu)"; else typ="(strony niepodręcznikowe)"; end; else typ=nil; end; if(czy_informacje)then if(not czy_nazwij_jednostka)then if typ_jednostki=="artykuł" or typ_jednostki=="artykuł dla dzieci" or typ_jednostki=="strona użytkownika" or typ_jednostki=="strona brudnopisu projektu" then result:css("display", "none"); result:css("color","black"); else result:css("color", "red") end else result:css("color", "red") end; end; local czy_warning=not (parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń ostrzeżenie"]) or czy_dokumentacja); local message; if(czy_informacje or czy_warning)then message=mw.html.create() if emptyArg then message:wikitext("Podano parametr o nazwie pustej o wartosci: |=", emptyArg, "|.<br/>") end if czy_missing then message:wikitext("Brakujące pola, które powinny być koniecznie podane: ", mw.text.listToText(missing), ".<br/>") end if czy_konieczne then for _,_konieczne in ipairs(konieczne) do message:wikitext("Konieczne pola, które powinny być używane z innymi parametrami, dla "..argName(_konieczne)..": "..mw.text.listToText(tab_inne_elementy_konieczne(_konieczne))..".<br/>") end; end if czy_invalid then message:wikitext("O nieprawidłowej wartości pola: ", mw.text.listToText(invalid), ".<br/>") end if czy_unknown then message:wikitext("Nieznane pola używane przez szablon: ", mw.text.listToText(unknown), ".<br/>") end if czy_deprecated then message:wikitext("Przestarzałe pola, które są obsługiwane, ale których nie powinno się raczej używać: ", mw.text.listToText(deprecated), ".<br/>") end if czy_repeated then message:wikitext("Pola o odpowiedniej podanej wartości, które nie powinne być używane z innymi parametrami lub z tymi podanymi: ", mw.text.listToText(repeated), ".<br/>") end if czy_empty then for _,_empty in ipairs(empty) do message:wikitext("Dla pola "..argName(_empty).." wykryto wartości z pustymi polami: "..mw.text.listToText(tab_inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(_empty))..", które powinny być niepuste.<br/>") end; end if czy_noempty then for _,_noempty in ipairs(noempty) do message:wikitext("Dla pola "..argName(_noempty).." wykryto wartości z niepustymi polami: "..mw.text.listToText(tab_inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(_noempty))..", które powinny być niepuste.<br/>") end; end if czy_files then for _,_files in ipairs(files) do message:wikitext("Dla pola "..argName(_files).." wykryto nieoczekiwaną grafikę: " .. mw.text.listToText(files) .. ".") end; end; if czy_nakedurl then for _,_nakedurl in ipairs(nakedurl) do message:wikitext("Dla pola "..argName(_nakedurl).." wykryto gołe linki: " .. mw.text.listToText(nakedurl) .. ".") end; end; if czy_exturl then for _,_exturl in ipairs(exturl) do message:wikitext("Dla pola "..argName(_exturl).." wykryto linki zewnętrzne: " .. mw.text.listToText(exturl) .. ".") end; end; end; local warning; if(czy_warning)then warning = mw.html.create('span'); warning:css('color','red'); warning:css('white-space','pre-line'); warning:css('word-break','break-all'); warning:addClass("problemy"); end; if(templateName)then mw.logObject(templateName, "templateName") local dwukropek=mw.ustring.match(templateName,"^%s*:"); local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](templateName); local wywolanie;local wywolanie2; local szablonowe_modul=require("Module:Szablonowe"); if dwukropek or nazwa_przestrzeni_strony~="" then wywolanie=szablonowe_modul["PokazanieWywołaniaSzablonu"](templateName,tabelka_parametrow_rodzica); wywolanie2="{{"..templateName.."}}"; if(parametry_modul.CzyTak(category))then templateName=mw.ustring.gsub(templateName,"^%s*:",""); if(not czy_not_category)then if(typ)then category=mw.ustring.format(category,templateName,typ); else category=mw.ustring.format(category,templateName); end; category=pf:preprocess(category); end; class=mw.ustring.format(class,mw.ustring.gsub(templateName,"%s+","-")); end; else wywolanie=szablonowe_modul["PokazanieWywołaniaSzablonu"](templateName,tabelka_parametrow_rodzica); wywolanie2="{{"..templateName.."}}"; if(parametry_modul.CzyTak(category))then local bez_pierwszej_litery=mw.ustring.match(templateName,"^.(.*)"); local czy_jest_wielka_litera=mw.ustring.match(bez_pierwszej_litery,"%u"); local szablon; if(not czy_jest_wielka_litera)then szablon=mw.getContentLanguage():lcfirst(templateName);else szablon=templateName;end; if(not czy_not_category)then if(typ)then category=mw.ustring.format(category,szablon,typ); else category=mw.ustring.format(category,szablon); end; category=pf:preprocess(category); end; class=mw.ustring.format(class,mw.ustring.gsub(szablon,"%s+","-")); end; end if(czy_warning)then local strong = mw.html.create('strong'); strong:wikitext("Wywołanie ") local span = mw.html.create('span'); span:css('font-weight','normal'); span:css('white-space','pre'); span:css('color',"brown"); span:wikitext(wywolanie); local strong2=mw.html.create('strong'); strong2:wikitext(" z wykrytymi parametrami z nieprawidłościami:<br/>"); warning:node(strong); warning:node(span); warning:node(strong2); end; if(czy_informacje)then local strong = mw.html.create('strong'); strong:wikitext("Szablon "..wywolanie2.." z wykrytymi parametrami z nieprawidłościami:<br/>"); result:node(strong); end; end; local czy_usun_linkowanie=parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń linkowanie"]) or czy_dokumentacja; if(not czy_usun_linkowanie)then local _ = mw.title.new("Module:Sprawdź/Wywołanie funkcji/Parametry").id; end; if(czy_informacje or czy_warning)then message = tostring(message) end; if(czy_warning)then warning:wikitext(message); mw.addWarning(tostring(warning)); end; if czy_informacje and class then result:addClass(class) end if(czy_informacje)then result:wikitext(message);end; local str_category; if not czy_not_category and category then str_category=category; else str_category=""; end return nl..((czy_informacje)and tostring(result:allDone()) or "")..str_category..Szablon_z_sprawdz_parametry(); end, ["odn"] = function(frame) local pf = frame:getParent() local i = 1 local problems = false local yeardetected = false while true do local arg = pf.args[i] if not arg then problems = i == 1 and "brak argumentów" or false break end if (i > 5) or yeardetected then problems = "za dużo argumentów pozycyjnych" break end if #arg == 0 then problems = "pusty argument" break end if arg ~= mw.text.trim(arg) then problems = "nieoczekiwane odstępy na początku lub końcu argumentu" break end if string.match(arg, "^%d+%l?$") then yeardetected = true if i == 1 then problems = "rok musi być ostatnim parametrem po nazwiskach autorów" break end elseif string.match(arg, "^s[%-%.:]%s*%d+") then problems = "prawdopodobnie nieprawidłowo podany numer strony" break elseif string.match(arg, "%s%s") then problems = "podwójne odstępy" break elseif mw.ustring.match(arg, "^%a+%d") then if not mw.ustring.match(arg, "^[%u%d]+$") then problems = "prawdopodobnie sklejone argumenty (brak pionowej kreski)" break end elseif mw.ustring.match(arg, "^OdeB ") then -- [[Ordre de Bataille]] elseif mw.ustring.match(arg, "^%u%l+%u") then local justification = { ["De"] = true, ["Del"] = true, ["Di"] = true, ["Le"] = true, ["Mac"] = true, ["Mc"] = true, ["Te"] = true, -- TeSelle ["Sar"] = true, -- SarDesai ["Van"] = true, -- VanBuren ["La"] = true, -- LaSalle } if not justification[mw.ustring.match(arg, "^%u%l+")] then problems = "prawdopodobnie sklejone argumenty (brak pionowej kreski)" break end end i = i + 1 end if not problems then local odn = pf.args.odn if odn and ((#odn ~= 1) or (odn < "a") or (odn > "z")) then problems = "nieoczekiwany parametr odn" end end if not problems then local s = pf.args.s if s and string.match(s, "&[a-z]+;") then problems = "użyto encji HTML w numerze strony" end end if not problems then if pf.args.strona or pf.args.ss or pf.args.strony or pf.args.p or pf.args.page or pf.args.pp or pf.args.pages then problems = "przestarzały parametr z numerem strony" end end if not problems then return nil end local result = mw.html.create("span"):addClass("problemy-w-odn") local frame2=pf:newChild{args = {["obsługiwane jednostki jako nieopisowe strony"]="tak"}} local typ_jednostki=require("Module:Pudełko")["Typ jednostki 2"](frame2) if typ_jednostki=="artykuł" or typ_jednostki=="artykuł dla dzieci" or typ_jednostki=="strona użytkownika" or typ_jednostki=="strona brudnopisu projektu" then result:css("display", "none") else result:css("color", "red") end local typ; if(typ_jednostki=="artykuł")then typ="artykuły"; elseif(typ_jednostki=="artykuł dla dzieci")then typ="artykuły dla dzieci"; elseif(typ_jednostki=="strona użytkownika")then typ="strony użytkowników"; elseif(typ_jednostki=="strona brudnopisu projektu")then typ="strony brudnopisu projektu"; else typ="strony niepodręcznikowe"; end; local kategorie_modul=require("Module:Kategorie"); local str_kategoria=kategorie_modul.Kategoria{args={[1]="Szablon odn ("..typ..") do sprawdzenia"}}; result:wikitext(str_kategoria); result:wikitext("ODN: ", problems) return tostring(result) end, ["Wikidane"] = function(frame) local property = frame.args.cecha local field = frame.args.pole local value = frame.args[1] if not property or not field then return end if not value then value = frame:getParent().args[field] if not value or (#value == 0) then return end end local entity = mw.wikibase.getEntity() if not entity or not entity.claims or not entity.claims[property] then return end for i, v in ipairs(entity.claims[property]) do if v.mainsnak.snaktype == "value" then if value == v.mainsnak.datavalue.value then return end end end local template = frame:getParent():getTitle() local infobox = mw.ustring.match(template, "^Szablon:(.- infobox)$") return mw.ustring.format("[[Kategoria:%s – niezgodność w Wikidanych – %s – %s]]", infobox and "Infoboksy" or "Szablony", infobox or template, field) end, ["bez parametrów"] = function(frame) for k, v in pairs(frame:getParent().args) do return nil end return "tak" end, ["pole z hostem"] = function (frame) local host = frame.args.host if host and (#host > 0) then for k, v in pairs(frame:getParent().args) do local link = string.match(v, "[hH][tT][tT][pP][sS]?://[%S]+") if link then local uri = mw.uri.new(link) local valid, _ = mw.uri.validate(uri) if valid and uri.host and (#uri.host > 0) then if host == uri.host then mw.logObject({k, link}, "cały") return k end if #host < #uri.host then local s1 = '.'..host local s2 = string.sub(uri.host, -#s1) if s1 == s2 then mw.logObject({k, link}, "fragment") return k end end end end end end end, ["pola z autorami"] = function (frame) local result = {} local nazwisko = frame.args["nazwisko"] local imie = frame.args["imię"] local autor = frame.args["autor"] local link = frame.args["link"] local maxIndex = tonumber(frame.args["max"]) local prefix = frame.args["przed"] or "" local suffix = frame.args["po"] or "" for i = 1, maxIndex do local s = i == 1 and "" or tostring(i) local nin = string.gsub(nazwisko, '#', s) local iin = string.gsub(imie, '#', s) local ain = string.gsub(autor, '#', s) local lin = string.gsub(link, '#', s) local niv = frame:getParent().args[nin] local iiv = frame:getParent().args[iin] local aiv = frame:getParent().args[ain] local liv = frame:getParent().args[lin] local nis = niv and (#niv > 0) local iis = iiv and (#iiv > 0) local ais = aiv and (#aiv > 0) local lis = liv and (#liv > 0) local bad = (nis and ais) -- nazwisko -> zbędny autor or (nis and not iis) -- nazwisko bez imienia or (lis and not nis and not ais) -- tylko link or (iis and not nis) -- imię bez nazwiska if bad then table.insert(result, i) end end if #result > 0 then return prefix..mw.text.listToText(result)..suffix end end, ["pola z gołymi linkami"] = function (frame) local result = {} for k, v in pairs(frame:getParent().args) do local link = string.match(v, "^[hH][tT][tT][pP][sS]?://[%S]+") if link then local justified = frame.args[k] if not justified then mw.logObject(v,k) table.insert(result, '"'..k..'"') end end end return mw.text.listToText(result) end, ["uri"] = function(frame) mw.logObject(frame:getParent():getTitle(), "parent:title") _ = mw.title.new("Moduł:Sprawdź/deprecated/uri").id local link = frame.args["link"] local space = frame.args["spacja"] local strony_modul=require("Module:Strony"); local check = strony_modul.SprawdzanieURL(link) if check then return link end return (space and (check ~= nil)) and link or "" end, ["url"] = function(frame) local link = frame.args[1] local okText = frame.args[2] or "ok" local isValid = string.find(link, '{{{') == 1 or checkUri(link) if isValid then return okText end return "" end, ["lista nazw niepustych argumentów"] = function(frame) local argNames = {} for k, v in pairs(frame:getParent().args) do if #mw.text.trim(v) > 0 then table.insert(argNames, tostring(k)) end end return table.concat(argNames, ", ") end, } 9xec13v1jy3rp2j4cyi5q5let58o6zg 543804 543802 2026-05-22T02:02:38Z Persino 2851 543804 Scribunto text/plain return { ["NazwaKategoriiSprawdzaniaParametrówSzablonu"]=function() return "Szablony z dodatkową opcją sprawdzania parametrów"; end; ["UsuńKategorięSprawdzaniaParametrówSzablonu"]=function(frame) local wikikod=frame.args[1]; local sprawdz_modul=require("Module:Sprawdź"); local kategoria_sprawdzania_parametrow=sprawdz_modul["NazwaKategoriiSprawdzaniaParametrówSzablonu"](); local specjalne_modul=require("Module:Specjalne"); return specjalne_modul["UsuńŚciśleOkreśloneKategorie"]{[1]=wikikod,[2]=kategoria_sprawdzania_parametrow,} end; ["Porównaj"] = function(frame) local pf=frame:getParent(); local config = pf.args[""] or "" local brudnopis=pf.args["brudnopis"]; local options = mw.text.split(config, "|") local templateName = mw.text.trim(options[1]) if #templateName == 0 then local title = mw.title.getCurrentTitle() if title.namespace == 10 then templateName = mw.ustring.match(title.text, "^(.-)/opis") or mw.ustring.match(title.text, "^(.-)/test") or mw.ustring.match(title.text, "^(.-)/brudnopis") or title.text end if #templateName == 0 then mw.log("brak nazwy szablonu") return end end local i = 2 local showparams = true local showinfo = true local vertical = false local brudnopis; while i <= #options do local parametr,wartosc=mw.ustring.match(options[i],"^([^%=]*)%=(.*)$") if(not parametr)then local option = mw.text.trim(options[i]) if option == "bez wikikodu" then showparams = false elseif option == "bez opisu" then showinfo = false elseif option == "pionowo" then vertical = true end else local parametr=mw.text.trim(parametr) if(parametr=="brudnopis")then brudnopis=mw.text.trim(wartosc); end; end i = i + 1 end; local templateTitle = mw.title.new(templateName, 10) if templateTitle.id == 0 then mw.log("szablon '"..templateName.."' nie istnieje") return end local sandboxName = brudnopis or (templateName.."/brudnopis") local sandboxTitle = mw.title.new(sandboxName, 10) if sandboxTitle.id == 0 then mw.log("brudnopis '"..sandboxName.."' nie istnieje") return end local templateParams = {} local params = {} for k, v in pairs(pf.args) do if (k ~= "") then templateParams[k] = v table.insert(params, k) end end local result = {} table.insert(result, '<table style="width: 100%;">') if showparams and (#params > 0) then local compare = function(a, b) -- return a < b if (type(a) == "number") and (type(b) == "number") then return a < b end if (type(a) == "string") and (type(b) == "string") then return a < b end if (type(a) == "number") and (type(b) == "string") then return true end return false end table.sort(params, compare) table.insert(result, "<caption><code>&#x7B;&#x7B;") table.insert(result, templateName) for i, k in ipairs(params) do table.insert(result, " &#x7C; ") local p = mw.text.nowiki(tostring(k)) local v = mw.text.nowiki(templateParams[k]) table.insert(result, p) table.insert(result, " = ") table.insert(result, v) end table.insert(result, "&#x7D;&#x7D;</code></caption>") end local templateResult = frame:expandTemplate{ title=templateName, args=templateParams} local sandboxResult = frame:expandTemplate{ title=sandboxName, args=templateParams} if templateResult and string.match(templateResult, "^{|") then templateResult = "\n"..templateResult end if sandboxResult and string.match(sandboxResult, "^{|") then sandboxResult = "\n"..sandboxResult end if vertical and showinfo then table.insert(result, '<tr><th style="width: 15em">[[Szablon:') table.insert(result, templateName) table.insert(result, '|Szablon]]</th><td>') table.insert(result, templateResult) table.insert(result, '</td></tr><tr><th>[[Szablon:') table.insert(result, sandboxName) table.insert(result, '|Brudnopis szablonu]]</th><td>') table.insert(result, sandboxResult) table.insert(result, '</td></tr>') elseif vertical then table.insert(result, '<tr><td>') table.insert(result, templateResult) table.insert(result, '</td></tr><tr><td>') table.insert(result, sandboxResult) table.insert(result, '</td></tr>') else if showinfo then table.insert(result, '<tr><th style="width: 50%;">[[Szablon:') table.insert(result, templateName) table.insert(result, '|Szablon]]</th><th style="width: 50%;">[[Szablon:') table.insert(result, sandboxName) table.insert(result, '|Brudnopis szablonu]]</th></tr>') end table.insert(result, '<tr style="vertical-align: top;"><td>') table.insert(result, templateResult) table.insert(result, '</td><td>') table.insert(result, sandboxResult) table.insert(result, '</td></tr>') end table.insert(result, "</table>") return table.concat(result) end, ["Parametry"] = function(frame) local pf=frame:getParent(); local unknown = {} local invalid = {} local deprecated = {} local nakedurl = {} local exturl = {} local files = {}; local templateName; local function argName(arg) local span = mw.html.create('span'); span:css('white-space','pre'); span:wikitext(arg); return type(arg) ~= "string" and tostring(arg) or ('"'..tostring(span:allDone())..'"'); end local ramka_modul=require("Module:Ramka"); local tabelka1=ramka_modul.RozpakujArgumenty(frame.args["bez argumentów szablonu"]); local tabelka2=ramka_modul.RozpakujArgumenty(pf.args["bez argumentów szablonu"]); local parametry_modul=require("Module:Parametry"); local tabelka_bez_argumentow=parametry_modul["ŁączDwieTabele"](tabelka1,tabelka2) local required = {}; local repeated = {}; local konieczne = {}; local empty = {}; local noempty = {}; local tabelka_argumentow_systemowych_funkcji={ ["nazwa przestrzeni nazw"]="", ["nazwa jednostki"]="txt", ["typ jednostki"]="txt", ["tytuł przestrzeni nazw"]="", ["tytuł jednostki"]="txt", ["rodzaj jednostki"]="txt", ["strona główna dla dzieci"]="txt", ["strona główna projektu"]="txt", ---- Kategorie błędów; ["usuń dodatkowe informacje"]="", ["usuń ostrzeżenie"]="", ["usuń linkowanie"]="", ["bez dodatkowych sprawdzeń"]="", -- parametr systemowy szablonu do nieuruchamiania tej funkcji; ["dokumentacja"]="", -- parametr używany zamiast: "bez kategorii", "usuń dodatkowe informacje", "usuń ostrzeżenie" i "usuń linkowanie"; ["bez kategorii"]="", -- parametr systemowy szablonu, by kategorie się nie pojawiały ---- Koniec kategorii błędów; };--tabelka powyższa jest tabelką argumentów systemowych tej funkcji tego modułu; local tabelka_argumentow_dodatkowych_funkcji={ ["bez argumentów szablonu"]="", -- zawiera w sobie argumenty szablonu - oddzielone średnikem, których szablon nie może zawierać w wywołaniu; ["dodaj parametry pudełka"]="", -- dodaje parametry funkcji: Ogólne pudełko, modułu Pudełko; }; local tabelka_argumentow_systemowych_szablonu={ ["nazwij jednostką"]="", -- parametr systemowy funkcji mówiący, czy dowolną jednostkę nazwać po prostu jednostką; }; -- tabelka powyższa jest tabelką argumentów systemowych szablonu wywołującego tę funkcję tego modułu; local tabelka_parametrow_rodzica={}; local parametry_rodzica=parametry_modul.CzyTak(pf.args["potomek"])and pf.args["parametry rodzica"]; local szablonowe_modul=require("Module:Szablonowe"); if(parametry_rodzica)then tabelka_parametrow_rodzica=ramka_modul.RozpakujParametry(parametry_rodzica); templateName=pf.args["nazwa szablonu rodzica"] or szablonowe_modul.NazwaSzablonu(pf:getTitle()); else tabelka_parametrow_rodzica=pf.args; templateName=szablonowe_modul.NazwaSzablonu(pf:getTitle()); end; local czy_dodaj_parametry_pudelka=parametry_modul.CzyTak(frame.args["dodaj parametry pudełka"]); if(czy_dodaj_parametry_pudelka)then--dodaje parametry pudełka tabelka_argumentow_systemowych_szablonu["parametry pudełka"]=""; tabelka_argumentow_systemowych_szablonu["bez błędu"]=""; tabelka_argumentow_systemowych_szablonu["bez szczegółów"]=""; --dodaje parametry nienazwane i dla parametru: 1, którego ewentualną pierwszą nazwą jest: cel-- local maksimum=parametry_modul.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabelka_parametrow_rodzica); for i=1,maksimum,1 do if(i>1)then tabelka_argumentow_systemowych_szablonu[i]="txt!"; else tabelka_argumentow_systemowych_szablonu[1]="txt!;cel"; end; end; tabelka_argumentow_systemowych_szablonu["cel"]="txt!;1" end; local tablica_mikroszablonow={ ["{{+}}"]=";", ["{{!+}}"]="^", ["{{+!}}"]="$", }; tabelka_bez_argumentow=parametry_modul["UsuńElementyTabeli"](tabelka_bez_argumentow,tabelka_argumentow_systemowych_funkcji); tabelka_bez_argumentow=parametry_modul["UsuńElementyTabeli"](tabelka_bez_argumentow,tabelka_argumentow_systemowych_szablonu); local zmienna_sprawdzania_parametrow=pf.args["zmienna sprawdzania parametrów"]; local zmienne_dodane={}; if(zmienna_sprawdzania_parametrow)then local tabelka_zmiennych=mw.text.split(zmienna_sprawdzania_parametrow,";;",false); for poz,war in ipairs(tabelka_zmiennych)do local zmienna,wartosc=mw.ustring.match(war,"^%s*(.+)%s*=%s*(.*)%s*$") if((zmienna)and(wartosc))then zmienna=mw.text.trim(zmienna); wartosc=mw.text.trim(wartosc); zmienne_dodane[tonumber(zmienna) or mw.ustring.gsub(zmienna,"{{[^{}]+}}",tablica_mikroszablonow)]=wartosc; end; end; end; local zmienne_konieczne=function(tab,czy_odjete) for k, v in pairs(tab)do if(czy_odjete or ((not tabelka_argumentow_systemowych_funkcji[k]) and (not tabelka_argumentow_systemowych_szablonu[k]) and (not tabelka_bez_argumentow[k]) ) )then local wydziel=mw.ustring.match(v,"^%s*(^.*$%s*%??%s*!?)%s*"); if wydziel and mw.ustring.match(wydziel, "!%s*$") then required[k] = true elseif mw.ustring.match(mw.ustring.match(v,"^([^;]*!?)%s*"), "!%s*$") then required[k] = true end end; end; end; zmienne_konieczne(frame.args,false); zmienne_konieczne(zmienne_dodane,true); zmienne_konieczne(tabelka_argumentow_systemowych_funkcji,true); zmienne_konieczne(tabelka_argumentow_systemowych_szablonu,true); local emptyArg = false local obslugiwane=function(k) local kind=(not tabelka_argumentow_dodatkowych_funkcji[k]) and ((not tabelka_bez_argumentow[k]) and (tabelka_argumentow_systemowych_funkcji[k] or tabelka_argumentow_systemowych_szablonu[k] or zmienne_dodane[k] or frame.args[k])); return kind; end; local tab={}; local function inne_elementy_konieczne(k) local element=tab[k] if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((wartosc[1])and(not wartosc[2])and (not tabelka_parametrow_rodzica[name2]) and (obslugiwane(name2)))then return true; end; end; end; end; return false; end; local function tab_inne_elementy_konieczne(k) local element=tab[k] local tab_konieczne={}; if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((wartosc[1])and(not wartosc[2])and (not tabelka_parametrow_rodzica[name2]) and (obslugiwane(name2)))then table.insert(tab_konieczne,argName(tonumber(name2) or name2)); end; end; end; end; return tab_konieczne; end; local function inne_elementy_nieobslugiwane(k) local element=tab[k] if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(not wartosc[1])then if(not wartosc[2] and not wartosc[3])then if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]) and(((wartosc[4])and (#tabelka_parametrow_rodzica[name2]>0) )or((not wartosc[4])and(#tabelka_parametrow_rodzica[name2]==0))) )then return true; else return false; end; elseif(not wartosc[2] and wartosc[3])then return true; elseif(wartosc[2] and not wartosc[3])then if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]==0))then return true; else return false; end; end; end; end; end; end; return false; end; local function tab_inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) local element=tab[k]; local tab_konieczne_puste={}; if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((wartosc[4])and(not wartosc[2])and (not wartosc[3])and (tabelka_parametrow_rodzica[name2]) and(#tabelka_parametrow_rodzica[name2]==0) and (obslugiwane(name2)))then table.insert(tab_konieczne_puste,argName(tonumber(name2) or name2)); end; end; end; end; return tab_konieczne_puste; end; local function tab_inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) local element=tab[k]; local tab_konieczne_puste={}; if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((not wartosc[4])and(not wartosc[2])and (not wartosc[3])and (tabelka_parametrow_rodzica[name2]) and(#tabelka_parametrow_rodzica[name2]>0) and (obslugiwane(name2)))then table.insert(tab_konieczne_puste,argName(tonumber(name2) or name2)); end; end; end; end; return tab_konieczne_puste; end; local function inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) local element=tab[k]; local czy=false; if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(wartosc[1])then if((wartosc[4])and(not wartosc[2])and(not wartosc[3]))then if((obslugiwane(name2))and((tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]==0)))then return true; end; end; end; end; end; end; return czy; end; local function inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) local element=tab[k]; local czy=false; if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(wartosc[1])then if((not wartosc[4])and(not wartosc[2])and(not wartosc[3]))then if((obslugiwane(name2))and((tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]>0)))then return true; end; end; end; end; end; end; return czy; end; local function inne_elementy_powtarzane_i_z_mozliwymi_dopuszczalnymi_pustymi_wartosciami(k) local element=tab[k]; local czy=true; if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(wartosc[1])then if(wartosc[2])then if(not wartosc[3])then if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]))then if(#tabelka_parametrow_rodzica[name2]==0)then return false; else return true; end; end; elseif((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]))then return true; end; end; end; end; end; end; return false; end; local strony_modul=require("Module:Strony"); local NumerPlik=function(k,v,zapytajnik,tryb) local czy_zapytajnik=(zapytajnik~="?"); local zero=(czy_zapytajnik and(#v==0)); if(zero)then table.insert(invalid, argName(k)); elseif((czy_zapytajnik)or((not czy_zapytajnik)and(#v~=0)))then local u=strony_modul.SprawdzanieRozmiaruPliku{rozmiar=v,tryb=tryb,}; if not u then table.insert(invalid,argName(k)) end; end; end; local GrafikaPlik=function(k,v,zapytajnik,przestrzen) local czy_zapytajnik=(zapytajnik~="?"); local zero=(czy_zapytajnik and(#v==0)); if(zero)then table.insert(invalid, argName(k)) elseif((czy_zapytajnik)or((not czy_zapytajnik)and(#v~=0)))then if strony_modul.ZnajdowanieNormalnychStronHttp(v) then table.insert(nakedurl, argName(k)) else local g = strony_modul.SprawdzanieNazwyPlikowe{nazwa = v, ["przestrzeń"]=przestrzen, }; if not g then table.insert(invalid, argName(k)) end end; end; end; for k, v in pairs(tabelka_parametrow_rodzica) do required[k] = false local kind=obslugiwane(k); local zapytajnik; local wykrzyknik; if (kind) then local kind2;local zmienne; kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*(!?^.*$)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$"); if((not kind2)or(not zmienne)or (not zapytajnik))then kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*(!?^.*$%s*%+[^;]-)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$"); if((not kind2)or(not zmienne)or (not zapytajnik))then kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*([^;]-%s*%+%s*!?^.*$)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$"); if((not kind2)or(not zmienne)or (not zapytajnik))then kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*([^;]-)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$"); end; end; end; if((kind2)and(zmienne))then local tab2=mw.text.split(mw.text.trim(zmienne),"%s*;%s*",false); tab[k]={}; for _,value in ipairs(tab2) do value=mw.text.trim(value); local indeks=tonumber(value) or mw.ustring.gsub(value,"{{[^{}]+}}",tablica_mikroszablonow); local indeks2,wykrzyknik=mw.ustring.match(tostring(indeks),"^%s*(.*)%s*(!!?)%s*$"); local indeks3,zapytajnik=mw.ustring.match(tostring(indeks2 or indeks),"^%s*(.*)%s*(%?)%s*$"); local inne,indeks4=mw.ustring.match(tostring(indeks3 or indeks2 or indeks),"^%s*(!)%s*(.*)%s*$"); tab[k][indeks4 or indeks3 or indeks2 or indeks]={((not inne) and true or false), ((not wykrzyknik) and true or false), ((not zapytajnik) and true or false), ((not (wykrzyknik=="!!")) and true or false), }; end; kind=mw.ustring.gsub(kind2,"{{[^{}]+}}",tablica_mikroszablonow); else kind2,zapytajnik,wykrzyknik=mw.ustring.match(kind,"^%s*(!?%s*^.*$)%s*(%??)%s*(!?)%s*$"); if(not kind2)or(not zapytajnik)then kind2,zapytajnik,wykrzyknik=mw.ustring.match(kind,"^%s*(.-)%s*(%??)%s*(!?)%s*$"); end; kind=mw.ustring.gsub(kind2,"{{[^{}]+}}",tablica_mikroszablonow); end; end; kind=kind and mw.text.trim(kind); if k == "" then emptyArg = v elseif not kind or inne_elementy_nieobslugiwane(k) then table.insert(unknown, argName(k)) elseif inne_elementy_powtarzane_i_z_mozliwymi_dopuszczalnymi_pustymi_wartosciami(k) then table.insert(repeated, argName(k)); elseif inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) then table.insert(empty, k); elseif inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) then table.insert(noempty, k); elseif inne_elementy_konieczne(k) then table.insert(konieczne, k); else local old,__kind=mw.ustring.match(kind,"^%s*(old)%s*%+%s*(.-)%s*$"); if(not old or not __kind)then __kind,old=mw.ustring.match(kind,"^%s*(.*)%s*%+%s*(old)%s*$"); end; if(old and __kind)then table.insert(deprecated, argName(k)); kind=__kind; end; if(kind == "")then -- Kod pusty elseif (kind == "num") then if(zapytajnik~="?")then local n = tonumber(v) if not n then table.insert(invalid, argName(k)) end else local n = (#v == 0) or tonumber(v) if not n then table.insert(invalid, argName(k)) end end; elseif (kind == "uri") then if(zapytajnik~="?")then local u = strony_modul.SprawdzanieURL(v) if not u then table.insert(invalid, argName(k)) end else local u = (#v == 0) or strony_modul.SprawdzanieURL(v) if not u then table.insert(invalid, argName(k)) end end; elseif(kind=="txt")then if(zapytajnik~="?")then if #v == 0 then table.insert(invalid, argName(k)) end; end; elseif (kind=="all")then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) end; end; end; elseif(kind=="grafika")then GrafikaPlik(k,v,zapytajnik,false); elseif(kind=="grafika*")then GrafikaPlik(k,v,zapytajnik,true); elseif (kind == "text") then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u= strony_modul.ZnajdowaniePlikowe(v); if(u)then table.insert(files, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieJakikolwiekStronHttp(v) if(u)then table.insert(exturl, argName(k)) end; end; end; end; end; elseif(kind == "text-img")then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieJakikolwiekStronHttp(v) if(u)then table.insert(exturl, argName(k)) end; end; end; end; elseif((kind == "text-link")or(kind == "tekst"))then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u= strony_modul.ZnajdowaniePlikowe(v); if(u)then table.insert(files, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) end; end; end; end; elseif ((not old)and(kind == "old")) then table.insert(deprecated, argName(k)); elseif(kind == "uri*")then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u = strony_modul.SprawdzanieURL(v) or strony_modul.SprawdzanieURL(mw.text.unstripNoWiki(v)) if not u then table.insert(invalid, argName(k)) end end; elseif(kind=="rozmiar")then NumerPlik(k,v,zapytajnik,false); elseif(kind=="rozmiar*")then NumerPlik(k,v,zapytajnik,true); elseif(kind~="")then local function regex(kind) local tab_pattern_wykrzyknik_lub_nie_wzorow={}; local pattern_poczatek=kind; local function funkcja_zbierajacy_dane_patternow(pattern_analiza_wzorow_koniunkcji) local tab_split_pattern_koniunkcji={}; local pattern_poczatek=pattern_analiza_wzorow_koniunkcji; repeat local pattern_poczatek_2,pattern_koniec=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*&%s*(.*)%s*$"); if(pattern_poczatek_2 and pattern_koniec)then table.insert(tab_split_pattern_koniunkcji,pattern_poczatek_2); pattern_poczatek=pattern_koniec; else local pattern_caly=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*$"); if pattern_caly then table.insert(tab_split_pattern_koniunkcji,pattern_caly); end; end; until not pattern_poczatek_2; local tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji={}; for _,wartosc_elementu_koniunkcji in ipairs(tab_split_pattern_koniunkcji)do local wykrzyknik,pattern=mw.ustring.match(wartosc_elementu_koniunkcji,"^%s*(!?)%s*(^.-$)%s*$"); table.insert(tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji,{[1]=pattern,[2]=wykrzyknik}); end; table.insert(tab_pattern_wykrzyknik_lub_nie_wzorow,tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji); end; repeat local pattern_poczatek_2,pattern_koniec=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*|%s*(.*)%s*$"); if pattern_poczatek_2 and pattern_koniec then funkcja_zbierajacy_dane_patternow(pattern_poczatek_2); pattern_poczatek=pattern_koniec; else local pattern_caly=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*$"); if(pattern_caly)then funkcja_zbierajacy_dane_patternow(pattern_caly); end; break; end; until not pattern_poczatek_2; if(#tab_pattern_wykrzyknik_lub_nie_wzorow>0)then for _ , tab_pattern_koniunkcja in ipairs(tab_pattern_wykrzyknik_lub_nie_wzorow) do local czy=true; for _,tab_pattern_elementy_koniunkcji in ipairs(tab_pattern_koniunkcja)do local pattern=tab_pattern_elementy_koniunkcji[1]; local wykrzyknik_negujacy_pattern=(tab_pattern_elementy_koniunkcji[2]=="!"); if(pattern)then if((not wykrzyknik_negujacy_pattern and mw.ustring.match(v, pattern))or(wykrzyknik_negujacy_pattern and not mw.ustring.match(v, pattern)))then czy=czy and true; if(not czy)then break; end; else czy=false; break; end; end end; if(czy)then return true;end; end; return false; end; return nil; end; if((zapytajnik)and((zapytajnik=="")or((zapytajnik=="?")and(#v>0))))then local wynik=regex(kind); if((type(wynik)~="nil")and(not wynik))then table.insert(invalid, argName(k)); elseif (#v > 0) and strony_modul.SprawdzanieURL(v) then table.insert(nakedurl, argName(k)) elseif strony_modul.ZnajdowanieNormalnychStronHttp(v) then table.insert(nakedurl, argName(k)) end; end; end end; end; local missing = {} local function inny_element2(k) local element=tab[k] if(element)then for name2,wartosc in pairs(element)do if((wartosc[2])and(k~=name2))then if(tabelka_parametrow_rodzica[name2] and obslugiwane(name2))then return true; end; end; end; end; for name,value in pairs(tab)do for name2,wartosc in pairs(value)do if((wartosc[2])and(name2==k)and(name2~=name))then if((tabelka_parametrow_rodzica[name])and obslugiwane(name))then return true; end; end; end; end; return false; end; for k, v in pairs(required) do if v and not inny_element2(k) then table.insert(missing, argName(k)) end end local czy_dokumentacja=parametry_modul.CzyTak(tabelka_parametrow_rodzica["dokumentacja"]); local czy_not_category=parametry_modul.CzyTak(tabelka_parametrow_rodzica["bez kategorii"]) or czy_dokumentacja; local function Szablon_z_sprawdz_parametry() if(czy_not_category)then return "";end; local nazwy_modul=require("Module:Nazwy"); local nazwa_szablonu=szablonowe_modul.NazwaSzablonu(nazwy_modul["PEŁNANAZWASTRONY"]()); if(templateName==nazwa_szablonu)then local sprawdz_modul=require("Module:Sprawdź"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); return "[["..nazwy_np_modul.Category..":"..sprawdz_modul["NazwaKategoriiSprawdzaniaParametrówSzablonu"]().."|"..nazwy_modul["NAZWASTRONY"]().."]]"; end; return ""; end; local czy_missing=parametry_modul["CzySąElementyNumerowaneTablicy"](missing); local czy_konieczne=parametry_modul["CzySąElementyNumerowaneTablicy"](konieczne); local czy_unknown=parametry_modul["CzySąElementyNumerowaneTablicy"](unknown); local czy_invalid=parametry_modul["CzySąElementyNumerowaneTablicy"](invalid); local czy_deprecated=parametry_modul["CzySąElementyNumerowaneTablicy"](deprecated); local czy_repeated=parametry_modul["CzySąElementyNumerowaneTablicy"](repeated); local czy_empty=parametry_modul["CzySąElementyNumerowaneTablicy"](empty); local czy_noempty=parametry_modul["CzySąElementyNumerowaneTablicy"](noempty); local czy_files=parametry_modul["CzySąElementyNumerowaneTablicy"](files); local czy_nakedurl=parametry_modul["CzySąElementyNumerowaneTablicy"](nakedurl); local czy_exturl=parametry_modul["CzySąElementyNumerowaneTablicy"](exturl); if ((not czy_missing) and (not czy_konieczne) and (not czy_unknown) and (not czy_invalid) and (not czy_deprecated) and (not czy_repeated) and (not czy_empty) and (not czy_noempty) and (not czy_files) and (not czy_nakedurl) and (not czy_exturl) and (not emptyArg)) then return Szablon_z_sprawdz_parametry(); end local czy_informacje=not (parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń dodatkowe informacje"]) or czy_dokumentacja); local result; if(czy_informacje)then result=mw.html.create("span") result:addClass("problemy"); result:addClass("error"); result:css('white-space','pre-line'); result:css('font-size','unset'); end; local typ; local typ_jednostki; local czy_nazwij_jednostka=parametry_modul.CzyTak(tabelka_parametrow_rodzica["nazwij jednostką"]); ----[""]=?--- local config = frame.args[""] local class, space, category = string.match(config or "", "^%s*(%S+)(%s+)(.-)%s*$") local nl = space and string.match(space, "\n") or "" class = class or config ---- if(((czy_informacje)and(not czy_nazwij_jednostka))or((category)and((not czy_not_category)and(mw.ustring.match(category,"%%s.-%%s")))))then --local frame2=pf:newChild{args = {["obsługiwane jednostki jako nieopisowe strony"]="tak"}} local pudelko_modul=require("Module:Pudełko"); typ_jednostki=pudelko_modul["Typ jednostki 2"]{args={ ["obsługiwane jednostki jako nieopisowe strony"]="tak", ["nazwa przestrzeni nazw"]=pf and pf.args["tytuł przestrzeni nazw"] or frame.args["tytuł przestrzeni nazw"], ["nazwa jednostki"]=pf and pf.args["tytuł jednostki"] or frame.args["tytuł jednostki"], ["typ jednostki"]=pf and pf.args["rodzaj jednostki"] or frame.args["rodzaj jednostki"], },}; if(typ_jednostki=="artykuł")then typ="(artykuły)"; elseif(typ_jednostki=="artykuł dla dzieci")then typ="(artykuły dla dzieci)"; elseif(typ_jednostki=="strona użytkownika")then typ="(strony użytkowników)"; elseif(typ_jednostki=="strona brudnopisu projektu")then typ="(strony brudnopisu projektu)"; else typ="(strony niepodręcznikowe)"; end; else typ=nil; end; if(czy_informacje)then if(not czy_nazwij_jednostka)then if typ_jednostki=="artykuł" or typ_jednostki=="artykuł dla dzieci" or typ_jednostki=="strona użytkownika" or typ_jednostki=="strona brudnopisu projektu" then result:css("display", "none"); result:css("color","black"); else result:css("color", "red") end else result:css("color", "red") end; end; local czy_warning=not (parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń ostrzeżenie"]) or czy_dokumentacja); local message; if(czy_informacje or czy_warning)then message=mw.html.create() if emptyArg then message:wikitext("Podano parametr o nazwie pustej o wartosci: |=", emptyArg, "|.<br/>") end if czy_missing then message:wikitext("Brakujące pola, które powinny być koniecznie podane: ", mw.text.listToText(missing), ".<br/>") end if czy_konieczne then for _,_konieczne in ipairs(konieczne) do message:wikitext("Konieczne pola, które powinny być używane z innymi parametrami, dla "..argName(_konieczne)..": "..mw.text.listToText(tab_inne_elementy_konieczne(_konieczne))..".<br/>") end; end if czy_invalid then message:wikitext("O nieprawidłowej wartości pola: ", mw.text.listToText(invalid), ".<br/>") end if czy_unknown then message:wikitext("Nieznane pola używane przez szablon: ", mw.text.listToText(unknown), ".<br/>") end if czy_deprecated then message:wikitext("Przestarzałe pola, które są obsługiwane, ale których nie powinno się raczej używać: ", mw.text.listToText(deprecated), ".<br/>") end if czy_repeated then message:wikitext("Pola o odpowiedniej podanej wartości, które nie powinne być używane z innymi parametrami lub z tymi podanymi: ", mw.text.listToText(repeated), ".<br/>") end if czy_empty then for _,_empty in ipairs(empty) do message:wikitext("Dla pola "..argName(_empty).." wykryto wartości z pustymi polami: "..mw.text.listToText(tab_inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(_empty))..", które powinny być niepuste.<br/>") end; end if czy_noempty then for _,_noempty in ipairs(noempty) do message:wikitext("Dla pola "..argName(_noempty).." wykryto wartości z niepustymi polami: "..mw.text.listToText(tab_inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(_noempty))..", które powinny być niepuste.<br/>") end; end if czy_files then for _,_files in ipairs(files) do message:wikitext("Dla pola "..argName(_files).." wykryto nieoczekiwaną grafikę: " .. mw.text.listToText(files) .. ".") end; end; if czy_nakedurl then for _,_nakedurl in ipairs(nakedurl) do message:wikitext("Dla pola "..argName(_nakedurl).." wykryto gołe linki: " .. mw.text.listToText(nakedurl) .. ".") end; end; if czy_exturl then for _,_exturl in ipairs(exturl) do message:wikitext("Dla pola "..argName(_exturl).." wykryto linki zewnętrzne: " .. mw.text.listToText(exturl) .. ".") end; end; end; local warning; if(czy_warning)then warning = mw.html.create('span'); warning:css('color','red'); warning:css('white-space','pre-line'); warning:css('word-break','break-all'); warning:addClass("problemy"); end; if(templateName)then mw.logObject(templateName, "templateName") local dwukropek=mw.ustring.match(templateName,"^%s*:"); local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](templateName); local wywolanie;local wywolanie2; local szablonowe_modul=require("Module:Szablonowe"); if dwukropek or nazwa_przestrzeni_strony~="" then wywolanie=szablonowe_modul["PokazanieWywołaniaSzablonu"](templateName,tabelka_parametrow_rodzica); wywolanie2="{{"..templateName.."}}"; if(parametry_modul.CzyTak(category))then templateName=mw.ustring.gsub(templateName,"^%s*:",""); if(not czy_not_category)then if(typ)then category=mw.ustring.format(category,templateName,typ); else category=mw.ustring.format(category,templateName); end; category=pf:preprocess(category); end; class=mw.ustring.format(class,mw.ustring.gsub(templateName,"%s+","-")); end; else wywolanie=szablonowe_modul["PokazanieWywołaniaSzablonu"](templateName,tabelka_parametrow_rodzica); wywolanie2="{{"..templateName.."}}"; if(parametry_modul.CzyTak(category))then local bez_pierwszej_litery=mw.ustring.match(templateName,"^.(.*)"); local czy_jest_wielka_litera=mw.ustring.match(bez_pierwszej_litery,"%u"); local szablon; if(not czy_jest_wielka_litera)then szablon=mw.getContentLanguage():lcfirst(templateName);else szablon=templateName;end; if(not czy_not_category)then if(typ)then category=mw.ustring.format(category,szablon,typ); else category=mw.ustring.format(category,szablon); end; category=pf:preprocess(category); end; class=mw.ustring.format(class,mw.ustring.gsub(szablon,"%s+","-")); end; end if(czy_warning)then local strong = mw.html.create('strong'); strong:wikitext("Wywołanie ") local span = mw.html.create('span'); span:css('font-weight','normal'); span:css('white-space','pre'); span:css('color',"brown"); span:wikitext(wywolanie); local strong2=mw.html.create('strong'); strong2:wikitext(" z wykrytymi parametrami z nieprawidłościami:<br/>"); warning:node(strong); warning:node(span); warning:node(strong2); end; if(czy_informacje)then local strong = mw.html.create('strong'); strong:wikitext("Szablon "..wywolanie2.." z wykrytymi parametrami z nieprawidłościami:<br/>"); result:node(strong); end; end; local czy_usun_linkowanie=parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń linkowanie"]) or czy_dokumentacja; if(not czy_usun_linkowanie)then local _ = mw.title.new("Module:Sprawdź/Wywołanie funkcji/Parametry").id; end; if(czy_informacje or czy_warning)then message = tostring(message) end; if(czy_warning)then warning:wikitext(message); mw.addWarning(tostring(warning)); end; if czy_informacje and class then result:addClass(class) end if(czy_informacje)then result:wikitext(message);end; local str_category; if not czy_not_category and category then str_category=category; else str_category=""; end return nl..((czy_informacje)and tostring(result:allDone()) or "")..str_category..Szablon_z_sprawdz_parametry(); end, ["odn"] = function(frame) local pf = frame:getParent() local i = 1 local problems = false local yeardetected = false while true do local arg = pf.args[i] if not arg then problems = i == 1 and "brak argumentów" or false break end if (i > 5) or yeardetected then problems = "za dużo argumentów pozycyjnych" break end if #arg == 0 then problems = "pusty argument" break end if arg ~= mw.text.trim(arg) then problems = "nieoczekiwane odstępy na początku lub końcu argumentu" break end if string.match(arg, "^%d+%l?$") then yeardetected = true if i == 1 then problems = "rok musi być ostatnim parametrem po nazwiskach autorów" break end elseif string.match(arg, "^s[%-%.:]%s*%d+") then problems = "prawdopodobnie nieprawidłowo podany numer strony" break elseif string.match(arg, "%s%s") then problems = "podwójne odstępy" break elseif mw.ustring.match(arg, "^%a+%d") then if not mw.ustring.match(arg, "^[%u%d]+$") then problems = "prawdopodobnie sklejone argumenty (brak pionowej kreski)" break end elseif mw.ustring.match(arg, "^OdeB ") then -- [[Ordre de Bataille]] elseif mw.ustring.match(arg, "^%u%l+%u") then local justification = { ["De"] = true, ["Del"] = true, ["Di"] = true, ["Le"] = true, ["Mac"] = true, ["Mc"] = true, ["Te"] = true, -- TeSelle ["Sar"] = true, -- SarDesai ["Van"] = true, -- VanBuren ["La"] = true, -- LaSalle } if not justification[mw.ustring.match(arg, "^%u%l+")] then problems = "prawdopodobnie sklejone argumenty (brak pionowej kreski)" break end end i = i + 1 end if not problems then local odn = pf.args.odn if odn and ((#odn ~= 1) or (odn < "a") or (odn > "z")) then problems = "nieoczekiwany parametr odn" end end if not problems then local s = pf.args.s if s and string.match(s, "&[a-z]+;") then problems = "użyto encji HTML w numerze strony" end end if not problems then if pf.args.strona or pf.args.ss or pf.args.strony or pf.args.p or pf.args.page or pf.args.pp or pf.args.pages then problems = "przestarzały parametr z numerem strony" end end if not problems then return nil end local result = mw.html.create("span"):addClass("problemy-w-odn") local frame2=pf:newChild{args = {["obsługiwane jednostki jako nieopisowe strony"]="tak"}} local typ_jednostki=require("Module:Pudełko")["Typ jednostki 2"](frame2) if typ_jednostki=="artykuł" or typ_jednostki=="artykuł dla dzieci" or typ_jednostki=="strona użytkownika" or typ_jednostki=="strona brudnopisu projektu" then result:css("display", "none") else result:css("color", "red") end local typ; if(typ_jednostki=="artykuł")then typ="artykuły"; elseif(typ_jednostki=="artykuł dla dzieci")then typ="artykuły dla dzieci"; elseif(typ_jednostki=="strona użytkownika")then typ="strony użytkowników"; elseif(typ_jednostki=="strona brudnopisu projektu")then typ="strony brudnopisu projektu"; else typ="strony niepodręcznikowe"; end; local kategorie_modul=require("Module:Kategorie"); local str_kategoria=kategorie_modul.Kategoria{args={[1]="Szablon odn ("..typ..") do sprawdzenia"}}; result:wikitext(str_kategoria); result:wikitext("ODN: ", problems) return tostring(result) end, ["Wikidane"] = function(frame) local property = frame.args.cecha local field = frame.args.pole local value = frame.args[1] if not property or not field then return end if not value then value = frame:getParent().args[field] if not value or (#value == 0) then return end end local entity = mw.wikibase.getEntity() if not entity or not entity.claims or not entity.claims[property] then return end for i, v in ipairs(entity.claims[property]) do if v.mainsnak.snaktype == "value" then if value == v.mainsnak.datavalue.value then return end end end local template = frame:getParent():getTitle() local infobox = mw.ustring.match(template, "^Szablon:(.- infobox)$") return mw.ustring.format("[[Kategoria:%s – niezgodność w Wikidanych – %s – %s]]", infobox and "Infoboksy" or "Szablony", infobox or template, field) end, ["bez parametrów"] = function(frame) for k, v in pairs(frame:getParent().args) do return nil end return "tak" end, ["pole z hostem"] = function (frame) local host = frame.args.host if host and (#host > 0) then for k, v in pairs(frame:getParent().args) do local link = string.match(v, "[hH][tT][tT][pP][sS]?://[%S]+") if link then local uri = mw.uri.new(link) local valid, _ = mw.uri.validate(uri) if valid and uri.host and (#uri.host > 0) then if host == uri.host then mw.logObject({k, link}, "cały") return k end if #host < #uri.host then local s1 = '.'..host local s2 = string.sub(uri.host, -#s1) if s1 == s2 then mw.logObject({k, link}, "fragment") return k end end end end end end end, ["pola z autorami"] = function (frame) local result = {} local nazwisko = frame.args["nazwisko"] local imie = frame.args["imię"] local autor = frame.args["autor"] local link = frame.args["link"] local maxIndex = tonumber(frame.args["max"]) local prefix = frame.args["przed"] or "" local suffix = frame.args["po"] or "" for i = 1, maxIndex do local s = i == 1 and "" or tostring(i) local nin = string.gsub(nazwisko, '#', s) local iin = string.gsub(imie, '#', s) local ain = string.gsub(autor, '#', s) local lin = string.gsub(link, '#', s) local niv = frame:getParent().args[nin] local iiv = frame:getParent().args[iin] local aiv = frame:getParent().args[ain] local liv = frame:getParent().args[lin] local nis = niv and (#niv > 0) local iis = iiv and (#iiv > 0) local ais = aiv and (#aiv > 0) local lis = liv and (#liv > 0) local bad = (nis and ais) -- nazwisko -> zbędny autor or (nis and not iis) -- nazwisko bez imienia or (lis and not nis and not ais) -- tylko link or (iis and not nis) -- imię bez nazwiska if bad then table.insert(result, i) end end if #result > 0 then return prefix..mw.text.listToText(result)..suffix end end, ["pola z gołymi linkami"] = function (frame) local result = {} for k, v in pairs(frame:getParent().args) do local link = string.match(v, "^[hH][tT][tT][pP][sS]?://[%S]+") if link then local justified = frame.args[k] if not justified then mw.logObject(v,k) table.insert(result, '"'..k..'"') end end end return mw.text.listToText(result) end, ["uri"] = function(frame) mw.logObject(frame:getParent():getTitle(), "parent:title") _ = mw.title.new("Moduł:Sprawdź/deprecated/uri").id local link = frame.args["link"] local space = frame.args["spacja"] local strony_modul=require("Module:Strony"); local check = strony_modul.SprawdzanieURL(link) if check then return link end return (space and (check ~= nil)) and link or "" end, ["url"] = function(frame) local link = frame.args[1] local okText = frame.args[2] or "ok" local isValid = string.find(link, '{{{') == 1 or checkUri(link) if isValid then return okText end return "" end, ["lista nazw niepustych argumentów"] = function(frame) local argNames = {} for k, v in pairs(frame:getParent().args) do if #mw.text.trim(v) > 0 then table.insert(argNames, tostring(k)) end end return table.concat(argNames, ", ") end, } 4qhnjjo5capufv8cvkr9dand9hn2zqn 543805 543804 2026-05-22T02:22:15Z Persino 2851 543805 Scribunto text/plain return { ["NazwaKategoriiSprawdzaniaParametrówSzablonu"]=function() return "Szablony z dodatkową opcją sprawdzania parametrów"; end; ["UsuńKategorięSprawdzaniaParametrówSzablonu"]=function(frame) local wikikod=frame.args[1]; local sprawdz_modul=require("Module:Sprawdź"); local kategoria_sprawdzania_parametrow=sprawdz_modul["NazwaKategoriiSprawdzaniaParametrówSzablonu"](); local specjalne_modul=require("Module:Specjalne"); return specjalne_modul["UsuńŚciśleOkreśloneKategorie"]{[1]=wikikod,[2]=kategoria_sprawdzania_parametrow,} end; ["Porównaj"] = function(frame) local pf=frame:getParent(); local config = pf.args[""] or "" local brudnopis=pf.args["brudnopis"]; local options = mw.text.split(config, "|") local templateName = mw.text.trim(options[1]) if #templateName == 0 then local title = mw.title.getCurrentTitle() if title.namespace == 10 then templateName = mw.ustring.match(title.text, "^(.-)/opis") or mw.ustring.match(title.text, "^(.-)/test") or mw.ustring.match(title.text, "^(.-)/brudnopis") or title.text end if #templateName == 0 then mw.log("brak nazwy szablonu") return end end local i = 2 local showparams = true local showinfo = true local vertical = false local brudnopis; while i <= #options do local parametr,wartosc=mw.ustring.match(options[i],"^([^%=]*)%=(.*)$") if(not parametr)then local option = mw.text.trim(options[i]) if option == "bez wikikodu" then showparams = false elseif option == "bez opisu" then showinfo = false elseif option == "pionowo" then vertical = true end else local parametr=mw.text.trim(parametr) if(parametr=="brudnopis")then brudnopis=mw.text.trim(wartosc); end; end i = i + 1 end; local templateTitle = mw.title.new(templateName, 10) if templateTitle.id == 0 then mw.log("szablon '"..templateName.."' nie istnieje") return end local sandboxName = brudnopis or (templateName.."/brudnopis") local sandboxTitle = mw.title.new(sandboxName, 10) if sandboxTitle.id == 0 then mw.log("brudnopis '"..sandboxName.."' nie istnieje") return end local templateParams = {} local params = {} for k, v in pairs(pf.args) do if (k ~= "") then templateParams[k] = v table.insert(params, k) end end local result = {} table.insert(result, '<table style="width: 100%;">') if showparams and (#params > 0) then local compare = function(a, b) -- return a < b if (type(a) == "number") and (type(b) == "number") then return a < b end if (type(a) == "string") and (type(b) == "string") then return a < b end if (type(a) == "number") and (type(b) == "string") then return true end return false end table.sort(params, compare) table.insert(result, "<caption><code>&#x7B;&#x7B;") table.insert(result, templateName) for i, k in ipairs(params) do table.insert(result, " &#x7C; ") local p = mw.text.nowiki(tostring(k)) local v = mw.text.nowiki(templateParams[k]) table.insert(result, p) table.insert(result, " = ") table.insert(result, v) end table.insert(result, "&#x7D;&#x7D;</code></caption>") end local templateResult = frame:expandTemplate{ title=templateName, args=templateParams} local sandboxResult = frame:expandTemplate{ title=sandboxName, args=templateParams} if templateResult and string.match(templateResult, "^{|") then templateResult = "\n"..templateResult end if sandboxResult and string.match(sandboxResult, "^{|") then sandboxResult = "\n"..sandboxResult end if vertical and showinfo then table.insert(result, '<tr><th style="width: 15em">[[Szablon:') table.insert(result, templateName) table.insert(result, '|Szablon]]</th><td>') table.insert(result, templateResult) table.insert(result, '</td></tr><tr><th>[[Szablon:') table.insert(result, sandboxName) table.insert(result, '|Brudnopis szablonu]]</th><td>') table.insert(result, sandboxResult) table.insert(result, '</td></tr>') elseif vertical then table.insert(result, '<tr><td>') table.insert(result, templateResult) table.insert(result, '</td></tr><tr><td>') table.insert(result, sandboxResult) table.insert(result, '</td></tr>') else if showinfo then table.insert(result, '<tr><th style="width: 50%;">[[Szablon:') table.insert(result, templateName) table.insert(result, '|Szablon]]</th><th style="width: 50%;">[[Szablon:') table.insert(result, sandboxName) table.insert(result, '|Brudnopis szablonu]]</th></tr>') end table.insert(result, '<tr style="vertical-align: top;"><td>') table.insert(result, templateResult) table.insert(result, '</td><td>') table.insert(result, sandboxResult) table.insert(result, '</td></tr>') end table.insert(result, "</table>") return table.concat(result) end, ["Parametry"] = function(frame) local pf=frame:getParent(); local unknown = {} local invalid = {} local deprecated = {} local nakedurl = {} local exturl = {} local files = {}; local templateName; local function argName(arg) local span = mw.html.create('span'); span:css('white-space','pre'); span:wikitext(arg); return type(arg) ~= "string" and tostring(arg) or ('"'..tostring(span:allDone())..'"'); end local ramka_modul=require("Module:Ramka"); local tabelka1=ramka_modul.RozpakujArgumenty(frame.args["bez argumentów szablonu"]); local tabelka2=ramka_modul.RozpakujArgumenty(pf.args["bez argumentów szablonu"]); local parametry_modul=require("Module:Parametry"); local tabelka_bez_argumentow=parametry_modul["ŁączDwieTabele"](tabelka1,tabelka2) local required = {}; local repeated = {}; local konieczne = {}; local empty = {}; local noempty = {}; local tabelka_argumentow_systemowych_funkcji={ ["nazwa przestrzeni nazw"]="", ["nazwa jednostki"]="txt", ["typ jednostki"]="txt", ["tytuł przestrzeni nazw"]="", ["tytuł jednostki"]="txt", ["rodzaj jednostki"]="txt", ["strona główna dla dzieci"]="txt", ["strona główna projektu"]="txt", ---- Kategorie błędów; ["usuń dodatkowe informacje"]="", ["usuń ostrzeżenie"]="", ["usuń linkowanie"]="", ["bez dodatkowych sprawdzeń"]="", -- parametr systemowy szablonu do nieuruchamiania tej funkcji; ["dokumentacja"]="", -- parametr używany zamiast: "bez kategorii", "usuń dodatkowe informacje", "usuń ostrzeżenie" i "usuń linkowanie"; ["bez kategorii"]="", -- parametr systemowy szablonu, by kategorie się nie pojawiały ---- Koniec kategorii błędów; };--tabelka powyższa jest tabelką argumentów systemowych tej funkcji tego modułu; local tabelka_argumentow_dodatkowych_funkcji={ ["bez argumentów szablonu"]="", -- zawiera w sobie argumenty szablonu - oddzielone średnikem, których szablon nie może zawierać w wywołaniu; ["dodaj parametry pudełka"]="", -- dodaje parametry funkcji: Ogólne pudełko, modułu Pudełko; }; local tabelka_argumentow_systemowych_szablonu={ ["nazwij jednostką"]="", -- parametr systemowy funkcji mówiący, czy dowolną jednostkę nazwać po prostu jednostką; }; -- tabelka powyższa jest tabelką argumentów systemowych szablonu wywołującego tę funkcję tego modułu; local tabelka_parametrow_rodzica={}; local parametry_rodzica=parametry_modul.CzyTak(pf.args["potomek"])and pf.args["parametry rodzica"]; local szablonowe_modul=require("Module:Szablonowe"); if(parametry_rodzica)then tabelka_parametrow_rodzica=ramka_modul.RozpakujParametry(parametry_rodzica); templateName=pf.args["nazwa szablonu rodzica"] or szablonowe_modul.NazwaSzablonu(pf:getTitle()); else tabelka_parametrow_rodzica=pf.args; templateName=szablonowe_modul.NazwaSzablonu(pf:getTitle()); end; local czy_dodaj_parametry_pudelka=parametry_modul.CzyTak(frame.args["dodaj parametry pudełka"]); if(czy_dodaj_parametry_pudelka)then--dodaje parametry pudełka tabelka_argumentow_systemowych_szablonu["parametry pudełka"]=""; tabelka_argumentow_systemowych_szablonu["bez błędu"]=""; tabelka_argumentow_systemowych_szablonu["bez szczegółów"]=""; --dodaje parametry nienazwane i dla parametru: 1, którego ewentualną pierwszą nazwą jest: cel-- local maksimum=parametry_modul.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabelka_parametrow_rodzica); for i=1,maksimum,1 do if(i>1)then tabelka_argumentow_systemowych_szablonu[i]="txt!"; else tabelka_argumentow_systemowych_szablonu[1]="txt!;cel"; end; end; tabelka_argumentow_systemowych_szablonu["cel"]="txt!;1" end; local tablica_mikroszablonow={ ["{{+}}"]=";", ["{{!+}}"]="^", ["{{+!}}"]="$", }; tabelka_bez_argumentow=parametry_modul["UsuńElementyTabeli"](tabelka_bez_argumentow,tabelka_argumentow_systemowych_funkcji); tabelka_bez_argumentow=parametry_modul["UsuńElementyTabeli"](tabelka_bez_argumentow,tabelka_argumentow_systemowych_szablonu); local zmienna_sprawdzania_parametrow=pf.args["zmienna sprawdzania parametrów"]; local zmienne_dodane={}; if(zmienna_sprawdzania_parametrow)then local tabelka_zmiennych=mw.text.split(zmienna_sprawdzania_parametrow,";;",false); for poz,war in ipairs(tabelka_zmiennych)do local zmienna,wartosc=mw.ustring.match(war,"^%s*(.+)%s*=%s*(.*)%s*$") if((zmienna)and(wartosc))then zmienna=mw.text.trim(zmienna); wartosc=mw.text.trim(wartosc); zmienne_dodane[tonumber(zmienna) or mw.ustring.gsub(zmienna,"{{[^{}]+}}",tablica_mikroszablonow)]=wartosc; end; end; end; local zmienne_konieczne=function(tab,czy_odjete) for k, v in pairs(tab)do if(czy_odjete or ((not tabelka_argumentow_systemowych_funkcji[k]) and (not tabelka_argumentow_systemowych_szablonu[k]) and (not tabelka_bez_argumentow[k]) ) )then local wydziel=mw.ustring.match(v,"^%s*(^.*$%s*%??%s*!?)%s*"); if wydziel and mw.ustring.match(wydziel, "!%s*$") then required[k] = true elseif mw.ustring.match(mw.ustring.match(v,"^([^;]*!?)%s*"), "!%s*$") then required[k] = true end end; end; end; zmienne_konieczne(frame.args,false); zmienne_konieczne(zmienne_dodane,true); zmienne_konieczne(tabelka_argumentow_systemowych_funkcji,true); zmienne_konieczne(tabelka_argumentow_systemowych_szablonu,true); local emptyArg = false local obslugiwane=function(k) local kind=(not tabelka_argumentow_dodatkowych_funkcji[k]) and ((not tabelka_bez_argumentow[k]) and (tabelka_argumentow_systemowych_funkcji[k] or tabelka_argumentow_systemowych_szablonu[k] or zmienne_dodane[k] or frame.args[k])); return kind; end; local tab={}; local function inne_elementy_konieczne(k) local element=tab[k] if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((wartosc[1])and(not wartosc[2])and (not tabelka_parametrow_rodzica[name2]) and (obslugiwane(name2)))then return true; end; end; end; end; return false; end; local function tab_inne_elementy_konieczne(k) local element=tab[k] local tab_konieczne={}; if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((wartosc[1])and(not wartosc[2])and (not tabelka_parametrow_rodzica[name2]) and (obslugiwane(name2)))then table.insert(tab_konieczne,argName(tonumber(name2) or name2)); end; end; end; end; return tab_konieczne; end; local function inne_elementy_nieobslugiwane(k) local element=tab[k] if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(not wartosc[1])then if(not wartosc[2] and not wartosc[3])then if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]) and(((wartosc[4])and (#tabelka_parametrow_rodzica[name2]>0) )or((not wartosc[4])and(#tabelka_parametrow_rodzica[name2]==0))) )then return true; else return false; end; elseif(not wartosc[2] and wartosc[3])then return true; elseif(wartosc[2] and not wartosc[3])then if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]==0))then return true; else return false; end; end; end; end; end; end; return false; end; local function tab_inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) local element=tab[k]; local tab_konieczne_puste={}; if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((wartosc[4])and(not wartosc[2])and (not wartosc[3])and (tabelka_parametrow_rodzica[name2]) and(#tabelka_parametrow_rodzica[name2]==0) and (obslugiwane(name2)))then table.insert(tab_konieczne_puste,argName(tonumber(name2) or name2)); end; end; end; end; return tab_konieczne_puste; end; local function tab_inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) local element=tab[k]; local tab_konieczne_puste={}; if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((not wartosc[4])and(not wartosc[2])and (not wartosc[3])and (tabelka_parametrow_rodzica[name2]) and(#tabelka_parametrow_rodzica[name2]>0) and (obslugiwane(name2)))then table.insert(tab_konieczne_puste,argName(tonumber(name2) or name2)); end; end; end; end; return tab_konieczne_puste; end; local function inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) local element=tab[k]; local czy=false; if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(wartosc[1])then if((wartosc[4])and(not wartosc[2])and(not wartosc[3]))then if((obslugiwane(name2))and((tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]==0)))then return true; end; end; end; end; end; end; return czy; end; local function inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) local element=tab[k]; local czy=false; if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(wartosc[1])then if((not wartosc[4])and(not wartosc[2])and(not wartosc[3]))then if((obslugiwane(name2))and((tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]>0)))then return true; end; end; end; end; end; end; return czy; end; local function inne_elementy_powtarzane_i_z_mozliwymi_dopuszczalnymi_pustymi_wartosciami(k) local element=tab[k]; local czy=true; if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(wartosc[1])then if(wartosc[2])then if(not wartosc[3])then if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]))then if(#tabelka_parametrow_rodzica[name2]==0)then return false; else return true; end; end; elseif((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]))then return true; end; end; end; end; end; end; return false; end; local strony_modul=require("Module:Strony"); local NumerPlik=function(k,v,zapytajnik,tryb) local czy_zapytajnik=(zapytajnik~="?"); local zero=(czy_zapytajnik and(#v==0)); if(zero)then table.insert(invalid, argName(k)); elseif((czy_zapytajnik)or((not czy_zapytajnik)and(#v~=0)))then local u=strony_modul.SprawdzanieRozmiaruPliku{rozmiar=v,tryb=tryb,}; if not u then table.insert(invalid,argName(k)) end; end; end; local GrafikaPlik=function(k,v,zapytajnik,przestrzen) local czy_zapytajnik=(zapytajnik~="?"); local zero=(czy_zapytajnik and(#v==0)); if(zero)then table.insert(invalid, argName(k)) elseif((czy_zapytajnik)or((not czy_zapytajnik)and(#v~=0)))then if strony_modul.ZnajdowanieNormalnychStronHttp(v) then table.insert(nakedurl, argName(k)) else local g = strony_modul.SprawdzanieNazwyPlikowe{nazwa = v, ["przestrzeń"]=przestrzen, }; if not g then table.insert(invalid, argName(k)) end end; end; end; for k, v in pairs(tabelka_parametrow_rodzica) do required[k] = false local kind=obslugiwane(k); local zapytajnik; local wykrzyknik; if (kind) then local kind2;local zmienne; kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*(!?^.*$)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$"); if((not kind2)or(not zmienne)or (not zapytajnik))then kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*(!?^.*$%s*%+[^;]-)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$"); if((not kind2)or(not zmienne)or (not zapytajnik))then kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*([^;]-%s*%+%s*!?^.*$)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$"); if((not kind2)or(not zmienne)or (not zapytajnik))then kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*([^;]-)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$"); end; end; end; if((kind2)and(zmienne))then local tab2=mw.text.split(mw.text.trim(zmienne),"%s*;%s*",false); tab[k]={}; for _,value in ipairs(tab2) do value=mw.text.trim(value); local indeks=tonumber(value) or mw.ustring.gsub(value,"{{[^{}]+}}",tablica_mikroszablonow); local indeks2,wykrzyknik=mw.ustring.match(tostring(indeks),"^%s*(.*)%s*(!!?)%s*$"); local indeks3,zapytajnik=mw.ustring.match(tostring(indeks2 or indeks),"^%s*(.*)%s*(%?)%s*$"); local inne,indeks4=mw.ustring.match(tostring(indeks3 or indeks2 or indeks),"^%s*(!)%s*(.*)%s*$"); tab[k][indeks4 or indeks3 or indeks2 or indeks]={((not inne) and true or false), ((not wykrzyknik) and true or false), ((not zapytajnik) and true or false), ((not (wykrzyknik=="!!")) and true or false), }; end; kind=mw.ustring.gsub(kind2,"{{[^{}]+}}",tablica_mikroszablonow); else kind2,zapytajnik,wykrzyknik=mw.ustring.match(kind,"^%s*(!?%s*^.*$)%s*(%??)%s*(!?)%s*$"); if(not kind2)or(not zapytajnik)then kind2,zapytajnik,wykrzyknik=mw.ustring.match(kind,"^%s*(.-)%s*(%??)%s*(!?)%s*$"); end; kind=mw.ustring.gsub(kind2,"{{[^{}]+}}",tablica_mikroszablonow); end; end; kind=kind and mw.text.trim(kind); if k == "" then emptyArg = v elseif not kind or inne_elementy_nieobslugiwane(k) then table.insert(unknown, argName(k)) elseif inne_elementy_powtarzane_i_z_mozliwymi_dopuszczalnymi_pustymi_wartosciami(k) then table.insert(repeated, argName(k)); elseif inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) then table.insert(empty, k); elseif inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) then table.insert(noempty, k); elseif inne_elementy_konieczne(k) then table.insert(konieczne, k); else local old,__kind=mw.ustring.match(kind,"^%s*(old)%s*%+%s*(.-)%s*$"); if(not old or not __kind)then __kind,old=mw.ustring.match(kind,"^%s*(.-)%s*%+%s*(old)%s*$"); end; if(old and __kind)then table.insert(deprecated, argName(k)); kind=__kind; end; if(kind == "")then -- Kod pusty elseif (kind == "num") then if(zapytajnik~="?")then local n = tonumber(v) if not n then table.insert(invalid, argName(k)) end else local n = (#v == 0) or tonumber(v) if not n then table.insert(invalid, argName(k)) end end; elseif (kind == "uri") then if(zapytajnik~="?")then local u = strony_modul.SprawdzanieURL(v) if not u then table.insert(invalid, argName(k)) end else local u = (#v == 0) or strony_modul.SprawdzanieURL(v) if not u then table.insert(invalid, argName(k)) end end; elseif(kind=="txt")then if(zapytajnik~="?")then if #v == 0 then table.insert(invalid, argName(k)) end; end; elseif (kind=="all")then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) end; end; end; elseif(kind=="grafika")then GrafikaPlik(k,v,zapytajnik,false); elseif(kind=="grafika*")then GrafikaPlik(k,v,zapytajnik,true); elseif (kind == "text") then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u= strony_modul.ZnajdowaniePlikowe(v); if(u)then table.insert(files, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieJakikolwiekStronHttp(v) if(u)then table.insert(exturl, argName(k)) end; end; end; end; end; elseif(kind == "text-img")then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieJakikolwiekStronHttp(v) if(u)then table.insert(exturl, argName(k)) end; end; end; end; elseif((kind == "text-link")or(kind == "tekst"))then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u= strony_modul.ZnajdowaniePlikowe(v); if(u)then table.insert(files, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) end; end; end; end; elseif ((not old)and(kind == "old")) then table.insert(deprecated, argName(k)); elseif(kind == "uri*")then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u = strony_modul.SprawdzanieURL(v) or strony_modul.SprawdzanieURL(mw.text.unstripNoWiki(v)) if not u then table.insert(invalid, argName(k)) end end; elseif(kind=="rozmiar")then NumerPlik(k,v,zapytajnik,false); elseif(kind=="rozmiar*")then NumerPlik(k,v,zapytajnik,true); elseif(kind~="")then local function regex(kind) local tab_pattern_wykrzyknik_lub_nie_wzorow={}; local pattern_poczatek=kind; local function funkcja_zbierajacy_dane_patternow(pattern_analiza_wzorow_koniunkcji) local tab_split_pattern_koniunkcji={}; local pattern_poczatek=pattern_analiza_wzorow_koniunkcji; repeat local pattern_poczatek_2,pattern_koniec=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*&%s*(.*)%s*$"); if(pattern_poczatek_2 and pattern_koniec)then table.insert(tab_split_pattern_koniunkcji,pattern_poczatek_2); pattern_poczatek=pattern_koniec; else local pattern_caly=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*$"); if pattern_caly then table.insert(tab_split_pattern_koniunkcji,pattern_caly); end; end; until not pattern_poczatek_2; local tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji={}; for _,wartosc_elementu_koniunkcji in ipairs(tab_split_pattern_koniunkcji)do local wykrzyknik,pattern=mw.ustring.match(wartosc_elementu_koniunkcji,"^%s*(!?)%s*(^.-$)%s*$"); table.insert(tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji,{[1]=pattern,[2]=wykrzyknik}); end; table.insert(tab_pattern_wykrzyknik_lub_nie_wzorow,tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji); end; repeat local pattern_poczatek_2,pattern_koniec=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*|%s*(.*)%s*$"); if pattern_poczatek_2 and pattern_koniec then funkcja_zbierajacy_dane_patternow(pattern_poczatek_2); pattern_poczatek=pattern_koniec; else local pattern_caly=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*$"); if(pattern_caly)then funkcja_zbierajacy_dane_patternow(pattern_caly); end; break; end; until not pattern_poczatek_2; if(#tab_pattern_wykrzyknik_lub_nie_wzorow>0)then for _ , tab_pattern_koniunkcja in ipairs(tab_pattern_wykrzyknik_lub_nie_wzorow) do local czy=true; for _,tab_pattern_elementy_koniunkcji in ipairs(tab_pattern_koniunkcja)do local pattern=tab_pattern_elementy_koniunkcji[1]; local wykrzyknik_negujacy_pattern=(tab_pattern_elementy_koniunkcji[2]=="!"); if(pattern)then if((not wykrzyknik_negujacy_pattern and mw.ustring.match(v, pattern))or(wykrzyknik_negujacy_pattern and not mw.ustring.match(v, pattern)))then czy=czy and true; if(not czy)then break; end; else czy=false; break; end; end end; if(czy)then return true;end; end; return false; end; return nil; end; if((zapytajnik)and((zapytajnik=="")or((zapytajnik=="?")and(#v>0))))then local wynik=regex(kind); if((type(wynik)~="nil")and(not wynik))then table.insert(invalid, argName(k)); elseif (#v > 0) and strony_modul.SprawdzanieURL(v) then table.insert(nakedurl, argName(k)) elseif strony_modul.ZnajdowanieNormalnychStronHttp(v) then table.insert(nakedurl, argName(k)) end; end; end end; end; local missing = {} local function inny_element2(k) local element=tab[k] if(element)then for name2,wartosc in pairs(element)do if((wartosc[2])and(k~=name2))then if(tabelka_parametrow_rodzica[name2] and obslugiwane(name2))then return true; end; end; end; end; for name,value in pairs(tab)do for name2,wartosc in pairs(value)do if((wartosc[2])and(name2==k)and(name2~=name))then if((tabelka_parametrow_rodzica[name])and obslugiwane(name))then return true; end; end; end; end; return false; end; for k, v in pairs(required) do if v and not inny_element2(k) then table.insert(missing, argName(k)) end end local czy_dokumentacja=parametry_modul.CzyTak(tabelka_parametrow_rodzica["dokumentacja"]); local czy_not_category=parametry_modul.CzyTak(tabelka_parametrow_rodzica["bez kategorii"]) or czy_dokumentacja; local function Szablon_z_sprawdz_parametry() if(czy_not_category)then return "";end; local nazwy_modul=require("Module:Nazwy"); local nazwa_szablonu=szablonowe_modul.NazwaSzablonu(nazwy_modul["PEŁNANAZWASTRONY"]()); if(templateName==nazwa_szablonu)then local sprawdz_modul=require("Module:Sprawdź"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); return "[["..nazwy_np_modul.Category..":"..sprawdz_modul["NazwaKategoriiSprawdzaniaParametrówSzablonu"]().."|"..nazwy_modul["NAZWASTRONY"]().."]]"; end; return ""; end; local czy_missing=parametry_modul["CzySąElementyNumerowaneTablicy"](missing); local czy_konieczne=parametry_modul["CzySąElementyNumerowaneTablicy"](konieczne); local czy_unknown=parametry_modul["CzySąElementyNumerowaneTablicy"](unknown); local czy_invalid=parametry_modul["CzySąElementyNumerowaneTablicy"](invalid); local czy_deprecated=parametry_modul["CzySąElementyNumerowaneTablicy"](deprecated); local czy_repeated=parametry_modul["CzySąElementyNumerowaneTablicy"](repeated); local czy_empty=parametry_modul["CzySąElementyNumerowaneTablicy"](empty); local czy_noempty=parametry_modul["CzySąElementyNumerowaneTablicy"](noempty); local czy_files=parametry_modul["CzySąElementyNumerowaneTablicy"](files); local czy_nakedurl=parametry_modul["CzySąElementyNumerowaneTablicy"](nakedurl); local czy_exturl=parametry_modul["CzySąElementyNumerowaneTablicy"](exturl); if ((not czy_missing) and (not czy_konieczne) and (not czy_unknown) and (not czy_invalid) and (not czy_deprecated) and (not czy_repeated) and (not czy_empty) and (not czy_noempty) and (not czy_files) and (not czy_nakedurl) and (not czy_exturl) and (not emptyArg)) then return Szablon_z_sprawdz_parametry(); end local czy_informacje=not (parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń dodatkowe informacje"]) or czy_dokumentacja); local result; if(czy_informacje)then result=mw.html.create("span") result:addClass("problemy"); result:addClass("error"); result:css('white-space','pre-line'); result:css('font-size','unset'); end; local typ; local typ_jednostki; local czy_nazwij_jednostka=parametry_modul.CzyTak(tabelka_parametrow_rodzica["nazwij jednostką"]); ----[""]=?--- local config = frame.args[""] local class, space, category = string.match(config or "", "^%s*(%S+)(%s+)(.-)%s*$") local nl = space and string.match(space, "\n") or "" class = class or config ---- if(((czy_informacje)and(not czy_nazwij_jednostka))or((category)and((not czy_not_category)and(mw.ustring.match(category,"%%s.-%%s")))))then --local frame2=pf:newChild{args = {["obsługiwane jednostki jako nieopisowe strony"]="tak"}} local pudelko_modul=require("Module:Pudełko"); typ_jednostki=pudelko_modul["Typ jednostki 2"]{args={ ["obsługiwane jednostki jako nieopisowe strony"]="tak", ["nazwa przestrzeni nazw"]=pf and pf.args["tytuł przestrzeni nazw"] or frame.args["tytuł przestrzeni nazw"], ["nazwa jednostki"]=pf and pf.args["tytuł jednostki"] or frame.args["tytuł jednostki"], ["typ jednostki"]=pf and pf.args["rodzaj jednostki"] or frame.args["rodzaj jednostki"], },}; if(typ_jednostki=="artykuł")then typ="(artykuły)"; elseif(typ_jednostki=="artykuł dla dzieci")then typ="(artykuły dla dzieci)"; elseif(typ_jednostki=="strona użytkownika")then typ="(strony użytkowników)"; elseif(typ_jednostki=="strona brudnopisu projektu")then typ="(strony brudnopisu projektu)"; else typ="(strony niepodręcznikowe)"; end; else typ=nil; end; if(czy_informacje)then if(not czy_nazwij_jednostka)then if typ_jednostki=="artykuł" or typ_jednostki=="artykuł dla dzieci" or typ_jednostki=="strona użytkownika" or typ_jednostki=="strona brudnopisu projektu" then result:css("display", "none"); result:css("color","black"); else result:css("color", "red") end else result:css("color", "red") end; end; local czy_warning=not (parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń ostrzeżenie"]) or czy_dokumentacja); local message; if(czy_informacje or czy_warning)then message=mw.html.create() if emptyArg then message:wikitext("Podano parametr o nazwie pustej o wartosci: |=", emptyArg, "|.<br/>") end if czy_missing then message:wikitext("Brakujące pola, które powinny być koniecznie podane: ", mw.text.listToText(missing), ".<br/>") end if czy_konieczne then for _,_konieczne in ipairs(konieczne) do message:wikitext("Konieczne pola, które powinny być używane z innymi parametrami, dla "..argName(_konieczne)..": "..mw.text.listToText(tab_inne_elementy_konieczne(_konieczne))..".<br/>") end; end if czy_invalid then message:wikitext("O nieprawidłowej wartości pola: ", mw.text.listToText(invalid), ".<br/>") end if czy_unknown then message:wikitext("Nieznane pola używane przez szablon: ", mw.text.listToText(unknown), ".<br/>") end if czy_deprecated then message:wikitext("Przestarzałe pola, które są obsługiwane, ale których nie powinno się raczej używać: ", mw.text.listToText(deprecated), ".<br/>") end if czy_repeated then message:wikitext("Pola o odpowiedniej podanej wartości, które nie powinne być używane z innymi parametrami lub z tymi podanymi: ", mw.text.listToText(repeated), ".<br/>") end if czy_empty then for _,_empty in ipairs(empty) do message:wikitext("Dla pola "..argName(_empty).." wykryto wartości z pustymi polami: "..mw.text.listToText(tab_inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(_empty))..", które powinny być niepuste.<br/>") end; end if czy_noempty then for _,_noempty in ipairs(noempty) do message:wikitext("Dla pola "..argName(_noempty).." wykryto wartości z niepustymi polami: "..mw.text.listToText(tab_inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(_noempty))..", które powinny być niepuste.<br/>") end; end if czy_files then for _,_files in ipairs(files) do message:wikitext("Dla pola "..argName(_files).." wykryto nieoczekiwaną grafikę: " .. mw.text.listToText(files) .. ".") end; end; if czy_nakedurl then for _,_nakedurl in ipairs(nakedurl) do message:wikitext("Dla pola "..argName(_nakedurl).." wykryto gołe linki: " .. mw.text.listToText(nakedurl) .. ".") end; end; if czy_exturl then for _,_exturl in ipairs(exturl) do message:wikitext("Dla pola "..argName(_exturl).." wykryto linki zewnętrzne: " .. mw.text.listToText(exturl) .. ".") end; end; end; local warning; if(czy_warning)then warning = mw.html.create('span'); warning:css('color','red'); warning:css('white-space','pre-line'); warning:css('word-break','break-all'); warning:addClass("problemy"); end; if(templateName)then mw.logObject(templateName, "templateName") local dwukropek=mw.ustring.match(templateName,"^%s*:"); local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](templateName); local wywolanie;local wywolanie2; local szablonowe_modul=require("Module:Szablonowe"); if dwukropek or nazwa_przestrzeni_strony~="" then wywolanie=szablonowe_modul["PokazanieWywołaniaSzablonu"](templateName,tabelka_parametrow_rodzica); wywolanie2="{{"..templateName.."}}"; if(parametry_modul.CzyTak(category))then templateName=mw.ustring.gsub(templateName,"^%s*:",""); if(not czy_not_category)then if(typ)then category=mw.ustring.format(category,templateName,typ); else category=mw.ustring.format(category,templateName); end; category=pf:preprocess(category); end; class=mw.ustring.format(class,mw.ustring.gsub(templateName,"%s+","-")); end; else wywolanie=szablonowe_modul["PokazanieWywołaniaSzablonu"](templateName,tabelka_parametrow_rodzica); wywolanie2="{{"..templateName.."}}"; if(parametry_modul.CzyTak(category))then local bez_pierwszej_litery=mw.ustring.match(templateName,"^.(.*)"); local czy_jest_wielka_litera=mw.ustring.match(bez_pierwszej_litery,"%u"); local szablon; if(not czy_jest_wielka_litera)then szablon=mw.getContentLanguage():lcfirst(templateName);else szablon=templateName;end; if(not czy_not_category)then if(typ)then category=mw.ustring.format(category,szablon,typ); else category=mw.ustring.format(category,szablon); end; category=pf:preprocess(category); end; class=mw.ustring.format(class,mw.ustring.gsub(szablon,"%s+","-")); end; end if(czy_warning)then local strong = mw.html.create('strong'); strong:wikitext("Wywołanie ") local span = mw.html.create('span'); span:css('font-weight','normal'); span:css('white-space','pre'); span:css('color',"brown"); span:wikitext(wywolanie); local strong2=mw.html.create('strong'); strong2:wikitext(" z wykrytymi parametrami z nieprawidłościami:<br/>"); warning:node(strong); warning:node(span); warning:node(strong2); end; if(czy_informacje)then local strong = mw.html.create('strong'); strong:wikitext("Szablon "..wywolanie2.." z wykrytymi parametrami z nieprawidłościami:<br/>"); result:node(strong); end; end; local czy_usun_linkowanie=parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń linkowanie"]) or czy_dokumentacja; if(not czy_usun_linkowanie)then local _ = mw.title.new("Module:Sprawdź/Wywołanie funkcji/Parametry").id; end; if(czy_informacje or czy_warning)then message = tostring(message) end; if(czy_warning)then warning:wikitext(message); mw.addWarning(tostring(warning)); end; if czy_informacje and class then result:addClass(class) end if(czy_informacje)then result:wikitext(message);end; local str_category; if not czy_not_category and category then str_category=category; else str_category=""; end return nl..((czy_informacje)and tostring(result:allDone()) or "")..str_category..Szablon_z_sprawdz_parametry(); end, ["odn"] = function(frame) local pf = frame:getParent() local i = 1 local problems = false local yeardetected = false while true do local arg = pf.args[i] if not arg then problems = i == 1 and "brak argumentów" or false break end if (i > 5) or yeardetected then problems = "za dużo argumentów pozycyjnych" break end if #arg == 0 then problems = "pusty argument" break end if arg ~= mw.text.trim(arg) then problems = "nieoczekiwane odstępy na początku lub końcu argumentu" break end if string.match(arg, "^%d+%l?$") then yeardetected = true if i == 1 then problems = "rok musi być ostatnim parametrem po nazwiskach autorów" break end elseif string.match(arg, "^s[%-%.:]%s*%d+") then problems = "prawdopodobnie nieprawidłowo podany numer strony" break elseif string.match(arg, "%s%s") then problems = "podwójne odstępy" break elseif mw.ustring.match(arg, "^%a+%d") then if not mw.ustring.match(arg, "^[%u%d]+$") then problems = "prawdopodobnie sklejone argumenty (brak pionowej kreski)" break end elseif mw.ustring.match(arg, "^OdeB ") then -- [[Ordre de Bataille]] elseif mw.ustring.match(arg, "^%u%l+%u") then local justification = { ["De"] = true, ["Del"] = true, ["Di"] = true, ["Le"] = true, ["Mac"] = true, ["Mc"] = true, ["Te"] = true, -- TeSelle ["Sar"] = true, -- SarDesai ["Van"] = true, -- VanBuren ["La"] = true, -- LaSalle } if not justification[mw.ustring.match(arg, "^%u%l+")] then problems = "prawdopodobnie sklejone argumenty (brak pionowej kreski)" break end end i = i + 1 end if not problems then local odn = pf.args.odn if odn and ((#odn ~= 1) or (odn < "a") or (odn > "z")) then problems = "nieoczekiwany parametr odn" end end if not problems then local s = pf.args.s if s and string.match(s, "&[a-z]+;") then problems = "użyto encji HTML w numerze strony" end end if not problems then if pf.args.strona or pf.args.ss or pf.args.strony or pf.args.p or pf.args.page or pf.args.pp or pf.args.pages then problems = "przestarzały parametr z numerem strony" end end if not problems then return nil end local result = mw.html.create("span"):addClass("problemy-w-odn") local frame2=pf:newChild{args = {["obsługiwane jednostki jako nieopisowe strony"]="tak"}} local typ_jednostki=require("Module:Pudełko")["Typ jednostki 2"](frame2) if typ_jednostki=="artykuł" or typ_jednostki=="artykuł dla dzieci" or typ_jednostki=="strona użytkownika" or typ_jednostki=="strona brudnopisu projektu" then result:css("display", "none") else result:css("color", "red") end local typ; if(typ_jednostki=="artykuł")then typ="artykuły"; elseif(typ_jednostki=="artykuł dla dzieci")then typ="artykuły dla dzieci"; elseif(typ_jednostki=="strona użytkownika")then typ="strony użytkowników"; elseif(typ_jednostki=="strona brudnopisu projektu")then typ="strony brudnopisu projektu"; else typ="strony niepodręcznikowe"; end; local kategorie_modul=require("Module:Kategorie"); local str_kategoria=kategorie_modul.Kategoria{args={[1]="Szablon odn ("..typ..") do sprawdzenia"}}; result:wikitext(str_kategoria); result:wikitext("ODN: ", problems) return tostring(result) end, ["Wikidane"] = function(frame) local property = frame.args.cecha local field = frame.args.pole local value = frame.args[1] if not property or not field then return end if not value then value = frame:getParent().args[field] if not value or (#value == 0) then return end end local entity = mw.wikibase.getEntity() if not entity or not entity.claims or not entity.claims[property] then return end for i, v in ipairs(entity.claims[property]) do if v.mainsnak.snaktype == "value" then if value == v.mainsnak.datavalue.value then return end end end local template = frame:getParent():getTitle() local infobox = mw.ustring.match(template, "^Szablon:(.- infobox)$") return mw.ustring.format("[[Kategoria:%s – niezgodność w Wikidanych – %s – %s]]", infobox and "Infoboksy" or "Szablony", infobox or template, field) end, ["bez parametrów"] = function(frame) for k, v in pairs(frame:getParent().args) do return nil end return "tak" end, ["pole z hostem"] = function (frame) local host = frame.args.host if host and (#host > 0) then for k, v in pairs(frame:getParent().args) do local link = string.match(v, "[hH][tT][tT][pP][sS]?://[%S]+") if link then local uri = mw.uri.new(link) local valid, _ = mw.uri.validate(uri) if valid and uri.host and (#uri.host > 0) then if host == uri.host then mw.logObject({k, link}, "cały") return k end if #host < #uri.host then local s1 = '.'..host local s2 = string.sub(uri.host, -#s1) if s1 == s2 then mw.logObject({k, link}, "fragment") return k end end end end end end end, ["pola z autorami"] = function (frame) local result = {} local nazwisko = frame.args["nazwisko"] local imie = frame.args["imię"] local autor = frame.args["autor"] local link = frame.args["link"] local maxIndex = tonumber(frame.args["max"]) local prefix = frame.args["przed"] or "" local suffix = frame.args["po"] or "" for i = 1, maxIndex do local s = i == 1 and "" or tostring(i) local nin = string.gsub(nazwisko, '#', s) local iin = string.gsub(imie, '#', s) local ain = string.gsub(autor, '#', s) local lin = string.gsub(link, '#', s) local niv = frame:getParent().args[nin] local iiv = frame:getParent().args[iin] local aiv = frame:getParent().args[ain] local liv = frame:getParent().args[lin] local nis = niv and (#niv > 0) local iis = iiv and (#iiv > 0) local ais = aiv and (#aiv > 0) local lis = liv and (#liv > 0) local bad = (nis and ais) -- nazwisko -> zbędny autor or (nis and not iis) -- nazwisko bez imienia or (lis and not nis and not ais) -- tylko link or (iis and not nis) -- imię bez nazwiska if bad then table.insert(result, i) end end if #result > 0 then return prefix..mw.text.listToText(result)..suffix end end, ["pola z gołymi linkami"] = function (frame) local result = {} for k, v in pairs(frame:getParent().args) do local link = string.match(v, "^[hH][tT][tT][pP][sS]?://[%S]+") if link then local justified = frame.args[k] if not justified then mw.logObject(v,k) table.insert(result, '"'..k..'"') end end end return mw.text.listToText(result) end, ["uri"] = function(frame) mw.logObject(frame:getParent():getTitle(), "parent:title") _ = mw.title.new("Moduł:Sprawdź/deprecated/uri").id local link = frame.args["link"] local space = frame.args["spacja"] local strony_modul=require("Module:Strony"); local check = strony_modul.SprawdzanieURL(link) if check then return link end return (space and (check ~= nil)) and link or "" end, ["url"] = function(frame) local link = frame.args[1] local okText = frame.args[2] or "ok" local isValid = string.find(link, '{{{') == 1 or checkUri(link) if isValid then return okText end return "" end, ["lista nazw niepustych argumentów"] = function(frame) local argNames = {} for k, v in pairs(frame:getParent().args) do if #mw.text.trim(v) > 0 then table.insert(argNames, tostring(k)) end end return table.concat(argNames, ", ") end, } 8z2czgdpxiwcbm8fhn0qikenl4d86th 543806 543805 2026-05-22T03:06:31Z Persino 2851 543806 Scribunto text/plain return { ["NazwaKategoriiSprawdzaniaParametrówSzablonu"]=function() return "Szablony z dodatkową opcją sprawdzania parametrów"; end; ["UsuńKategorięSprawdzaniaParametrówSzablonu"]=function(frame) local wikikod=frame.args[1]; local sprawdz_modul=require("Module:Sprawdź"); local kategoria_sprawdzania_parametrow=sprawdz_modul["NazwaKategoriiSprawdzaniaParametrówSzablonu"](); local specjalne_modul=require("Module:Specjalne"); return specjalne_modul["UsuńŚciśleOkreśloneKategorie"]{[1]=wikikod,[2]=kategoria_sprawdzania_parametrow,} end; ["Porównaj"] = function(frame) local pf=frame:getParent(); local config = pf.args[""] or "" local brudnopis=pf.args["brudnopis"]; local options = mw.text.split(config, "|") local templateName = mw.text.trim(options[1]) if #templateName == 0 then local title = mw.title.getCurrentTitle() if title.namespace == 10 then templateName = mw.ustring.match(title.text, "^(.-)/opis") or mw.ustring.match(title.text, "^(.-)/test") or mw.ustring.match(title.text, "^(.-)/brudnopis") or title.text end if #templateName == 0 then mw.log("brak nazwy szablonu") return end end local i = 2 local showparams = true local showinfo = true local vertical = false local brudnopis; while i <= #options do local parametr,wartosc=mw.ustring.match(options[i],"^([^%=]*)%=(.*)$") if(not parametr)then local option = mw.text.trim(options[i]) if option == "bez wikikodu" then showparams = false elseif option == "bez opisu" then showinfo = false elseif option == "pionowo" then vertical = true end else local parametr=mw.text.trim(parametr) if(parametr=="brudnopis")then brudnopis=mw.text.trim(wartosc); end; end i = i + 1 end; local templateTitle = mw.title.new(templateName, 10) if templateTitle.id == 0 then mw.log("szablon '"..templateName.."' nie istnieje") return end local sandboxName = brudnopis or (templateName.."/brudnopis") local sandboxTitle = mw.title.new(sandboxName, 10) if sandboxTitle.id == 0 then mw.log("brudnopis '"..sandboxName.."' nie istnieje") return end local templateParams = {} local params = {} for k, v in pairs(pf.args) do if (k ~= "") then templateParams[k] = v table.insert(params, k) end end local result = {} table.insert(result, '<table style="width: 100%;">') if showparams and (#params > 0) then local compare = function(a, b) -- return a < b if (type(a) == "number") and (type(b) == "number") then return a < b end if (type(a) == "string") and (type(b) == "string") then return a < b end if (type(a) == "number") and (type(b) == "string") then return true end return false end table.sort(params, compare) table.insert(result, "<caption><code>&#x7B;&#x7B;") table.insert(result, templateName) for i, k in ipairs(params) do table.insert(result, " &#x7C; ") local p = mw.text.nowiki(tostring(k)) local v = mw.text.nowiki(templateParams[k]) table.insert(result, p) table.insert(result, " = ") table.insert(result, v) end table.insert(result, "&#x7D;&#x7D;</code></caption>") end local templateResult = frame:expandTemplate{ title=templateName, args=templateParams} local sandboxResult = frame:expandTemplate{ title=sandboxName, args=templateParams} if templateResult and string.match(templateResult, "^{|") then templateResult = "\n"..templateResult end if sandboxResult and string.match(sandboxResult, "^{|") then sandboxResult = "\n"..sandboxResult end if vertical and showinfo then table.insert(result, '<tr><th style="width: 15em">[[Szablon:') table.insert(result, templateName) table.insert(result, '|Szablon]]</th><td>') table.insert(result, templateResult) table.insert(result, '</td></tr><tr><th>[[Szablon:') table.insert(result, sandboxName) table.insert(result, '|Brudnopis szablonu]]</th><td>') table.insert(result, sandboxResult) table.insert(result, '</td></tr>') elseif vertical then table.insert(result, '<tr><td>') table.insert(result, templateResult) table.insert(result, '</td></tr><tr><td>') table.insert(result, sandboxResult) table.insert(result, '</td></tr>') else if showinfo then table.insert(result, '<tr><th style="width: 50%;">[[Szablon:') table.insert(result, templateName) table.insert(result, '|Szablon]]</th><th style="width: 50%;">[[Szablon:') table.insert(result, sandboxName) table.insert(result, '|Brudnopis szablonu]]</th></tr>') end table.insert(result, '<tr style="vertical-align: top;"><td>') table.insert(result, templateResult) table.insert(result, '</td><td>') table.insert(result, sandboxResult) table.insert(result, '</td></tr>') end table.insert(result, "</table>") return table.concat(result) end, ["Parametry"] = function(frame) local pf=frame:getParent(); local unknown = {} local invalid = {} local deprecated = {} local nakedurl = {} local exturl = {} local files = {}; local templateName; local function argName(arg) local span = mw.html.create('span'); span:css('white-space','pre'); span:wikitext(arg); return type(arg) ~= "string" and tostring(arg) or ('"'..tostring(span:allDone())..'"'); end local ramka_modul=require("Module:Ramka"); local tabelka1=ramka_modul.RozpakujArgumenty(frame.args["bez argumentów szablonu"]); local tabelka2=ramka_modul.RozpakujArgumenty(pf.args["bez argumentów szablonu"]); local parametry_modul=require("Module:Parametry"); local tabelka_bez_argumentow=parametry_modul["ŁączDwieTabele"](tabelka1,tabelka2) local required = {}; local repeated = {}; local konieczne = {}; local empty = {}; local noempty = {}; local tabelka_argumentow_systemowych_funkcji={ ["nazwa przestrzeni nazw"]="", ["nazwa jednostki"]="txt", ["typ jednostki"]="txt", ["tytuł przestrzeni nazw"]="", ["tytuł jednostki"]="txt", ["rodzaj jednostki"]="txt", ["strona główna dla dzieci"]="txt", ["strona główna projektu"]="txt", ---- Kategorie błędów; ["usuń dodatkowe informacje"]="", ["usuń ostrzeżenie"]="", ["usuń linkowanie"]="", ["bez dodatkowych sprawdzeń"]="", -- parametr systemowy szablonu do nieuruchamiania tej funkcji; ["dokumentacja"]="", -- parametr używany zamiast: "bez kategorii", "usuń dodatkowe informacje", "usuń ostrzeżenie" i "usuń linkowanie"; ["bez kategorii"]="", -- parametr systemowy szablonu, by kategorie się nie pojawiały ---- Koniec kategorii błędów; };--tabelka powyższa jest tabelką argumentów systemowych tej funkcji tego modułu; local tabelka_argumentow_dodatkowych_funkcji={ ["bez argumentów szablonu"]="", -- zawiera w sobie argumenty szablonu - oddzielone średnikem, których szablon nie może zawierać w wywołaniu; ["dodaj parametry pudełka"]="", -- dodaje parametry funkcji: Ogólne pudełko, modułu Pudełko; }; local tabelka_argumentow_systemowych_szablonu={ ["nazwij jednostką"]="", -- parametr systemowy funkcji mówiący, czy dowolną jednostkę nazwać po prostu jednostką; }; -- tabelka powyższa jest tabelką argumentów systemowych szablonu wywołującego tę funkcję tego modułu; local tabelka_parametrow_rodzica={}; local parametry_rodzica=parametry_modul.CzyTak(pf.args["potomek"])and pf.args["parametry rodzica"]; local szablonowe_modul=require("Module:Szablonowe"); if(parametry_rodzica)then tabelka_parametrow_rodzica=ramka_modul.RozpakujParametry(parametry_rodzica); templateName=pf.args["nazwa szablonu rodzica"] or szablonowe_modul.NazwaSzablonu(pf:getTitle()); else tabelka_parametrow_rodzica=pf.args; templateName=szablonowe_modul.NazwaSzablonu(pf:getTitle()); end; local czy_dokumentacja=((parametry_modul.CzyTak(frame.args["dokumentacja"])) or (parametry_modul.CzyTak(tabelka_parametrow_rodzica["dokumentacja"]))); if(czy_dokumentacja)then return;end; local czy_dodaj_parametry_pudelka=parametry_modul.CzyTak(frame.args["dodaj parametry pudełka"]); if(czy_dodaj_parametry_pudelka)then--dodaje parametry pudełka tabelka_argumentow_systemowych_szablonu["parametry pudełka"]=""; tabelka_argumentow_systemowych_szablonu["bez błędu"]=""; tabelka_argumentow_systemowych_szablonu["bez szczegółów"]=""; --dodaje parametry nienazwane i dla parametru: 1, którego ewentualną pierwszą nazwą jest: cel-- local maksimum=parametry_modul.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabelka_parametrow_rodzica); for i=1,maksimum,1 do if(i>1)then tabelka_argumentow_systemowych_szablonu[i]="txt!"; else tabelka_argumentow_systemowych_szablonu[1]="txt!;cel"; end; end; tabelka_argumentow_systemowych_szablonu["cel"]="txt!;1" end; local tablica_mikroszablonow={ ["{{+}}"]=";", ["{{!+}}"]="^", ["{{+!}}"]="$", }; tabelka_bez_argumentow=parametry_modul["UsuńElementyTabeli"](tabelka_bez_argumentow,tabelka_argumentow_systemowych_funkcji); tabelka_bez_argumentow=parametry_modul["UsuńElementyTabeli"](tabelka_bez_argumentow,tabelka_argumentow_systemowych_szablonu); local zmienna_sprawdzania_parametrow=pf.args["zmienna sprawdzania parametrów"]; local zmienne_dodane={}; if(zmienna_sprawdzania_parametrow)then local tabelka_zmiennych=mw.text.split(zmienna_sprawdzania_parametrow,";;",false); for poz,war in ipairs(tabelka_zmiennych)do local zmienna,wartosc=mw.ustring.match(war,"^%s*(.+)%s*=%s*(.*)%s*$") if((zmienna)and(wartosc))then zmienna=mw.text.trim(zmienna); wartosc=mw.text.trim(wartosc); zmienne_dodane[tonumber(zmienna) or mw.ustring.gsub(zmienna,"{{[^{}]+}}",tablica_mikroszablonow)]=wartosc; end; end; end; local zmienne_konieczne=function(tab,czy_odjete) for k, v in pairs(tab)do if(czy_odjete or ((not tabelka_argumentow_systemowych_funkcji[k]) and (not tabelka_argumentow_systemowych_szablonu[k]) and (not tabelka_bez_argumentow[k]) ) )then local wydziel=mw.ustring.match(v,"^%s*(^.*$%s*%??%s*!?)%s*"); if wydziel and mw.ustring.match(wydziel, "!%s*$") then required[k] = true elseif mw.ustring.match(mw.ustring.match(v,"^([^;]*!?)%s*"), "!%s*$") then required[k] = true end end; end; end; zmienne_konieczne(frame.args,false); zmienne_konieczne(zmienne_dodane,true); zmienne_konieczne(tabelka_argumentow_systemowych_funkcji,true); zmienne_konieczne(tabelka_argumentow_systemowych_szablonu,true); local emptyArg = false local obslugiwane=function(k) local kind=(not tabelka_argumentow_dodatkowych_funkcji[k]) and ((not tabelka_bez_argumentow[k]) and (tabelka_argumentow_systemowych_funkcji[k] or tabelka_argumentow_systemowych_szablonu[k] or zmienne_dodane[k] or frame.args[k])); return kind; end; local tab={}; local function inne_elementy_konieczne(k) local element=tab[k] if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((wartosc[1])and(not wartosc[2])and (not tabelka_parametrow_rodzica[name2]) and (obslugiwane(name2)))then return true; end; end; end; end; return false; end; local function tab_inne_elementy_konieczne(k) local element=tab[k] local tab_konieczne={}; if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((wartosc[1])and(not wartosc[2])and (not tabelka_parametrow_rodzica[name2]) and (obslugiwane(name2)))then table.insert(tab_konieczne,argName(tonumber(name2) or name2)); end; end; end; end; return tab_konieczne; end; local function inne_elementy_nieobslugiwane(k) local element=tab[k] if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(not wartosc[1])then if(not wartosc[2] and not wartosc[3])then if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]) and(((wartosc[4])and (#tabelka_parametrow_rodzica[name2]>0) )or((not wartosc[4])and(#tabelka_parametrow_rodzica[name2]==0))) )then return true; else return false; end; elseif(not wartosc[2] and wartosc[3])then return true; elseif(wartosc[2] and not wartosc[3])then if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]==0))then return true; else return false; end; end; end; end; end; end; return false; end; local function tab_inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) local element=tab[k]; local tab_konieczne_puste={}; if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((wartosc[4])and(not wartosc[2])and (not wartosc[3])and (tabelka_parametrow_rodzica[name2]) and(#tabelka_parametrow_rodzica[name2]==0) and (obslugiwane(name2)))then table.insert(tab_konieczne_puste,argName(tonumber(name2) or name2)); end; end; end; end; return tab_konieczne_puste; end; local function tab_inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) local element=tab[k]; local tab_konieczne_puste={}; if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((not wartosc[4])and(not wartosc[2])and (not wartosc[3])and (tabelka_parametrow_rodzica[name2]) and(#tabelka_parametrow_rodzica[name2]>0) and (obslugiwane(name2)))then table.insert(tab_konieczne_puste,argName(tonumber(name2) or name2)); end; end; end; end; return tab_konieczne_puste; end; local function inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) local element=tab[k]; local czy=false; if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(wartosc[1])then if((wartosc[4])and(not wartosc[2])and(not wartosc[3]))then if((obslugiwane(name2))and((tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]==0)))then return true; end; end; end; end; end; end; return czy; end; local function inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) local element=tab[k]; local czy=false; if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(wartosc[1])then if((not wartosc[4])and(not wartosc[2])and(not wartosc[3]))then if((obslugiwane(name2))and((tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]>0)))then return true; end; end; end; end; end; end; return czy; end; local function inne_elementy_powtarzane_i_z_mozliwymi_dopuszczalnymi_pustymi_wartosciami(k) local element=tab[k]; local czy=true; if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(wartosc[1])then if(wartosc[2])then if(not wartosc[3])then if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]))then if(#tabelka_parametrow_rodzica[name2]==0)then return false; else return true; end; end; elseif((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]))then return true; end; end; end; end; end; end; return false; end; local strony_modul=require("Module:Strony"); local NumerPlik=function(k,v,zapytajnik,tryb) local czy_zapytajnik=(zapytajnik~="?"); local zero=(czy_zapytajnik and(#v==0)); if(zero)then table.insert(invalid, argName(k)); elseif((czy_zapytajnik)or((not czy_zapytajnik)and(#v~=0)))then local u=strony_modul.SprawdzanieRozmiaruPliku{rozmiar=v,tryb=tryb,}; if not u then table.insert(invalid,argName(k)) end; end; end; local GrafikaPlik=function(k,v,zapytajnik,przestrzen) local czy_zapytajnik=(zapytajnik~="?"); local zero=(czy_zapytajnik and(#v==0)); if(zero)then table.insert(invalid, argName(k)) elseif((czy_zapytajnik)or((not czy_zapytajnik)and(#v~=0)))then if strony_modul.ZnajdowanieNormalnychStronHttp(v) then table.insert(nakedurl, argName(k)) else local g = strony_modul.SprawdzanieNazwyPlikowe{nazwa = v, ["przestrzeń"]=przestrzen, }; if not g then table.insert(invalid, argName(k)) end end; end; end; for k, v in pairs(tabelka_parametrow_rodzica) do required[k] = false local kind=obslugiwane(k); local zapytajnik; local wykrzyknik; if (kind) then local kind2;local zmienne; kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*(!?^.*$)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$"); if((not kind2)or(not zmienne)or (not zapytajnik))then kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*(!?^.*$%s*%+[^;]-)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$"); if((not kind2)or(not zmienne)or (not zapytajnik))then kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*([^;]-%s*%+%s*!?^.*$)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$"); if((not kind2)or(not zmienne)or (not zapytajnik))then kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*([^;]-)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$"); end; end; end; if((kind2)and(zmienne))then local tab2=mw.text.split(mw.text.trim(zmienne),"%s*;%s*",false); tab[k]={}; for _,value in ipairs(tab2) do value=mw.text.trim(value); local indeks=tonumber(value) or mw.ustring.gsub(value,"{{[^{}]+}}",tablica_mikroszablonow); local indeks2,wykrzyknik=mw.ustring.match(tostring(indeks),"^%s*(.*)%s*(!!?)%s*$"); local indeks3,zapytajnik=mw.ustring.match(tostring(indeks2 or indeks),"^%s*(.*)%s*(%?)%s*$"); local inne,indeks4=mw.ustring.match(tostring(indeks3 or indeks2 or indeks),"^%s*(!)%s*(.*)%s*$"); tab[k][indeks4 or indeks3 or indeks2 or indeks]={((not inne) and true or false), ((not wykrzyknik) and true or false), ((not zapytajnik) and true or false), ((not (wykrzyknik=="!!")) and true or false), }; end; kind=mw.ustring.gsub(kind2,"{{[^{}]+}}",tablica_mikroszablonow); else kind2,zapytajnik,wykrzyknik=mw.ustring.match(kind,"^%s*(!?%s*^.*$)%s*(%??)%s*(!?)%s*$"); if(not kind2)or(not zapytajnik)then kind2,zapytajnik,wykrzyknik=mw.ustring.match(kind,"^%s*(.-)%s*(%??)%s*(!?)%s*$"); end; kind=mw.ustring.gsub(kind2,"{{[^{}]+}}",tablica_mikroszablonow); end; end; kind=kind and mw.text.trim(kind); if k == "" then emptyArg = v elseif not kind or inne_elementy_nieobslugiwane(k) then table.insert(unknown, argName(k)) elseif inne_elementy_powtarzane_i_z_mozliwymi_dopuszczalnymi_pustymi_wartosciami(k) then table.insert(repeated, argName(k)); elseif inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) then table.insert(empty, k); elseif inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) then table.insert(noempty, k); elseif inne_elementy_konieczne(k) then table.insert(konieczne, k); else local old,__kind=mw.ustring.match(kind,"^%s*(old)%s*%+%s*(.-)%s*$"); if(not old or not __kind)then __kind,old=mw.ustring.match(kind,"^%s*(.-)%s*%+%s*(old)%s*$"); end; if(old and __kind)then table.insert(deprecated, argName(k)); kind=__kind; end; if(kind == "")then -- Kod pusty elseif (kind == "num") then if(zapytajnik~="?")then local n = tonumber(v) if not n then table.insert(invalid, argName(k)) end else local n = (#v == 0) or tonumber(v) if not n then table.insert(invalid, argName(k)) end end; elseif (kind == "uri") then if(zapytajnik~="?")then local u = strony_modul.SprawdzanieURL(v) if not u then table.insert(invalid, argName(k)) end else local u = (#v == 0) or strony_modul.SprawdzanieURL(v) if not u then table.insert(invalid, argName(k)) end end; elseif(kind=="txt")then if(zapytajnik~="?")then if #v == 0 then table.insert(invalid, argName(k)) end; end; elseif (kind=="all")then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) end; end; end; elseif(kind=="grafika")then GrafikaPlik(k,v,zapytajnik,false); elseif(kind=="grafika*")then GrafikaPlik(k,v,zapytajnik,true); elseif (kind == "text") then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u= strony_modul.ZnajdowaniePlikowe(v); if(u)then table.insert(files, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieJakikolwiekStronHttp(v) if(u)then table.insert(exturl, argName(k)) end; end; end; end; end; elseif(kind == "text-img")then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieJakikolwiekStronHttp(v) if(u)then table.insert(exturl, argName(k)) end; end; end; end; elseif((kind == "text-link")or(kind == "tekst"))then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u= strony_modul.ZnajdowaniePlikowe(v); if(u)then table.insert(files, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) end; end; end; end; elseif ((not old)and(kind == "old")) then table.insert(deprecated, argName(k)); elseif(kind == "uri*")then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u = strony_modul.SprawdzanieURL(v) or strony_modul.SprawdzanieURL(mw.text.unstripNoWiki(v)) if not u then table.insert(invalid, argName(k)) end end; elseif(kind=="rozmiar")then NumerPlik(k,v,zapytajnik,false); elseif(kind=="rozmiar*")then NumerPlik(k,v,zapytajnik,true); elseif(kind~="")then local function regex(kind) local tab_pattern_wykrzyknik_lub_nie_wzorow={}; local pattern_poczatek=kind; local function funkcja_zbierajacy_dane_patternow(pattern_analiza_wzorow_koniunkcji) local tab_split_pattern_koniunkcji={}; local pattern_poczatek=pattern_analiza_wzorow_koniunkcji; repeat local pattern_poczatek_2,pattern_koniec=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*&%s*(.*)%s*$"); if(pattern_poczatek_2 and pattern_koniec)then table.insert(tab_split_pattern_koniunkcji,pattern_poczatek_2); pattern_poczatek=pattern_koniec; else local pattern_caly=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*$"); if pattern_caly then table.insert(tab_split_pattern_koniunkcji,pattern_caly); end; end; until not pattern_poczatek_2; local tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji={}; for _,wartosc_elementu_koniunkcji in ipairs(tab_split_pattern_koniunkcji)do local wykrzyknik,pattern=mw.ustring.match(wartosc_elementu_koniunkcji,"^%s*(!?)%s*(^.-$)%s*$"); table.insert(tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji,{[1]=pattern,[2]=wykrzyknik}); end; table.insert(tab_pattern_wykrzyknik_lub_nie_wzorow,tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji); end; repeat local pattern_poczatek_2,pattern_koniec=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*|%s*(.*)%s*$"); if pattern_poczatek_2 and pattern_koniec then funkcja_zbierajacy_dane_patternow(pattern_poczatek_2); pattern_poczatek=pattern_koniec; else local pattern_caly=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*$"); if(pattern_caly)then funkcja_zbierajacy_dane_patternow(pattern_caly); end; break; end; until not pattern_poczatek_2; if(#tab_pattern_wykrzyknik_lub_nie_wzorow>0)then for _ , tab_pattern_koniunkcja in ipairs(tab_pattern_wykrzyknik_lub_nie_wzorow) do local czy=true; for _,tab_pattern_elementy_koniunkcji in ipairs(tab_pattern_koniunkcja)do local pattern=tab_pattern_elementy_koniunkcji[1]; local wykrzyknik_negujacy_pattern=(tab_pattern_elementy_koniunkcji[2]=="!"); if(pattern)then if((not wykrzyknik_negujacy_pattern and mw.ustring.match(v, pattern))or(wykrzyknik_negujacy_pattern and not mw.ustring.match(v, pattern)))then czy=czy and true; if(not czy)then break; end; else czy=false; break; end; end end; if(czy)then return true;end; end; return false; end; return nil; end; if((zapytajnik)and((zapytajnik=="")or((zapytajnik=="?")and(#v>0))))then local wynik=regex(kind); if((type(wynik)~="nil")and(not wynik))then table.insert(invalid, argName(k)); elseif (#v > 0) and strony_modul.SprawdzanieURL(v) then table.insert(nakedurl, argName(k)) elseif strony_modul.ZnajdowanieNormalnychStronHttp(v) then table.insert(nakedurl, argName(k)) end; end; end end; end; local missing = {} local function inny_element2(k) local element=tab[k] if(element)then for name2,wartosc in pairs(element)do if((wartosc[2])and(k~=name2))then if(tabelka_parametrow_rodzica[name2] and obslugiwane(name2))then return true; end; end; end; end; for name,value in pairs(tab)do for name2,wartosc in pairs(value)do if((wartosc[2])and(name2==k)and(name2~=name))then if((tabelka_parametrow_rodzica[name])and obslugiwane(name))then return true; end; end; end; end; return false; end; for k, v in pairs(required) do if v and not inny_element2(k) then table.insert(missing, argName(k)) end end local czy_not_category=parametry_modul.CzyTak(tabelka_parametrow_rodzica["bez kategorii"]); local function Szablon_z_sprawdz_parametry() if(czy_not_category)then return "";end; local nazwy_modul=require("Module:Nazwy"); local nazwa_szablonu=szablonowe_modul.NazwaSzablonu(nazwy_modul["PEŁNANAZWASTRONY"]()); if(templateName==nazwa_szablonu)then local sprawdz_modul=require("Module:Sprawdź"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); return "[["..nazwy_np_modul.Category..":"..sprawdz_modul["NazwaKategoriiSprawdzaniaParametrówSzablonu"]().."|"..nazwy_modul["NAZWASTRONY"]().."]]"; end; return ""; end; local czy_missing=parametry_modul["CzySąElementyNumerowaneTablicy"](missing); local czy_konieczne=parametry_modul["CzySąElementyNumerowaneTablicy"](konieczne); local czy_unknown=parametry_modul["CzySąElementyNumerowaneTablicy"](unknown); local czy_invalid=parametry_modul["CzySąElementyNumerowaneTablicy"](invalid); local czy_deprecated=parametry_modul["CzySąElementyNumerowaneTablicy"](deprecated); local czy_repeated=parametry_modul["CzySąElementyNumerowaneTablicy"](repeated); local czy_empty=parametry_modul["CzySąElementyNumerowaneTablicy"](empty); local czy_noempty=parametry_modul["CzySąElementyNumerowaneTablicy"](noempty); local czy_files=parametry_modul["CzySąElementyNumerowaneTablicy"](files); local czy_nakedurl=parametry_modul["CzySąElementyNumerowaneTablicy"](nakedurl); local czy_exturl=parametry_modul["CzySąElementyNumerowaneTablicy"](exturl); if ((not czy_missing) and (not czy_konieczne) and (not czy_unknown) and (not czy_invalid) and (not czy_deprecated) and (not czy_repeated) and (not czy_empty) and (not czy_noempty) and (not czy_files) and (not czy_nakedurl) and (not czy_exturl) and (not emptyArg)) then return Szablon_z_sprawdz_parametry(); end local czy_informacje=not (parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń dodatkowe informacje"])); local result; if(czy_informacje)then result=mw.html.create("span") result:addClass("problemy"); result:addClass("error"); result:css('white-space','pre-line'); result:css('font-size','unset'); end; local typ; local typ_jednostki; local czy_nazwij_jednostka=parametry_modul.CzyTak(tabelka_parametrow_rodzica["nazwij jednostką"]); ----[""]=?--- local config = frame.args[""] local class, space, category = string.match(config or "", "^%s*(%S+)(%s+)(.-)%s*$") local nl = space and string.match(space, "\n") or "" class = class or config ---- if(((czy_informacje)and(not czy_nazwij_jednostka))or((category)and((not czy_not_category)and(mw.ustring.match(category,"%%s.-%%s")))))then --local frame2=pf:newChild{args = {["obsługiwane jednostki jako nieopisowe strony"]="tak"}} local pudelko_modul=require("Module:Pudełko"); typ_jednostki=pudelko_modul["Typ jednostki 2"]{args={ ["obsługiwane jednostki jako nieopisowe strony"]="tak", ["nazwa przestrzeni nazw"]=pf and pf.args["tytuł przestrzeni nazw"] or frame.args["tytuł przestrzeni nazw"], ["nazwa jednostki"]=pf and pf.args["tytuł jednostki"] or frame.args["tytuł jednostki"], ["typ jednostki"]=pf and pf.args["rodzaj jednostki"] or frame.args["rodzaj jednostki"], },}; if(typ_jednostki=="artykuł")then typ="(artykuły)"; elseif(typ_jednostki=="artykuł dla dzieci")then typ="(artykuły dla dzieci)"; elseif(typ_jednostki=="strona użytkownika")then typ="(strony użytkowników)"; elseif(typ_jednostki=="strona brudnopisu projektu")then typ="(strony brudnopisu projektu)"; else typ="(strony niepodręcznikowe)"; end; else typ=nil; end; if(czy_informacje)then if(not czy_nazwij_jednostka)then if typ_jednostki=="artykuł" or typ_jednostki=="artykuł dla dzieci" or typ_jednostki=="strona użytkownika" or typ_jednostki=="strona brudnopisu projektu" then result:css("display", "none"); result:css("color","black"); else result:css("color", "red") end else result:css("color", "red") end; end; local czy_warning=not (parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń ostrzeżenie"])); local message; if(czy_informacje or czy_warning)then message=mw.html.create() if emptyArg then message:wikitext("Podano parametr o nazwie pustej o wartosci: |=", emptyArg, "|.<br/>") end if czy_missing then message:wikitext("Brakujące pola, które powinny być koniecznie podane: ", mw.text.listToText(missing), ".<br/>") end if czy_konieczne then for _,_konieczne in ipairs(konieczne) do message:wikitext("Konieczne pola, które powinny być używane z innymi parametrami, dla "..argName(_konieczne)..": "..mw.text.listToText(tab_inne_elementy_konieczne(_konieczne))..".<br/>") end; end if czy_invalid then message:wikitext("O nieprawidłowej wartości pola: ", mw.text.listToText(invalid), ".<br/>") end if czy_unknown then message:wikitext("Nieznane pola używane przez szablon: ", mw.text.listToText(unknown), ".<br/>") end if czy_deprecated then message:wikitext("Przestarzałe pola, które są obsługiwane, ale których nie powinno się raczej używać: ", mw.text.listToText(deprecated), ".<br/>") end if czy_repeated then message:wikitext("Pola o odpowiedniej podanej wartości, które nie powinne być używane z innymi parametrami lub z tymi podanymi: ", mw.text.listToText(repeated), ".<br/>") end if czy_empty then for _,_empty in ipairs(empty) do message:wikitext("Dla pola "..argName(_empty).." wykryto wartości z pustymi polami: "..mw.text.listToText(tab_inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(_empty))..", które powinny być niepuste.<br/>") end; end if czy_noempty then for _,_noempty in ipairs(noempty) do message:wikitext("Dla pola "..argName(_noempty).." wykryto wartości z niepustymi polami: "..mw.text.listToText(tab_inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(_noempty))..", które powinny być niepuste.<br/>") end; end if czy_files then for _,_files in ipairs(files) do message:wikitext("Dla pola "..argName(_files).." wykryto nieoczekiwaną grafikę: " .. mw.text.listToText(files) .. ".") end; end; if czy_nakedurl then for _,_nakedurl in ipairs(nakedurl) do message:wikitext("Dla pola "..argName(_nakedurl).." wykryto gołe linki: " .. mw.text.listToText(nakedurl) .. ".") end; end; if czy_exturl then for _,_exturl in ipairs(exturl) do message:wikitext("Dla pola "..argName(_exturl).." wykryto linki zewnętrzne: " .. mw.text.listToText(exturl) .. ".") end; end; end; local warning; if(czy_warning)then warning = mw.html.create('span'); warning:css('color','red'); warning:css('white-space','pre-line'); warning:css('word-break','break-all'); warning:addClass("problemy"); end; if(templateName)then mw.logObject(templateName, "templateName") local dwukropek=mw.ustring.match(templateName,"^%s*:"); local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](templateName); local wywolanie;local wywolanie2; local szablonowe_modul=require("Module:Szablonowe"); if dwukropek or nazwa_przestrzeni_strony~="" then wywolanie=szablonowe_modul["PokazanieWywołaniaSzablonu"](templateName,tabelka_parametrow_rodzica); wywolanie2="{{"..templateName.."}}"; if(parametry_modul.CzyTak(category))then templateName=mw.ustring.gsub(templateName,"^%s*:",""); if(not czy_not_category)then if(typ)then category=mw.ustring.format(category,templateName,typ); else category=mw.ustring.format(category,templateName); end; category=pf:preprocess(category); end; class=mw.ustring.format(class,mw.ustring.gsub(templateName,"%s+","-")); end; else wywolanie=szablonowe_modul["PokazanieWywołaniaSzablonu"](templateName,tabelka_parametrow_rodzica); wywolanie2="{{"..templateName.."}}"; if(parametry_modul.CzyTak(category))then local bez_pierwszej_litery=mw.ustring.match(templateName,"^.(.*)"); local czy_jest_wielka_litera=mw.ustring.match(bez_pierwszej_litery,"%u"); local szablon; if(not czy_jest_wielka_litera)then szablon=mw.getContentLanguage():lcfirst(templateName);else szablon=templateName;end; if(not czy_not_category)then if(typ)then category=mw.ustring.format(category,szablon,typ); else category=mw.ustring.format(category,szablon); end; category=pf:preprocess(category); end; class=mw.ustring.format(class,mw.ustring.gsub(szablon,"%s+","-")); end; end if(czy_warning)then local strong = mw.html.create('strong'); strong:wikitext("Wywołanie ") local span = mw.html.create('span'); span:css('font-weight','normal'); span:css('white-space','pre'); span:css('color',"brown"); span:wikitext(wywolanie); local strong2=mw.html.create('strong'); strong2:wikitext(" z wykrytymi parametrami z nieprawidłościami:<br/>"); warning:node(strong); warning:node(span); warning:node(strong2); end; if(czy_informacje)then local strong = mw.html.create('strong'); strong:wikitext("Szablon "..wywolanie2.." z wykrytymi parametrami z nieprawidłościami:<br/>"); result:node(strong); end; end; local czy_usun_linkowanie=parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń linkowanie"]); if(not czy_usun_linkowanie)then local _ = mw.title.new("Module:Sprawdź/Wywołanie funkcji/Parametry").id; end; if(czy_informacje or czy_warning)then message = tostring(message) end; if(czy_warning)then warning:wikitext(message); mw.addWarning(tostring(warning)); end; if czy_informacje and class then result:addClass(class) end if(czy_informacje)then result:wikitext(message);end; local str_category; if not czy_not_category and category then str_category=category; else str_category=""; end return nl..((czy_informacje)and tostring(result:allDone()) or "")..str_category..Szablon_z_sprawdz_parametry(); end, ["odn"] = function(frame) local pf = frame:getParent() local i = 1 local problems = false local yeardetected = false while true do local arg = pf.args[i] if not arg then problems = i == 1 and "brak argumentów" or false break end if (i > 5) or yeardetected then problems = "za dużo argumentów pozycyjnych" break end if #arg == 0 then problems = "pusty argument" break end if arg ~= mw.text.trim(arg) then problems = "nieoczekiwane odstępy na początku lub końcu argumentu" break end if string.match(arg, "^%d+%l?$") then yeardetected = true if i == 1 then problems = "rok musi być ostatnim parametrem po nazwiskach autorów" break end elseif string.match(arg, "^s[%-%.:]%s*%d+") then problems = "prawdopodobnie nieprawidłowo podany numer strony" break elseif string.match(arg, "%s%s") then problems = "podwójne odstępy" break elseif mw.ustring.match(arg, "^%a+%d") then if not mw.ustring.match(arg, "^[%u%d]+$") then problems = "prawdopodobnie sklejone argumenty (brak pionowej kreski)" break end elseif mw.ustring.match(arg, "^OdeB ") then -- [[Ordre de Bataille]] elseif mw.ustring.match(arg, "^%u%l+%u") then local justification = { ["De"] = true, ["Del"] = true, ["Di"] = true, ["Le"] = true, ["Mac"] = true, ["Mc"] = true, ["Te"] = true, -- TeSelle ["Sar"] = true, -- SarDesai ["Van"] = true, -- VanBuren ["La"] = true, -- LaSalle } if not justification[mw.ustring.match(arg, "^%u%l+")] then problems = "prawdopodobnie sklejone argumenty (brak pionowej kreski)" break end end i = i + 1 end if not problems then local odn = pf.args.odn if odn and ((#odn ~= 1) or (odn < "a") or (odn > "z")) then problems = "nieoczekiwany parametr odn" end end if not problems then local s = pf.args.s if s and string.match(s, "&[a-z]+;") then problems = "użyto encji HTML w numerze strony" end end if not problems then if pf.args.strona or pf.args.ss or pf.args.strony or pf.args.p or pf.args.page or pf.args.pp or pf.args.pages then problems = "przestarzały parametr z numerem strony" end end if not problems then return nil end local result = mw.html.create("span"):addClass("problemy-w-odn") local frame2=pf:newChild{args = {["obsługiwane jednostki jako nieopisowe strony"]="tak"}} local typ_jednostki=require("Module:Pudełko")["Typ jednostki 2"](frame2) if typ_jednostki=="artykuł" or typ_jednostki=="artykuł dla dzieci" or typ_jednostki=="strona użytkownika" or typ_jednostki=="strona brudnopisu projektu" then result:css("display", "none") else result:css("color", "red") end local typ; if(typ_jednostki=="artykuł")then typ="artykuły"; elseif(typ_jednostki=="artykuł dla dzieci")then typ="artykuły dla dzieci"; elseif(typ_jednostki=="strona użytkownika")then typ="strony użytkowników"; elseif(typ_jednostki=="strona brudnopisu projektu")then typ="strony brudnopisu projektu"; else typ="strony niepodręcznikowe"; end; local kategorie_modul=require("Module:Kategorie"); local str_kategoria=kategorie_modul.Kategoria{args={[1]="Szablon odn ("..typ..") do sprawdzenia"}}; result:wikitext(str_kategoria); result:wikitext("ODN: ", problems) return tostring(result) end, ["Wikidane"] = function(frame) local property = frame.args.cecha local field = frame.args.pole local value = frame.args[1] if not property or not field then return end if not value then value = frame:getParent().args[field] if not value or (#value == 0) then return end end local entity = mw.wikibase.getEntity() if not entity or not entity.claims or not entity.claims[property] then return end for i, v in ipairs(entity.claims[property]) do if v.mainsnak.snaktype == "value" then if value == v.mainsnak.datavalue.value then return end end end local template = frame:getParent():getTitle() local infobox = mw.ustring.match(template, "^Szablon:(.- infobox)$") return mw.ustring.format("[[Kategoria:%s – niezgodność w Wikidanych – %s – %s]]", infobox and "Infoboksy" or "Szablony", infobox or template, field) end, ["bez parametrów"] = function(frame) for k, v in pairs(frame:getParent().args) do return nil end return "tak" end, ["pole z hostem"] = function (frame) local host = frame.args.host if host and (#host > 0) then for k, v in pairs(frame:getParent().args) do local link = string.match(v, "[hH][tT][tT][pP][sS]?://[%S]+") if link then local uri = mw.uri.new(link) local valid, _ = mw.uri.validate(uri) if valid and uri.host and (#uri.host > 0) then if host == uri.host then mw.logObject({k, link}, "cały") return k end if #host < #uri.host then local s1 = '.'..host local s2 = string.sub(uri.host, -#s1) if s1 == s2 then mw.logObject({k, link}, "fragment") return k end end end end end end end, ["pola z autorami"] = function (frame) local result = {} local nazwisko = frame.args["nazwisko"] local imie = frame.args["imię"] local autor = frame.args["autor"] local link = frame.args["link"] local maxIndex = tonumber(frame.args["max"]) local prefix = frame.args["przed"] or "" local suffix = frame.args["po"] or "" for i = 1, maxIndex do local s = i == 1 and "" or tostring(i) local nin = string.gsub(nazwisko, '#', s) local iin = string.gsub(imie, '#', s) local ain = string.gsub(autor, '#', s) local lin = string.gsub(link, '#', s) local niv = frame:getParent().args[nin] local iiv = frame:getParent().args[iin] local aiv = frame:getParent().args[ain] local liv = frame:getParent().args[lin] local nis = niv and (#niv > 0) local iis = iiv and (#iiv > 0) local ais = aiv and (#aiv > 0) local lis = liv and (#liv > 0) local bad = (nis and ais) -- nazwisko -> zbędny autor or (nis and not iis) -- nazwisko bez imienia or (lis and not nis and not ais) -- tylko link or (iis and not nis) -- imię bez nazwiska if bad then table.insert(result, i) end end if #result > 0 then return prefix..mw.text.listToText(result)..suffix end end, ["pola z gołymi linkami"] = function (frame) local result = {} for k, v in pairs(frame:getParent().args) do local link = string.match(v, "^[hH][tT][tT][pP][sS]?://[%S]+") if link then local justified = frame.args[k] if not justified then mw.logObject(v,k) table.insert(result, '"'..k..'"') end end end return mw.text.listToText(result) end, ["uri"] = function(frame) mw.logObject(frame:getParent():getTitle(), "parent:title") _ = mw.title.new("Moduł:Sprawdź/deprecated/uri").id local link = frame.args["link"] local space = frame.args["spacja"] local strony_modul=require("Module:Strony"); local check = strony_modul.SprawdzanieURL(link) if check then return link end return (space and (check ~= nil)) and link or "" end, ["url"] = function(frame) local link = frame.args[1] local okText = frame.args[2] or "ok" local isValid = string.find(link, '{{{') == 1 or checkUri(link) if isValid then return okText end return "" end, ["lista nazw niepustych argumentów"] = function(frame) local argNames = {} for k, v in pairs(frame:getParent().args) do if #mw.text.trim(v) > 0 then table.insert(argNames, tostring(k)) end end return table.concat(argNames, ", ") end, } t6z8y6focs9hvm98yvj6xdzmgtakonu 543808 543806 2026-05-22T03:26:38Z Persino 2851 543808 Scribunto text/plain return { ["NazwaKategoriiSprawdzaniaParametrówSzablonu"]=function() return "Szablony z dodatkową opcją sprawdzania parametrów"; end; ["UsuńKategorięSprawdzaniaParametrówSzablonu"]=function(frame) local wikikod=frame.args[1]; local sprawdz_modul=require("Module:Sprawdź"); local kategoria_sprawdzania_parametrow=sprawdz_modul["NazwaKategoriiSprawdzaniaParametrówSzablonu"](); local specjalne_modul=require("Module:Specjalne"); return specjalne_modul["UsuńŚciśleOkreśloneKategorie"]{[1]=wikikod,[2]=kategoria_sprawdzania_parametrow,} end; ["Porównaj"] = function(frame) local pf=frame:getParent(); local config = pf.args[""] or "" local brudnopis=pf.args["brudnopis"]; local options = mw.text.split(config, "|") local templateName = mw.text.trim(options[1]) if #templateName == 0 then local title = mw.title.getCurrentTitle() if title.namespace == 10 then templateName = mw.ustring.match(title.text, "^(.-)/opis") or mw.ustring.match(title.text, "^(.-)/test") or mw.ustring.match(title.text, "^(.-)/brudnopis") or title.text end if #templateName == 0 then mw.log("brak nazwy szablonu") return end end local i = 2 local showparams = true local showinfo = true local vertical = false local brudnopis; while i <= #options do local parametr,wartosc=mw.ustring.match(options[i],"^([^%=]*)%=(.*)$") if(not parametr)then local option = mw.text.trim(options[i]) if option == "bez wikikodu" then showparams = false elseif option == "bez opisu" then showinfo = false elseif option == "pionowo" then vertical = true end else local parametr=mw.text.trim(parametr) if(parametr=="brudnopis")then brudnopis=mw.text.trim(wartosc); end; end i = i + 1 end; local templateTitle = mw.title.new(templateName, 10) if templateTitle.id == 0 then mw.log("szablon '"..templateName.."' nie istnieje") return end local sandboxName = brudnopis or (templateName.."/brudnopis") local sandboxTitle = mw.title.new(sandboxName, 10) if sandboxTitle.id == 0 then mw.log("brudnopis '"..sandboxName.."' nie istnieje") return end local templateParams = {} local params = {} for k, v in pairs(pf.args) do if (k ~= "") then templateParams[k] = v table.insert(params, k) end end local result = {} table.insert(result, '<table style="width: 100%;">') if showparams and (#params > 0) then local compare = function(a, b) -- return a < b if (type(a) == "number") and (type(b) == "number") then return a < b end if (type(a) == "string") and (type(b) == "string") then return a < b end if (type(a) == "number") and (type(b) == "string") then return true end return false end table.sort(params, compare) table.insert(result, "<caption><code>&#x7B;&#x7B;") table.insert(result, templateName) for i, k in ipairs(params) do table.insert(result, " &#x7C; ") local p = mw.text.nowiki(tostring(k)) local v = mw.text.nowiki(templateParams[k]) table.insert(result, p) table.insert(result, " = ") table.insert(result, v) end table.insert(result, "&#x7D;&#x7D;</code></caption>") end local templateResult = frame:expandTemplate{ title=templateName, args=templateParams} local sandboxResult = frame:expandTemplate{ title=sandboxName, args=templateParams} if templateResult and string.match(templateResult, "^{|") then templateResult = "\n"..templateResult end if sandboxResult and string.match(sandboxResult, "^{|") then sandboxResult = "\n"..sandboxResult end if vertical and showinfo then table.insert(result, '<tr><th style="width: 15em">[[Szablon:') table.insert(result, templateName) table.insert(result, '|Szablon]]</th><td>') table.insert(result, templateResult) table.insert(result, '</td></tr><tr><th>[[Szablon:') table.insert(result, sandboxName) table.insert(result, '|Brudnopis szablonu]]</th><td>') table.insert(result, sandboxResult) table.insert(result, '</td></tr>') elseif vertical then table.insert(result, '<tr><td>') table.insert(result, templateResult) table.insert(result, '</td></tr><tr><td>') table.insert(result, sandboxResult) table.insert(result, '</td></tr>') else if showinfo then table.insert(result, '<tr><th style="width: 50%;">[[Szablon:') table.insert(result, templateName) table.insert(result, '|Szablon]]</th><th style="width: 50%;">[[Szablon:') table.insert(result, sandboxName) table.insert(result, '|Brudnopis szablonu]]</th></tr>') end table.insert(result, '<tr style="vertical-align: top;"><td>') table.insert(result, templateResult) table.insert(result, '</td><td>') table.insert(result, sandboxResult) table.insert(result, '</td></tr>') end table.insert(result, "</table>") return table.concat(result) end, ["Parametry"] = function(frame) local pf=frame:getParent(); local unknown = {} local invalid = {} local deprecated = {} local nakedurl = {} local exturl = {} local files = {}; local templateName; local function argName(arg) local span = mw.html.create('span'); span:css('white-space','pre'); span:wikitext(arg); return type(arg) ~= "string" and tostring(arg) or ('"'..tostring(span:allDone())..'"'); end local ramka_modul=require("Module:Ramka"); local tabelka1=ramka_modul.RozpakujArgumenty(frame.args["bez argumentów szablonu"]); local tabelka2=ramka_modul.RozpakujArgumenty(pf.args["bez argumentów szablonu"]); local parametry_modul=require("Module:Parametry"); local tabelka_bez_argumentow=parametry_modul["ŁączDwieTabele"](tabelka1,tabelka2) local required = {}; local repeated = {}; local konieczne = {}; local empty = {}; local noempty = {}; local sprawdz_modul=mw.loadData("Module:Sprawdź/dane"); local tabelka_argumentow_systemowych_funkcji=sprawdz_modul.tabelka_argumentow_systemowych_funkcji; local tabelka_argumentow_dodatkowych_funkcji=sprawdz_modul.tabelka_argumentow_dodatkowych_funkcji; local tabelka_argumentow_systemowych_szablonu=sprawdz_modul.tabelka_argumentow_systemowych_szablonu; local tabelka_parametrow_rodzica={}; local parametry_rodzica=parametry_modul.CzyTak(pf.args["potomek"])and pf.args["parametry rodzica"]; local szablonowe_modul=require("Module:Szablonowe"); if(parametry_rodzica)then tabelka_parametrow_rodzica=ramka_modul.RozpakujParametry(parametry_rodzica); templateName=pf.args["nazwa szablonu rodzica"] or szablonowe_modul.NazwaSzablonu(pf:getTitle()); else tabelka_parametrow_rodzica=pf.args; templateName=szablonowe_modul.NazwaSzablonu(pf:getTitle()); end; local czy_dokumentacja=((parametry_modul.CzyTak(frame.args["dokumentacja"])) or (parametry_modul.CzyTak(tabelka_parametrow_rodzica["dokumentacja"]))); if(czy_dokumentacja)then return;end; local czy_dodaj_parametry_pudelka=parametry_modul.CzyTak(frame.args["dodaj parametry pudełka"]); if(czy_dodaj_parametry_pudelka)then--dodaje parametry pudełka tabelka_argumentow_systemowych_szablonu["parametry pudełka"]=""; tabelka_argumentow_systemowych_szablonu["bez błędu"]=""; tabelka_argumentow_systemowych_szablonu["bez szczegółów"]=""; --dodaje parametry nienazwane i dla parametru: 1, którego ewentualną pierwszą nazwą jest: cel-- local maksimum=parametry_modul.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabelka_parametrow_rodzica); for i=1,maksimum,1 do if(i>1)then tabelka_argumentow_systemowych_szablonu[i]="txt!"; else tabelka_argumentow_systemowych_szablonu[1]="txt!;cel"; end; end; tabelka_argumentow_systemowych_szablonu["cel"]="txt!;1" end; local tablica_mikroszablonow={ ["{{+}}"]=";", ["{{!+}}"]="^", ["{{+!}}"]="$", }; tabelka_bez_argumentow=parametry_modul["UsuńElementyTabeli"](tabelka_bez_argumentow,tabelka_argumentow_systemowych_funkcji); tabelka_bez_argumentow=parametry_modul["UsuńElementyTabeli"](tabelka_bez_argumentow,tabelka_argumentow_systemowych_szablonu); local zmienna_sprawdzania_parametrow=pf.args["zmienna sprawdzania parametrów"]; local zmienne_dodane={}; if(zmienna_sprawdzania_parametrow)then local tabelka_zmiennych=mw.text.split(zmienna_sprawdzania_parametrow,";;",false); for poz,war in ipairs(tabelka_zmiennych)do local zmienna,wartosc=mw.ustring.match(war,"^%s*(.+)%s*=%s*(.*)%s*$") if((zmienna)and(wartosc))then zmienna=mw.text.trim(zmienna); wartosc=mw.text.trim(wartosc); zmienne_dodane[tonumber(zmienna) or mw.ustring.gsub(zmienna,"{{[^{}]+}}",tablica_mikroszablonow)]=wartosc; end; end; end; local zmienne_konieczne=function(tab,czy_odjete) for k, v in pairs(tab)do if(czy_odjete or ((not tabelka_argumentow_systemowych_funkcji[k]) and (not tabelka_argumentow_systemowych_szablonu[k]) and (not tabelka_bez_argumentow[k]) ) )then local wydziel=mw.ustring.match(v,"^%s*(^.*$%s*%??%s*!?)%s*"); if wydziel and mw.ustring.match(wydziel, "!%s*$") then required[k] = true elseif mw.ustring.match(mw.ustring.match(v,"^([^;]*!?)%s*"), "!%s*$") then required[k] = true end end; end; end; zmienne_konieczne(frame.args,false); zmienne_konieczne(zmienne_dodane,true); zmienne_konieczne(tabelka_argumentow_systemowych_funkcji,true); zmienne_konieczne(tabelka_argumentow_systemowych_szablonu,true); local emptyArg = false local obslugiwane=function(k) local kind=(not tabelka_argumentow_dodatkowych_funkcji[k]) and ((not tabelka_bez_argumentow[k]) and (tabelka_argumentow_systemowych_funkcji[k] or tabelka_argumentow_systemowych_szablonu[k] or zmienne_dodane[k] or frame.args[k])); return kind; end; local tab={}; local function inne_elementy_konieczne(k) local element=tab[k] if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((wartosc[1])and(not wartosc[2])and (not tabelka_parametrow_rodzica[name2]) and (obslugiwane(name2)))then return true; end; end; end; end; return false; end; local function tab_inne_elementy_konieczne(k) local element=tab[k] local tab_konieczne={}; if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((wartosc[1])and(not wartosc[2])and (not tabelka_parametrow_rodzica[name2]) and (obslugiwane(name2)))then table.insert(tab_konieczne,argName(tonumber(name2) or name2)); end; end; end; end; return tab_konieczne; end; local function inne_elementy_nieobslugiwane(k) local element=tab[k] if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(not wartosc[1])then if(not wartosc[2] and not wartosc[3])then if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]) and(((wartosc[4])and (#tabelka_parametrow_rodzica[name2]>0) )or((not wartosc[4])and(#tabelka_parametrow_rodzica[name2]==0))) )then return true; else return false; end; elseif(not wartosc[2] and wartosc[3])then return true; elseif(wartosc[2] and not wartosc[3])then if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]==0))then return true; else return false; end; end; end; end; end; end; return false; end; local function tab_inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) local element=tab[k]; local tab_konieczne_puste={}; if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((wartosc[4])and(not wartosc[2])and (not wartosc[3])and (tabelka_parametrow_rodzica[name2]) and(#tabelka_parametrow_rodzica[name2]==0) and (obslugiwane(name2)))then table.insert(tab_konieczne_puste,argName(tonumber(name2) or name2)); end; end; end; end; return tab_konieczne_puste; end; local function tab_inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) local element=tab[k]; local tab_konieczne_puste={}; if(element)then for name2,wartosc in pairs(element)do if(name2~=k)then if((not wartosc[4])and(not wartosc[2])and (not wartosc[3])and (tabelka_parametrow_rodzica[name2]) and(#tabelka_parametrow_rodzica[name2]>0) and (obslugiwane(name2)))then table.insert(tab_konieczne_puste,argName(tonumber(name2) or name2)); end; end; end; end; return tab_konieczne_puste; end; local function inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) local element=tab[k]; local czy=false; if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(wartosc[1])then if((wartosc[4])and(not wartosc[2])and(not wartosc[3]))then if((obslugiwane(name2))and((tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]==0)))then return true; end; end; end; end; end; end; return czy; end; local function inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) local element=tab[k]; local czy=false; if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(wartosc[1])then if((not wartosc[4])and(not wartosc[2])and(not wartosc[3]))then if((obslugiwane(name2))and((tabelka_parametrow_rodzica[name2])and(#tabelka_parametrow_rodzica[name2]>0)))then return true; end; end; end; end; end; end; return czy; end; local function inne_elementy_powtarzane_i_z_mozliwymi_dopuszczalnymi_pustymi_wartosciami(k) local element=tab[k]; local czy=true; if(element)then for name2, wartosc in pairs(element)do if(name2~=k)then if(wartosc[1])then if(wartosc[2])then if(not wartosc[3])then if((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]))then if(#tabelka_parametrow_rodzica[name2]==0)then return false; else return true; end; end; elseif((obslugiwane(name2))and(tabelka_parametrow_rodzica[name2]))then return true; end; end; end; end; end; end; return false; end; local strony_modul=require("Module:Strony"); local NumerPlik=function(k,v,zapytajnik,tryb) local czy_zapytajnik=(zapytajnik~="?"); local zero=(czy_zapytajnik and(#v==0)); if(zero)then table.insert(invalid, argName(k)); elseif((czy_zapytajnik)or((not czy_zapytajnik)and(#v~=0)))then local u=strony_modul.SprawdzanieRozmiaruPliku{rozmiar=v,tryb=tryb,}; if not u then table.insert(invalid,argName(k)) end; end; end; local GrafikaPlik=function(k,v,zapytajnik,przestrzen) local czy_zapytajnik=(zapytajnik~="?"); local zero=(czy_zapytajnik and(#v==0)); if(zero)then table.insert(invalid, argName(k)) elseif((czy_zapytajnik)or((not czy_zapytajnik)and(#v~=0)))then if strony_modul.ZnajdowanieNormalnychStronHttp(v) then table.insert(nakedurl, argName(k)) else local g = strony_modul.SprawdzanieNazwyPlikowe{nazwa = v, ["przestrzeń"]=przestrzen, }; if not g then table.insert(invalid, argName(k)) end end; end; end; for k, v in pairs(tabelka_parametrow_rodzica) do required[k] = false local kind=obslugiwane(k); local zapytajnik; local wykrzyknik; if (kind) then local kind2;local zmienne; kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*(!?^.*$)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$"); if((not kind2)or(not zmienne)or (not zapytajnik))then kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*(!?^.*$%s*%+[^;]-)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$"); if((not kind2)or(not zmienne)or (not zapytajnik))then kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*([^;]-%s*%+%s*!?^.*$)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$"); if((not kind2)or(not zmienne)or (not zapytajnik))then kind2,zapytajnik,wykrzyknik,zmienne=mw.ustring.match(kind,"^%s*([^;]-)%s*(%??)%s*(!?)%s*;%s*(.-)%s*$"); end; end; end; if((kind2)and(zmienne))then local tab2=mw.text.split(mw.text.trim(zmienne),"%s*;%s*",false); tab[k]={}; for _,value in ipairs(tab2) do value=mw.text.trim(value); local indeks=tonumber(value) or mw.ustring.gsub(value,"{{[^{}]+}}",tablica_mikroszablonow); local indeks2,wykrzyknik=mw.ustring.match(tostring(indeks),"^%s*(.*)%s*(!!?)%s*$"); local indeks3,zapytajnik=mw.ustring.match(tostring(indeks2 or indeks),"^%s*(.*)%s*(%?)%s*$"); local inne,indeks4=mw.ustring.match(tostring(indeks3 or indeks2 or indeks),"^%s*(!)%s*(.*)%s*$"); tab[k][indeks4 or indeks3 or indeks2 or indeks]={((not inne) and true or false), ((not wykrzyknik) and true or false), ((not zapytajnik) and true or false), ((not (wykrzyknik=="!!")) and true or false), }; end; kind=mw.ustring.gsub(kind2,"{{[^{}]+}}",tablica_mikroszablonow); else kind2,zapytajnik,wykrzyknik=mw.ustring.match(kind,"^%s*(!?%s*^.*$)%s*(%??)%s*(!?)%s*$"); if(not kind2)or(not zapytajnik)then kind2,zapytajnik,wykrzyknik=mw.ustring.match(kind,"^%s*(.-)%s*(%??)%s*(!?)%s*$"); end; kind=mw.ustring.gsub(kind2,"{{[^{}]+}}",tablica_mikroszablonow); end; end; kind=kind and mw.text.trim(kind); if k == "" then emptyArg = v elseif not kind or inne_elementy_nieobslugiwane(k) then table.insert(unknown, argName(k)) elseif inne_elementy_powtarzane_i_z_mozliwymi_dopuszczalnymi_pustymi_wartosciami(k) then table.insert(repeated, argName(k)); elseif inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(k) then table.insert(empty, k); elseif inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(k) then table.insert(noempty, k); elseif inne_elementy_konieczne(k) then table.insert(konieczne, k); else local old,__kind=mw.ustring.match(kind,"^%s*(old)%s*%+%s*(.-)%s*$"); if(not old or not __kind)then __kind,old=mw.ustring.match(kind,"^%s*(.-)%s*%+%s*(old)%s*$"); end; if(old and __kind)then table.insert(deprecated, argName(k)); kind=__kind; end; if(kind == "")then -- Kod pusty elseif (kind == "num") then if(zapytajnik~="?")then local n = tonumber(v) if not n then table.insert(invalid, argName(k)) end else local n = (#v == 0) or tonumber(v) if not n then table.insert(invalid, argName(k)) end end; elseif (kind == "uri") then if(zapytajnik~="?")then local u = strony_modul.SprawdzanieURL(v) if not u then table.insert(invalid, argName(k)) end else local u = (#v == 0) or strony_modul.SprawdzanieURL(v) if not u then table.insert(invalid, argName(k)) end end; elseif(kind=="txt")then if(zapytajnik~="?")then if #v == 0 then table.insert(invalid, argName(k)) end; end; elseif (kind=="all")then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) end; end; end; elseif(kind=="grafika")then GrafikaPlik(k,v,zapytajnik,false); elseif(kind=="grafika*")then GrafikaPlik(k,v,zapytajnik,true); elseif (kind == "text") then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u= strony_modul.ZnajdowaniePlikowe(v); if(u)then table.insert(files, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieJakikolwiekStronHttp(v) if(u)then table.insert(exturl, argName(k)) end; end; end; end; end; elseif(kind == "text-img")then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieJakikolwiekStronHttp(v) if(u)then table.insert(exturl, argName(k)) end; end; end; end; elseif((kind == "text-link")or(kind == "tekst"))then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u= strony_modul.ZnajdowaniePlikowe(v); if(u)then table.insert(files, argName(k)) else local u = strony_modul.SprawdzanieURL(v); if u then table.insert(nakedurl, argName(k)) else local u = strony_modul.ZnajdowanieNormalnychStronHttp(v); if(u)then table.insert(nakedurl, argName(k)) end; end; end; end; elseif ((not old)and(kind == "old")) then table.insert(deprecated, argName(k)); elseif(kind == "uri*")then local zero=((zapytajnik~="?")and(#v==0)); if(zero)then table.insert(invalid, argName(k)) else local u = strony_modul.SprawdzanieURL(v) or strony_modul.SprawdzanieURL(mw.text.unstripNoWiki(v)) if not u then table.insert(invalid, argName(k)) end end; elseif(kind=="rozmiar")then NumerPlik(k,v,zapytajnik,false); elseif(kind=="rozmiar*")then NumerPlik(k,v,zapytajnik,true); elseif(kind~="")then local function regex(kind) local tab_pattern_wykrzyknik_lub_nie_wzorow={}; local pattern_poczatek=kind; local function funkcja_zbierajacy_dane_patternow(pattern_analiza_wzorow_koniunkcji) local tab_split_pattern_koniunkcji={}; local pattern_poczatek=pattern_analiza_wzorow_koniunkcji; repeat local pattern_poczatek_2,pattern_koniec=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*&%s*(.*)%s*$"); if(pattern_poczatek_2 and pattern_koniec)then table.insert(tab_split_pattern_koniunkcji,pattern_poczatek_2); pattern_poczatek=pattern_koniec; else local pattern_caly=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*$"); if pattern_caly then table.insert(tab_split_pattern_koniunkcji,pattern_caly); end; end; until not pattern_poczatek_2; local tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji={}; for _,wartosc_elementu_koniunkcji in ipairs(tab_split_pattern_koniunkcji)do local wykrzyknik,pattern=mw.ustring.match(wartosc_elementu_koniunkcji,"^%s*(!?)%s*(^.-$)%s*$"); table.insert(tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji,{[1]=pattern,[2]=wykrzyknik}); end; table.insert(tab_pattern_wykrzyknik_lub_nie_wzorow,tab_pattern_wykrzyknik_lub_nie_wzorow_koniunkcji); end; repeat local pattern_poczatek_2,pattern_koniec=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*|%s*(.*)%s*$"); if pattern_poczatek_2 and pattern_koniec then funkcja_zbierajacy_dane_patternow(pattern_poczatek_2); pattern_poczatek=pattern_koniec; else local pattern_caly=mw.ustring.match(pattern_poczatek,"^%s*(!?%s*^.-$)%s*$"); if(pattern_caly)then funkcja_zbierajacy_dane_patternow(pattern_caly); end; break; end; until not pattern_poczatek_2; if(#tab_pattern_wykrzyknik_lub_nie_wzorow>0)then for _ , tab_pattern_koniunkcja in ipairs(tab_pattern_wykrzyknik_lub_nie_wzorow) do local czy=true; for _,tab_pattern_elementy_koniunkcji in ipairs(tab_pattern_koniunkcja)do local pattern=tab_pattern_elementy_koniunkcji[1]; local wykrzyknik_negujacy_pattern=(tab_pattern_elementy_koniunkcji[2]=="!"); if(pattern)then if((not wykrzyknik_negujacy_pattern and mw.ustring.match(v, pattern))or(wykrzyknik_negujacy_pattern and not mw.ustring.match(v, pattern)))then czy=czy and true; if(not czy)then break; end; else czy=false; break; end; end end; if(czy)then return true;end; end; return false; end; return nil; end; if((zapytajnik)and((zapytajnik=="")or((zapytajnik=="?")and(#v>0))))then local wynik=regex(kind); if((type(wynik)~="nil")and(not wynik))then table.insert(invalid, argName(k)); elseif (#v > 0) and strony_modul.SprawdzanieURL(v) then table.insert(nakedurl, argName(k)) elseif strony_modul.ZnajdowanieNormalnychStronHttp(v) then table.insert(nakedurl, argName(k)) end; end; end end; end; local missing = {} local function inny_element2(k) local element=tab[k] if(element)then for name2,wartosc in pairs(element)do if((wartosc[2])and(k~=name2))then if(tabelka_parametrow_rodzica[name2] and obslugiwane(name2))then return true; end; end; end; end; for name,value in pairs(tab)do for name2,wartosc in pairs(value)do if((wartosc[2])and(name2==k)and(name2~=name))then if((tabelka_parametrow_rodzica[name])and obslugiwane(name))then return true; end; end; end; end; return false; end; for k, v in pairs(required) do if v and not inny_element2(k) then table.insert(missing, argName(k)) end end local czy_not_category=parametry_modul.CzyTak(tabelka_parametrow_rodzica["bez kategorii"]); local function Szablon_z_sprawdz_parametry() if(czy_not_category)then return "";end; local nazwy_modul=require("Module:Nazwy"); local nazwa_szablonu=szablonowe_modul.NazwaSzablonu(nazwy_modul["PEŁNANAZWASTRONY"]()); if(templateName==nazwa_szablonu)then local sprawdz_modul=require("Module:Sprawdź"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); return "[["..nazwy_np_modul.Category..":"..sprawdz_modul["NazwaKategoriiSprawdzaniaParametrówSzablonu"]().."|"..nazwy_modul["NAZWASTRONY"]().."]]"; end; return ""; end; local czy_missing=parametry_modul["CzySąElementyNumerowaneTablicy"](missing); local czy_konieczne=parametry_modul["CzySąElementyNumerowaneTablicy"](konieczne); local czy_unknown=parametry_modul["CzySąElementyNumerowaneTablicy"](unknown); local czy_invalid=parametry_modul["CzySąElementyNumerowaneTablicy"](invalid); local czy_deprecated=parametry_modul["CzySąElementyNumerowaneTablicy"](deprecated); local czy_repeated=parametry_modul["CzySąElementyNumerowaneTablicy"](repeated); local czy_empty=parametry_modul["CzySąElementyNumerowaneTablicy"](empty); local czy_noempty=parametry_modul["CzySąElementyNumerowaneTablicy"](noempty); local czy_files=parametry_modul["CzySąElementyNumerowaneTablicy"](files); local czy_nakedurl=parametry_modul["CzySąElementyNumerowaneTablicy"](nakedurl); local czy_exturl=parametry_modul["CzySąElementyNumerowaneTablicy"](exturl); if ((not czy_missing) and (not czy_konieczne) and (not czy_unknown) and (not czy_invalid) and (not czy_deprecated) and (not czy_repeated) and (not czy_empty) and (not czy_noempty) and (not czy_files) and (not czy_nakedurl) and (not czy_exturl) and (not emptyArg)) then return Szablon_z_sprawdz_parametry(); end local czy_informacje=not (parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń dodatkowe informacje"])); local result; if(czy_informacje)then result=mw.html.create("span") result:addClass("problemy"); result:addClass("error"); result:css('white-space','pre-line'); result:css('font-size','unset'); end; local typ; local typ_jednostki; local czy_nazwij_jednostka=parametry_modul.CzyTak(tabelka_parametrow_rodzica["nazwij jednostką"]); ----[""]=?--- local config = frame.args[""] local class, space, category = string.match(config or "", "^%s*(%S+)(%s+)(.-)%s*$") local nl = space and string.match(space, "\n") or "" class = class or config ---- if(((czy_informacje)and(not czy_nazwij_jednostka))or((category)and((not czy_not_category)and(mw.ustring.match(category,"%%s.-%%s")))))then --local frame2=pf:newChild{args = {["obsługiwane jednostki jako nieopisowe strony"]="tak"}} local pudelko_modul=require("Module:Pudełko"); typ_jednostki=pudelko_modul["Typ jednostki 2"]{args={ ["obsługiwane jednostki jako nieopisowe strony"]="tak", ["nazwa przestrzeni nazw"]=pf and pf.args["tytuł przestrzeni nazw"] or frame.args["tytuł przestrzeni nazw"], ["nazwa jednostki"]=pf and pf.args["tytuł jednostki"] or frame.args["tytuł jednostki"], ["typ jednostki"]=pf and pf.args["rodzaj jednostki"] or frame.args["rodzaj jednostki"], },}; if(typ_jednostki=="artykuł")then typ="(artykuły)"; elseif(typ_jednostki=="artykuł dla dzieci")then typ="(artykuły dla dzieci)"; elseif(typ_jednostki=="strona użytkownika")then typ="(strony użytkowników)"; elseif(typ_jednostki=="strona brudnopisu projektu")then typ="(strony brudnopisu projektu)"; else typ="(strony niepodręcznikowe)"; end; else typ=nil; end; if(czy_informacje)then if(not czy_nazwij_jednostka)then if typ_jednostki=="artykuł" or typ_jednostki=="artykuł dla dzieci" or typ_jednostki=="strona użytkownika" or typ_jednostki=="strona brudnopisu projektu" then result:css("display", "none"); result:css("color","black"); else result:css("color", "red") end else result:css("color", "red") end; end; local czy_warning=not (parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń ostrzeżenie"])); local message; if(czy_informacje or czy_warning)then message=mw.html.create() if emptyArg then message:wikitext("Podano parametr o nazwie pustej o wartosci: |=", emptyArg, "|.<br/>") end if czy_missing then message:wikitext("Brakujące pola, które powinny być koniecznie podane: ", mw.text.listToText(missing), ".<br/>") end if czy_konieczne then for _,_konieczne in ipairs(konieczne) do message:wikitext("Konieczne pola, które powinny być używane z innymi parametrami, dla "..argName(_konieczne)..": "..mw.text.listToText(tab_inne_elementy_konieczne(_konieczne))..".<br/>") end; end if czy_invalid then message:wikitext("O nieprawidłowej wartości pola: ", mw.text.listToText(invalid), ".<br/>") end if czy_unknown then message:wikitext("Nieznane pola używane przez szablon: ", mw.text.listToText(unknown), ".<br/>") end if czy_deprecated then message:wikitext("Przestarzałe pola, które są obsługiwane, ale których nie powinno się raczej używać: ", mw.text.listToText(deprecated), ".<br/>") end if czy_repeated then message:wikitext("Pola o odpowiedniej podanej wartości, które nie powinne być używane z innymi parametrami lub z tymi podanymi: ", mw.text.listToText(repeated), ".<br/>") end if czy_empty then for _,_empty in ipairs(empty) do message:wikitext("Dla pola "..argName(_empty).." wykryto wartości z pustymi polami: "..mw.text.listToText(tab_inne_elementy_z_mozliwymi_koniecznymi_niepustymi_wartosciami(_empty))..", które powinny być niepuste.<br/>") end; end if czy_noempty then for _,_noempty in ipairs(noempty) do message:wikitext("Dla pola "..argName(_noempty).." wykryto wartości z niepustymi polami: "..mw.text.listToText(tab_inne_elementy_z_mozliwymi_koniecznymi_pustymi_wartosciami(_noempty))..", które powinny być niepuste.<br/>") end; end if czy_files then for _,_files in ipairs(files) do message:wikitext("Dla pola "..argName(_files).." wykryto nieoczekiwaną grafikę: " .. mw.text.listToText(files) .. ".") end; end; if czy_nakedurl then for _,_nakedurl in ipairs(nakedurl) do message:wikitext("Dla pola "..argName(_nakedurl).." wykryto gołe linki: " .. mw.text.listToText(nakedurl) .. ".") end; end; if czy_exturl then for _,_exturl in ipairs(exturl) do message:wikitext("Dla pola "..argName(_exturl).." wykryto linki zewnętrzne: " .. mw.text.listToText(exturl) .. ".") end; end; end; local warning; if(czy_warning)then warning = mw.html.create('span'); warning:css('color','red'); warning:css('white-space','pre-line'); warning:css('word-break','break-all'); warning:addClass("problemy"); end; if(templateName)then mw.logObject(templateName, "templateName") local dwukropek=mw.ustring.match(templateName,"^%s*:"); local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](templateName); local wywolanie;local wywolanie2; local szablonowe_modul=require("Module:Szablonowe"); if dwukropek or nazwa_przestrzeni_strony~="" then wywolanie=szablonowe_modul["PokazanieWywołaniaSzablonu"](templateName,tabelka_parametrow_rodzica); wywolanie2="{{"..templateName.."}}"; if(parametry_modul.CzyTak(category))then templateName=mw.ustring.gsub(templateName,"^%s*:",""); if(not czy_not_category)then if(typ)then category=mw.ustring.format(category,templateName,typ); else category=mw.ustring.format(category,templateName); end; category=pf:preprocess(category); end; class=mw.ustring.format(class,mw.ustring.gsub(templateName,"%s+","-")); end; else wywolanie=szablonowe_modul["PokazanieWywołaniaSzablonu"](templateName,tabelka_parametrow_rodzica); wywolanie2="{{"..templateName.."}}"; if(parametry_modul.CzyTak(category))then local bez_pierwszej_litery=mw.ustring.match(templateName,"^.(.*)"); local czy_jest_wielka_litera=mw.ustring.match(bez_pierwszej_litery,"%u"); local szablon; if(not czy_jest_wielka_litera)then szablon=mw.getContentLanguage():lcfirst(templateName);else szablon=templateName;end; if(not czy_not_category)then if(typ)then category=mw.ustring.format(category,szablon,typ); else category=mw.ustring.format(category,szablon); end; category=pf:preprocess(category); end; class=mw.ustring.format(class,mw.ustring.gsub(szablon,"%s+","-")); end; end if(czy_warning)then local strong = mw.html.create('strong'); strong:wikitext("Wywołanie ") local span = mw.html.create('span'); span:css('font-weight','normal'); span:css('white-space','pre'); span:css('color',"brown"); span:wikitext(wywolanie); local strong2=mw.html.create('strong'); strong2:wikitext(" z wykrytymi parametrami z nieprawidłościami:<br/>"); warning:node(strong); warning:node(span); warning:node(strong2); end; if(czy_informacje)then local strong = mw.html.create('strong'); strong:wikitext("Szablon "..wywolanie2.." z wykrytymi parametrami z nieprawidłościami:<br/>"); result:node(strong); end; end; local czy_usun_linkowanie=parametry_modul.CzyTak(tabelka_parametrow_rodzica["usuń linkowanie"]); if(not czy_usun_linkowanie)then local _ = mw.title.new("Module:Sprawdź/Wywołanie funkcji/Parametry").id; end; if(czy_informacje or czy_warning)then message = tostring(message) end; if(czy_warning)then warning:wikitext(message); mw.addWarning(tostring(warning)); end; if czy_informacje and class then result:addClass(class) end if(czy_informacje)then result:wikitext(message);end; local str_category; if not czy_not_category and category then str_category=category; else str_category=""; end return nl..((czy_informacje)and tostring(result:allDone()) or "")..str_category..Szablon_z_sprawdz_parametry(); end, ["odn"] = function(frame) local pf = frame:getParent() local i = 1 local problems = false local yeardetected = false while true do local arg = pf.args[i] if not arg then problems = i == 1 and "brak argumentów" or false break end if (i > 5) or yeardetected then problems = "za dużo argumentów pozycyjnych" break end if #arg == 0 then problems = "pusty argument" break end if arg ~= mw.text.trim(arg) then problems = "nieoczekiwane odstępy na początku lub końcu argumentu" break end if string.match(arg, "^%d+%l?$") then yeardetected = true if i == 1 then problems = "rok musi być ostatnim parametrem po nazwiskach autorów" break end elseif string.match(arg, "^s[%-%.:]%s*%d+") then problems = "prawdopodobnie nieprawidłowo podany numer strony" break elseif string.match(arg, "%s%s") then problems = "podwójne odstępy" break elseif mw.ustring.match(arg, "^%a+%d") then if not mw.ustring.match(arg, "^[%u%d]+$") then problems = "prawdopodobnie sklejone argumenty (brak pionowej kreski)" break end elseif mw.ustring.match(arg, "^OdeB ") then -- [[Ordre de Bataille]] elseif mw.ustring.match(arg, "^%u%l+%u") then local justification = { ["De"] = true, ["Del"] = true, ["Di"] = true, ["Le"] = true, ["Mac"] = true, ["Mc"] = true, ["Te"] = true, -- TeSelle ["Sar"] = true, -- SarDesai ["Van"] = true, -- VanBuren ["La"] = true, -- LaSalle } if not justification[mw.ustring.match(arg, "^%u%l+")] then problems = "prawdopodobnie sklejone argumenty (brak pionowej kreski)" break end end i = i + 1 end if not problems then local odn = pf.args.odn if odn and ((#odn ~= 1) or (odn < "a") or (odn > "z")) then problems = "nieoczekiwany parametr odn" end end if not problems then local s = pf.args.s if s and string.match(s, "&[a-z]+;") then problems = "użyto encji HTML w numerze strony" end end if not problems then if pf.args.strona or pf.args.ss or pf.args.strony or pf.args.p or pf.args.page or pf.args.pp or pf.args.pages then problems = "przestarzały parametr z numerem strony" end end if not problems then return nil end local result = mw.html.create("span"):addClass("problemy-w-odn") local frame2=pf:newChild{args = {["obsługiwane jednostki jako nieopisowe strony"]="tak"}} local typ_jednostki=require("Module:Pudełko")["Typ jednostki 2"](frame2) if typ_jednostki=="artykuł" or typ_jednostki=="artykuł dla dzieci" or typ_jednostki=="strona użytkownika" or typ_jednostki=="strona brudnopisu projektu" then result:css("display", "none") else result:css("color", "red") end local typ; if(typ_jednostki=="artykuł")then typ="artykuły"; elseif(typ_jednostki=="artykuł dla dzieci")then typ="artykuły dla dzieci"; elseif(typ_jednostki=="strona użytkownika")then typ="strony użytkowników"; elseif(typ_jednostki=="strona brudnopisu projektu")then typ="strony brudnopisu projektu"; else typ="strony niepodręcznikowe"; end; local kategorie_modul=require("Module:Kategorie"); local str_kategoria=kategorie_modul.Kategoria{args={[1]="Szablon odn ("..typ..") do sprawdzenia"}}; result:wikitext(str_kategoria); result:wikitext("ODN: ", problems) return tostring(result) end, ["Wikidane"] = function(frame) local property = frame.args.cecha local field = frame.args.pole local value = frame.args[1] if not property or not field then return end if not value then value = frame:getParent().args[field] if not value or (#value == 0) then return end end local entity = mw.wikibase.getEntity() if not entity or not entity.claims or not entity.claims[property] then return end for i, v in ipairs(entity.claims[property]) do if v.mainsnak.snaktype == "value" then if value == v.mainsnak.datavalue.value then return end end end local template = frame:getParent():getTitle() local infobox = mw.ustring.match(template, "^Szablon:(.- infobox)$") return mw.ustring.format("[[Kategoria:%s – niezgodność w Wikidanych – %s – %s]]", infobox and "Infoboksy" or "Szablony", infobox or template, field) end, ["bez parametrów"] = function(frame) for k, v in pairs(frame:getParent().args) do return nil end return "tak" end, ["pole z hostem"] = function (frame) local host = frame.args.host if host and (#host > 0) then for k, v in pairs(frame:getParent().args) do local link = string.match(v, "[hH][tT][tT][pP][sS]?://[%S]+") if link then local uri = mw.uri.new(link) local valid, _ = mw.uri.validate(uri) if valid and uri.host and (#uri.host > 0) then if host == uri.host then mw.logObject({k, link}, "cały") return k end if #host < #uri.host then local s1 = '.'..host local s2 = string.sub(uri.host, -#s1) if s1 == s2 then mw.logObject({k, link}, "fragment") return k end end end end end end end, ["pola z autorami"] = function (frame) local result = {} local nazwisko = frame.args["nazwisko"] local imie = frame.args["imię"] local autor = frame.args["autor"] local link = frame.args["link"] local maxIndex = tonumber(frame.args["max"]) local prefix = frame.args["przed"] or "" local suffix = frame.args["po"] or "" for i = 1, maxIndex do local s = i == 1 and "" or tostring(i) local nin = string.gsub(nazwisko, '#', s) local iin = string.gsub(imie, '#', s) local ain = string.gsub(autor, '#', s) local lin = string.gsub(link, '#', s) local niv = frame:getParent().args[nin] local iiv = frame:getParent().args[iin] local aiv = frame:getParent().args[ain] local liv = frame:getParent().args[lin] local nis = niv and (#niv > 0) local iis = iiv and (#iiv > 0) local ais = aiv and (#aiv > 0) local lis = liv and (#liv > 0) local bad = (nis and ais) -- nazwisko -> zbędny autor or (nis and not iis) -- nazwisko bez imienia or (lis and not nis and not ais) -- tylko link or (iis and not nis) -- imię bez nazwiska if bad then table.insert(result, i) end end if #result > 0 then return prefix..mw.text.listToText(result)..suffix end end, ["pola z gołymi linkami"] = function (frame) local result = {} for k, v in pairs(frame:getParent().args) do local link = string.match(v, "^[hH][tT][tT][pP][sS]?://[%S]+") if link then local justified = frame.args[k] if not justified then mw.logObject(v,k) table.insert(result, '"'..k..'"') end end end return mw.text.listToText(result) end, ["uri"] = function(frame) mw.logObject(frame:getParent():getTitle(), "parent:title") _ = mw.title.new("Moduł:Sprawdź/deprecated/uri").id local link = frame.args["link"] local space = frame.args["spacja"] local strony_modul=require("Module:Strony"); local check = strony_modul.SprawdzanieURL(link) if check then return link end return (space and (check ~= nil)) and link or "" end, ["url"] = function(frame) local link = frame.args[1] local okText = frame.args[2] or "ok" local isValid = string.find(link, '{{{') == 1 or checkUri(link) if isValid then return okText end return "" end, ["lista nazw niepustych argumentów"] = function(frame) local argNames = {} for k, v in pairs(frame:getParent().args) do if #mw.text.trim(v) > 0 then table.insert(argNames, tostring(k)) end end return table.concat(argNames, ", ") end, } 3cwjc58wdzjy2b4bfwhkhnjulwn6n9o Moduł:Sprawdź/opis 828 33743 543800 534383 2026-05-22T01:19:17Z Persino 2851 /* {{Code|Parametry}} */ 543800 wikitext text/x-wiki {{Wysokie ryzyko|częste użycie}} {{Klasyfikacja modułu|r}} Ten moduł zapewnia platformę programistyczną dla tworzenia szablonów budujących przypadki testowe szablonów Wikibooks'a. Przypadki testowe mogą być tworzone ręcznie, aczkolwiek te tworzone za pomocą szablonów opartych na module Lua, takim jak niniejszy moduł, mają taką zaletę, że argumenty szablonu muszą być wprowadzone jedynie jednokrotnie, co zmniejsza nakład pracy konieczny do tworzenia testów, a także zmniejsza ryzyko występowania błędów w danych wejściowych. == {{Code|Porównaj}} == Ta funkcja jest obecnie wykorzystywana przez szablon {{s|Przypadek testowy}}. Przykłady w jego dokumentacji na jego stronie opisu {{s|Przypadek testowy/opis}}. == {{Code|Parametry}} == Funkcja do wykrywania wywołań szablonów z nierozpoznanymi, pustymi lub przestarzałymi parametrami. Należy ją wywołać ze wszystkimi możliwymi parametrami, jakie przyjmuje szablon podlegający sprawdzaniu. ; Konfiguracja: * ''klasa'' – ciąg znaków bez spacji umieszczany jako wartość atrybutu {{Code|class}} w tagu {{Code|&lt;span&gt;}} z wygenerowanym raportem * ''odstęp'' – ciąg znaków odstępu oddzielający pozostałą treść konfiguracji, jeśli zawiera znak nowej linii to przed wygenerowanym raportem jest również umieszczany znak nowej linii * ''suffix'' – treść dołączana po wygenerowanym raporcie, zwykle deklaracja technicznej kategorii ; Sprawdzanie parametrów: * ''pusty'' – parametr jest opcjonalny, jest to najczęściej stosowany sposób użycia, obecnie domyślnie zezwala na treść bez obrazków i linków zewnętrznych, * {{Tt|txt}} - dowolna wartość niepusta poniższych typów jednocześnie, * {{Tt|all}} – oczekiwana jest dowolna niepusta wartość, która nie jest adresem linku zewnętrznego i nie zawiera linku zewnętrznego tekstowego (nie w nawiasach kwadratowych), * {{Tt|text}} – oczekiwana jest dowolna niepusta wartość pola, która nie generuje obrazka ani linku zewnętrznego, * {{Tt|text?}} – oczekiwana jest wartość pola, która nie generuje obrazka ani linku zewnętrznego, * {{Tt|text-link}} – oczekiwana jest dowolna niepusta wartość pola, która nie generuje obrazka, * {{Tt|text-link?}} – oczekiwana jest wartość pola, która nie generuje obrazka, * {{Tt|text-img}} – oczekiwana jest dowolna niepusta wartość pola, która nie generuje linku zewnętrznego, * {{Tt|text-img?}} – oczekiwana jest wartość pola, która nie generuje linku zewnętrznego, * {{Tt|num}} – sprawdzanie, czy przekazana wartość jest liczbą, * {{Tt|num?}} – sprawdzanie, czy przekazana wartość jest pusta lub jest liczbą, * {{Tt|uri}} – sprawdzanie, czy przekazana wartość jest linkiem obsługiwanym przez [[:mw:Manual:$wgUrlProtocols|MediaWiki]], * {{Tt|uri?}} – sprawdzanie, czy przekazana wartość jest pusta lub jest linkiem, * {{Tt|grafika}} – sprawdzanie, czy przekazana wartość jest nazwą pliku graficznego bez rozszerzenia plikowego, * {{Tt|grafika?}} – sprawdzanie, czy przekazana wartość jest pusta lub jest nazwą pliku graficznego bez rozszerzenia plikowego, * {{Tt|grafika*}} – sprawdzanie, czy przekazana wartość jest nazwą pliku graficznego z rozszerzeniem plikowym, * {{Tt|grafika*?}} – sprawdzanie, czy przekazana wartość jest pusta lub jest nazwą pliku graficznego z rozszerzeniem plikowym, * {{Tt|rozmiar}} - rozmiar uwzględniający tylko piksele, można go pisać,wten sposób, np: {{Code|20px}}, {{Code|x20px}} lub {{Code|30x20px}}, * {{Tt|rozmiar?}} - jak {{Tt|rozmiar}}, tylko że dodatkowo rozmiar może być pusty, * {{Tt|rozmiar*}} - jak {{Tt|rozmiar}}, ale w przeciwieństwie do tego, tylko po liczbach mogą występować jednostki, ale nie muszą, nie tylko w pikselach, np. szerokość może być w innych jednostkach niż wysokość, * {{Tt|rozmiar*?}} - jak {{Tt|rozmiar*}}, tylko że dodatkowo rozmiar może być pusty, * {{Tt|old}} – informuje, że przekazywany parametr jest przestarzały, * {{Tt|^…$}} – tekst rozpoczynający się znakiem {{Code|^}} i zakończony na {{Code|$}} w całości traktowany jest jako wyrażenie regularne Lua wskazującego prawidłowy parametr. === Modyfikatory konieczności i pustości, razem podane lub nie === Dla powyższych parametrów, po nich może być podany parametr {{Code|!}}, który mówi, że ten parametr musi być podany, bo w przeciwnym wypadku ma być zgłoszony błąd. A jeżeli przed nim jest podany znak {{Code|?}}, ale przed {{Code|!}}, to parametr może być taki, jak wskazuje cechowanie parametru w szablonie, lub może przyjmować wartość pustą. Np. jeżeli parametr jest sprawdzany wyrażenie regularnym, a po nim podany zapytajnik, to dalej on równie dobrze może być pusty, ale podany. {{Tabela|klasa=wikitable|liczba wierszy=3|liczba kolumn=3 | nagłówek 1 = Koniecznosci | nagłówek 2 = Pustości | nagłówek 3 = pustości i konieczności | komórka 1_1 = all! | komórka 1_2 = all? | komórka 1_3 = all?! | komórka 2_1 = ^…$! | komórka 2_2 = ^…$? | komórka 2_3 = ^…$?! | komórka 3_1 = ^…$&^…$! | komórka 3_2 = ^…$&^…$? | komórka 3_3 = ^…$&^…$?! }} === Parametry określone wyrażeniem regularnym === Wyrażenia regularne określamy przez {{Tt|^…$}} można je łączyć przez łącznik pól {{Code|&}}, wtedy tak rozdzielone wyrażenia muszą spełniać oba wyrażenia regularne, lub przez {{Code|{{s|!}}}}, wtedy pole spełnia jedno lub drugie wyrażenie. Przy czym pole "lub" jest ważniejsze niż pole "i". Jeżeli chcemy określić, by pole nie spełniało tego wyrażenia regularnego, to przed nim podajemy modyfikator {{Code|!}}. ==== Przykłady oddzielne z modyfkatorami: "i", "lub", lub "not", z wyrażeniami regularnymi ==== {{Tabela|klasa=wikitable|liczba wierszy=1|liczba kolumn=3 | nagłówek 1 = "i" | nagłówek 2 = "lub" | nagłówek 3 = "not" | komórka 1_1 = {{Pre|^%a.*$&^%a%#.*$}} | komórka 1_2 = {{Pre|^%a.*${{s|!}}^%a%#.*$}} | komórka 1_3 = {{Pre|!^$a+$}} }} ==== Przykłady z modyfikatorem "not" parametru z wyrażeniami regularnymi połączone łącznikami: "i" albo "lub" ==== {{Tabela|klasa=wikitable|liczba wierszy=1|liczba kolumn=2 | nagłówek 1 = "i" | nagłówek 2 = "lub" | komórka 1_1 = {{Pre|^%a.*$&!^%a%#.*$}} | komórka 1_2 = {{Pre|^%a.*${{s|!}}!^%a%#.*$}} }} ==== Parametry, które muszą być podane, ale z wykluczeniem innych parametrów ==== Po modyfikatorach cechowania, podajemy parametry oddzielone średnikiem, a na początku tej listy tez musi być średnik. ; Przykład{{Dk}} {{Pre|{{Parametr|parametr|old;parametr1;parametr2}}}} Powyższe wyrazenie jedynie mówi, że parametr, który jest określony przed znakiem {{Code|{{s|{{=}}}}}}, nie może być podany z parametrami z: {{Tt|parametr1}}, {{Tt|parametr2}}. === Parametry konieczne === Jeżeli po parametrze zostanie podany wykrzyknik, to on mowi, że ten argument musi być podany: ; Przykład{{Dk}} {{Pre|{{Parametr|parametr|old;parametr1;parametr2!}}}} Powyższe wywołanie określa, że w szablonie muszą być podane jednocześnie parametry {{Tt|parametr}} i {{Tt|parametr2}}. === Parametry konieczne niepuste lub puste, albo możliwe puste === Jeżeli po parametrze zostanie podany element {{Code|?!}}, to on informuje bowiem, że parametr konieczny musi być niepusty, a {{Code|?!!}}, że ten owy parametr musi być pusty. {{Tabela|klasa=wikitable|liczba wierszy=1|liczba kolumn=3 | tytuł= Parametry podawane wraz z innymi parametrami | nagłówek 1 = konieczne niepuste| nagłówek 2 = konieczne puste |nagłówek 3 = możliwe puste | komórka 1_1 = {{Parametr|parametr|old;parametr1;parametr2?!}} | komórka 1_2 = {{Parametr|parametr|old;parametr1;parametr2?!!}} | komórka 1_3 = {{Parametr|parametr|old;parametr1;parametr2?}} }} === Parametry nieobsługiwane === Wskaźnik parametru nieobsługiwanego podajemy przed parametrem w postaci {{Code|!}} (wykrzyknika), mówi on, że zmienna podana przed zapytajnikami i wykrzyknikami po argumencie jest nieobsługiwana w takim przypadku. W tabeli są podane przypadki właśnie tego: {{Tabela|klasa=wikitable|liczba wierszy=1|liczba kolumn=3 | tytuł= Parametry podawane wraz z innymi parametrami | nagłówek 1 = konieczne niepuste| nagłówek 2 = konieczne puste |nagłówek 3 = możliwe puste | komórka 1_1 = {{Parametr|parametr|old;parametr1;!parametr2?!}} | komórka 1_2 = {{Parametr|parametr|old;parametr1;!parametr2?!!}} | komórka 1_3 = {{Parametr|parametr|old;parametr1;!parametr2?}} }} === Parametry modyfikujące w parametrze {{Parametr|bez argumentów szablonu}} === Parametry szablonu, wsród których może być podany element: {{Parametr|bez argumentów szablonu}}, którego części muszą być oddzzielone srednikami, wskazuje on na to, że tych parametrów szablon nie zna. Oto przykład: {{Pre|{{Parametr|bez argumentów szablonu|wyrównanie;odstęp;pozycja numeracji}}}} * Przykład w szablonie {{s|CentrujWzór}}. ---- Powyższe wywołane wywołujemy w ramce funkcji {{Code|{{m|Ramka|Szablon}}}}, jeżeli definiujemy szablony o podobnych funkcjach z jednym miejscem, w którym jest umieszczony komponent: {{Code|{{m|Sprawdź|Parametry}}}}. === Dodatkowe reguły szablonu {{Parametr|zmienna sprawdzania parametrów}} === Przykład jego wywołania w szablonie rodzica: {{Pre|{{Parametr|zmienna sprawdzania parametrów|3{{=}};operacja;;operacja{{=}};3}}}} * Przykład w szablonie {{s|CentrujWzór}}. Powyższe uruchomienie szablonu z tym parametrem wskazuje, że zostaną dodane dodatkowe reguły do funkcji: {{Code|{{m|Sprawdź|Parametry}}}}. ---- Powyższe wywołane wywołujemy w ramce funkcji {{Code|{{m|Ramka|Szablon}}}}, jeżeli definiujemy szablony o podobnych funkcjach z jednym miejscem, w którym jest umieszczony komponent: {{Code|{{m|Sprawdź|Parametry}}}}. === Przykład wywołania w szablonie funkcji {{m|Sprawdź|Parametry}} === ; Przykład: {{Pre| {{m|Sprawdź|Parametry | {{=}} problemy-w-szablonie {{l|Kategoria:Błędy wywołań w szablonie|bd=tak}} | parametr_w_szablonie_1 {{=}} | parametr_w_szablonie_2 {{=}} num? }}}} == {{Code|odn}} == Funkcja sprawdzająca prawidłowość parametrów w {{s|odn}}. bi00jx04q3wde09scgrmafs02c8e5r6 543801 543800 2026-05-22T01:20:29Z Persino 2851 /* {{Code|Parametry}} */ 543801 wikitext text/x-wiki {{Wysokie ryzyko|częste użycie}} {{Klasyfikacja modułu|r}} Ten moduł zapewnia platformę programistyczną dla tworzenia szablonów budujących przypadki testowe szablonów Wikibooks'a. Przypadki testowe mogą być tworzone ręcznie, aczkolwiek te tworzone za pomocą szablonów opartych na module Lua, takim jak niniejszy moduł, mają taką zaletę, że argumenty szablonu muszą być wprowadzone jedynie jednokrotnie, co zmniejsza nakład pracy konieczny do tworzenia testów, a także zmniejsza ryzyko występowania błędów w danych wejściowych. == {{Code|Porównaj}} == Ta funkcja jest obecnie wykorzystywana przez szablon {{s|Przypadek testowy}}. Przykłady w jego dokumentacji na jego stronie opisu {{s|Przypadek testowy/opis}}. == {{Code|Parametry}} == Funkcja do wykrywania wywołań szablonów z nierozpoznanymi, pustymi lub przestarzałymi parametrami. Należy ją wywołać ze wszystkimi możliwymi parametrami, jakie przyjmuje szablon podlegający sprawdzaniu. ; Konfiguracja: * ''klasa'' – ciąg znaków bez spacji umieszczany jako wartość atrybutu {{Code|class}} w tagu {{Code|&lt;span&gt;}} z wygenerowanym raportem * ''odstęp'' – ciąg znaków odstępu oddzielający pozostałą treść konfiguracji, jeśli zawiera znak nowej linii to przed wygenerowanym raportem jest również umieszczany znak nowej linii * ''suffix'' – treść dołączana po wygenerowanym raporcie, zwykle deklaracja technicznej kategorii ; Sprawdzanie parametrów: * ''pusty'' – parametr jest opcjonalny, jest to najczęściej stosowany sposób użycia, obecnie domyślnie zezwala na treść bez obrazków i linków zewnętrznych, * {{Tt|txt}} - dowolna wartość niepusta poniższych typów jednocześnie, * {{Tt|all}} – oczekiwana jest dowolna niepusta wartość, która nie jest adresem linku zewnętrznego i nie zawiera linku zewnętrznego tekstowego (nie w nawiasach kwadratowych), * {{Tt|text}} – oczekiwana jest dowolna niepusta wartość pola, która nie generuje obrazka ani linku zewnętrznego, * {{Tt|text?}} – oczekiwana jest wartość pola, która nie generuje obrazka ani linku zewnętrznego, * {{Tt|text-link}} – oczekiwana jest dowolna niepusta wartość pola, która nie generuje obrazka, * {{Tt|text-link?}} – oczekiwana jest wartość pola, która nie generuje obrazka, * {{Tt|text-img}} – oczekiwana jest dowolna niepusta wartość pola, która nie generuje linku zewnętrznego, * {{Tt|text-img?}} – oczekiwana jest wartość pola, która nie generuje linku zewnętrznego, * {{Tt|num}} – sprawdzanie, czy przekazana wartość jest liczbą, * {{Tt|num?}} – sprawdzanie, czy przekazana wartość jest pusta lub jest liczbą, * {{Tt|uri}} – sprawdzanie, czy przekazana wartość jest linkiem obsługiwanym przez [[:mw:Manual:$wgUrlProtocols|MediaWiki]], * {{Tt|uri?}} – sprawdzanie, czy przekazana wartość jest pusta lub jest linkiem, * {{Tt|grafika}} – sprawdzanie, czy przekazana wartość jest nazwą pliku graficznego bez rozszerzenia plikowego, * {{Tt|grafika?}} – sprawdzanie, czy przekazana wartość jest pusta lub jest nazwą pliku graficznego bez rozszerzenia plikowego, * {{Tt|grafika*}} – sprawdzanie, czy przekazana wartość jest nazwą pliku graficznego z rozszerzeniem plikowym, * {{Tt|grafika*?}} – sprawdzanie, czy przekazana wartość jest pusta lub jest nazwą pliku graficznego z rozszerzeniem plikowym, * {{Tt|rozmiar}} - rozmiar uwzględniający tylko piksele, można go pisać, w ten sposób, np: {{Code|20px}}, {{Code|x20px}} lub {{Code|30x20px}}, * {{Tt|rozmiar?}} - jak {{Tt|rozmiar}}, tylko że dodatkowo rozmiar może być pusty, * {{Tt|rozmiar*}} - jak {{Tt|rozmiar}}, ale w przeciwieństwie do tego, tylko po liczbach mogą występować jednostki, ale nie muszą, nie tylko w pikselach, np. szerokość może być w innych jednostkach niż wysokość, * {{Tt|rozmiar*?}} - jak {{Tt|rozmiar*}}, tylko że dodatkowo rozmiar może być pusty, * {{Tt|old}} – informuje, że przekazywany parametr jest przestarzały, * {{Tt|^…$}} – tekst rozpoczynający się znakiem {{Code|^}} i zakończony na {{Code|$}} w całości traktowany jest jako wyrażenie regularne Lua wskazującego prawidłowy parametr. === Modyfikatory konieczności i pustości, razem podane lub nie === Dla powyższych parametrów, po nich może być podany parametr {{Code|!}}, który mówi, że ten parametr musi być podany, bo w przeciwnym wypadku ma być zgłoszony błąd. A jeżeli przed nim jest podany znak {{Code|?}}, ale przed {{Code|!}}, to parametr może być taki, jak wskazuje cechowanie parametru w szablonie, lub może przyjmować wartość pustą. Np. jeżeli parametr jest sprawdzany wyrażenie regularnym, a po nim podany zapytajnik, to dalej on równie dobrze może być pusty, ale podany. {{Tabela|klasa=wikitable|liczba wierszy=3|liczba kolumn=3 | nagłówek 1 = Koniecznosci | nagłówek 2 = Pustości | nagłówek 3 = pustości i konieczności | komórka 1_1 = all! | komórka 1_2 = all? | komórka 1_3 = all?! | komórka 2_1 = ^…$! | komórka 2_2 = ^…$? | komórka 2_3 = ^…$?! | komórka 3_1 = ^…$&^…$! | komórka 3_2 = ^…$&^…$? | komórka 3_3 = ^…$&^…$?! }} === Parametry określone wyrażeniem regularnym === Wyrażenia regularne określamy przez {{Tt|^…$}} można je łączyć przez łącznik pól {{Code|&}}, wtedy tak rozdzielone wyrażenia muszą spełniać oba wyrażenia regularne, lub przez {{Code|{{s|!}}}}, wtedy pole spełnia jedno lub drugie wyrażenie. Przy czym pole "lub" jest ważniejsze niż pole "i". Jeżeli chcemy określić, by pole nie spełniało tego wyrażenia regularnego, to przed nim podajemy modyfikator {{Code|!}}. ==== Przykłady oddzielne z modyfkatorami: "i", "lub", lub "not", z wyrażeniami regularnymi ==== {{Tabela|klasa=wikitable|liczba wierszy=1|liczba kolumn=3 | nagłówek 1 = "i" | nagłówek 2 = "lub" | nagłówek 3 = "not" | komórka 1_1 = {{Pre|^%a.*$&^%a%#.*$}} | komórka 1_2 = {{Pre|^%a.*${{s|!}}^%a%#.*$}} | komórka 1_3 = {{Pre|!^$a+$}} }} ==== Przykłady z modyfikatorem "not" parametru z wyrażeniami regularnymi połączone łącznikami: "i" albo "lub" ==== {{Tabela|klasa=wikitable|liczba wierszy=1|liczba kolumn=2 | nagłówek 1 = "i" | nagłówek 2 = "lub" | komórka 1_1 = {{Pre|^%a.*$&!^%a%#.*$}} | komórka 1_2 = {{Pre|^%a.*${{s|!}}!^%a%#.*$}} }} ==== Parametry, które muszą być podane, ale z wykluczeniem innych parametrów ==== Po modyfikatorach cechowania, podajemy parametry oddzielone średnikiem, a na początku tej listy tez musi być średnik. ; Przykład{{Dk}} {{Pre|{{Parametr|parametr|old;parametr1;parametr2}}}} Powyższe wyrazenie jedynie mówi, że parametr, który jest określony przed znakiem {{Code|{{s|{{=}}}}}}, nie może być podany z parametrami z: {{Tt|parametr1}}, {{Tt|parametr2}}. === Parametry konieczne === Jeżeli po parametrze zostanie podany wykrzyknik, to on mowi, że ten argument musi być podany: ; Przykład{{Dk}} {{Pre|{{Parametr|parametr|old;parametr1;parametr2!}}}} Powyższe wywołanie określa, że w szablonie muszą być podane jednocześnie parametry {{Tt|parametr}} i {{Tt|parametr2}}. === Parametry konieczne niepuste lub puste, albo możliwe puste === Jeżeli po parametrze zostanie podany element {{Code|?!}}, to on informuje bowiem, że parametr konieczny musi być niepusty, a {{Code|?!!}}, że ten owy parametr musi być pusty. {{Tabela|klasa=wikitable|liczba wierszy=1|liczba kolumn=3 | tytuł= Parametry podawane wraz z innymi parametrami | nagłówek 1 = konieczne niepuste| nagłówek 2 = konieczne puste |nagłówek 3 = możliwe puste | komórka 1_1 = {{Parametr|parametr|old;parametr1;parametr2?!}} | komórka 1_2 = {{Parametr|parametr|old;parametr1;parametr2?!!}} | komórka 1_3 = {{Parametr|parametr|old;parametr1;parametr2?}} }} === Parametry nieobsługiwane === Wskaźnik parametru nieobsługiwanego podajemy przed parametrem w postaci {{Code|!}} (wykrzyknika), mówi on, że zmienna podana przed zapytajnikami i wykrzyknikami po argumencie jest nieobsługiwana w takim przypadku. W tabeli są podane przypadki właśnie tego: {{Tabela|klasa=wikitable|liczba wierszy=1|liczba kolumn=3 | tytuł= Parametry podawane wraz z innymi parametrami | nagłówek 1 = konieczne niepuste| nagłówek 2 = konieczne puste |nagłówek 3 = możliwe puste | komórka 1_1 = {{Parametr|parametr|old;parametr1;!parametr2?!}} | komórka 1_2 = {{Parametr|parametr|old;parametr1;!parametr2?!!}} | komórka 1_3 = {{Parametr|parametr|old;parametr1;!parametr2?}} }} === Parametry modyfikujące w parametrze {{Parametr|bez argumentów szablonu}} === Parametry szablonu, wsród których może być podany element: {{Parametr|bez argumentów szablonu}}, którego części muszą być oddzzielone srednikami, wskazuje on na to, że tych parametrów szablon nie zna. Oto przykład: {{Pre|{{Parametr|bez argumentów szablonu|wyrównanie;odstęp;pozycja numeracji}}}} * Przykład w szablonie {{s|CentrujWzór}}. ---- Powyższe wywołane wywołujemy w ramce funkcji {{Code|{{m|Ramka|Szablon}}}}, jeżeli definiujemy szablony o podobnych funkcjach z jednym miejscem, w którym jest umieszczony komponent: {{Code|{{m|Sprawdź|Parametry}}}}. === Dodatkowe reguły szablonu {{Parametr|zmienna sprawdzania parametrów}} === Przykład jego wywołania w szablonie rodzica: {{Pre|{{Parametr|zmienna sprawdzania parametrów|3{{=}};operacja;;operacja{{=}};3}}}} * Przykład w szablonie {{s|CentrujWzór}}. Powyższe uruchomienie szablonu z tym parametrem wskazuje, że zostaną dodane dodatkowe reguły do funkcji: {{Code|{{m|Sprawdź|Parametry}}}}. ---- Powyższe wywołane wywołujemy w ramce funkcji {{Code|{{m|Ramka|Szablon}}}}, jeżeli definiujemy szablony o podobnych funkcjach z jednym miejscem, w którym jest umieszczony komponent: {{Code|{{m|Sprawdź|Parametry}}}}. === Przykład wywołania w szablonie funkcji {{m|Sprawdź|Parametry}} === ; Przykład: {{Pre| {{m|Sprawdź|Parametry | {{=}} problemy-w-szablonie {{l|Kategoria:Błędy wywołań w szablonie|bd=tak}} | parametr_w_szablonie_1 {{=}} | parametr_w_szablonie_2 {{=}} num? }}}} == {{Code|odn}} == Funkcja sprawdzająca prawidłowość parametrów w {{s|odn}}. 4d23kp8tiyxw101kuhkqjxg6gqd6979 543803 543801 2026-05-22T01:51:42Z Persino 2851 /* {{Code|Parametry}} */ 543803 wikitext text/x-wiki {{Wysokie ryzyko|częste użycie}} {{Klasyfikacja modułu|r}} Ten moduł zapewnia platformę programistyczną dla tworzenia szablonów budujących przypadki testowe szablonów Wikibooks'a. Przypadki testowe mogą być tworzone ręcznie, aczkolwiek te tworzone za pomocą szablonów opartych na module Lua, takim jak niniejszy moduł, mają taką zaletę, że argumenty szablonu muszą być wprowadzone jedynie jednokrotnie, co zmniejsza nakład pracy konieczny do tworzenia testów, a także zmniejsza ryzyko występowania błędów w danych wejściowych. == {{Code|Porównaj}} == Ta funkcja jest obecnie wykorzystywana przez szablon {{s|Przypadek testowy}}. Przykłady w jego dokumentacji na jego stronie opisu {{s|Przypadek testowy/opis}}. == {{Code|Parametry}} == Funkcja do wykrywania wywołań szablonów z nierozpoznanymi, pustymi lub przestarzałymi parametrami. Należy ją wywołać ze wszystkimi możliwymi parametrami, jakie przyjmuje szablon podlegający sprawdzaniu. ; Konfiguracja: * ''klasa'' – ciąg znaków bez spacji umieszczany jako wartość atrybutu {{Code|class}} w tagu {{Code|&lt;span&gt;}} z wygenerowanym raportem * ''odstęp'' – ciąg znaków odstępu oddzielający pozostałą treść konfiguracji, jeśli zawiera znak nowej linii to przed wygenerowanym raportem jest również umieszczany znak nowej linii * ''suffix'' – treść dołączana po wygenerowanym raporcie, zwykle deklaracja technicznej kategorii ; Sprawdzanie parametrów: * ''pusty'' – parametr jest opcjonalny, jest to najczęściej stosowany sposób użycia, obecnie domyślnie zezwala na treść bez obrazków i linków zewnętrznych, * {{Tt|txt}} - dowolna wartość niepusta poniższych typów jednocześnie, * {{Tt|all}} – oczekiwana jest dowolna niepusta wartość, która nie jest adresem linku zewnętrznego i nie zawiera linku zewnętrznego tekstowego (nie w nawiasach kwadratowych), * {{Tt|text}} – oczekiwana jest dowolna niepusta wartość pola, która nie generuje obrazka ani linku zewnętrznego, * {{Tt|text?}} – oczekiwana jest wartość pola, która nie generuje obrazka ani linku zewnętrznego, * {{Tt|text-link}} – oczekiwana jest dowolna niepusta wartość pola, która nie generuje obrazka, * {{Tt|text-link?}} – oczekiwana jest wartość pola, która nie generuje obrazka, * {{Tt|text-img}} – oczekiwana jest dowolna niepusta wartość pola, która nie generuje linku zewnętrznego, * {{Tt|text-img?}} – oczekiwana jest wartość pola, która nie generuje linku zewnętrznego, * {{Tt|num}} – sprawdzanie, czy przekazana wartość jest liczbą, * {{Tt|num?}} – sprawdzanie, czy przekazana wartość jest pusta lub jest liczbą, * {{Tt|uri}} – sprawdzanie, czy przekazana wartość jest linkiem obsługiwanym przez [[:mw:Manual:$wgUrlProtocols|MediaWiki]], * {{Tt|uri?}} – sprawdzanie, czy przekazana wartość jest pusta lub jest linkiem, * {{Tt|grafika}} – sprawdzanie, czy przekazana wartość jest nazwą pliku graficznego bez rozszerzenia plikowego, * {{Tt|grafika?}} – sprawdzanie, czy przekazana wartość jest pusta lub jest nazwą pliku graficznego bez rozszerzenia plikowego, * {{Tt|grafika*}} – sprawdzanie, czy przekazana wartość jest nazwą pliku graficznego z rozszerzeniem plikowym, * {{Tt|grafika*?}} – sprawdzanie, czy przekazana wartość jest pusta lub jest nazwą pliku graficznego z rozszerzeniem plikowym, * {{Tt|rozmiar}} - rozmiar uwzględniający tylko piksele, można go pisać, w ten sposób, np: {{Code|20px}}, {{Code|x20px}} lub {{Code|30x20px}}, * {{Tt|rozmiar?}} - jak {{Tt|rozmiar}}, tylko że dodatkowo rozmiar może być pusty, * {{Tt|rozmiar*}} - jak {{Tt|rozmiar}}, ale w przeciwieństwie do tego, tylko po liczbach mogą występować jednostki, ale nie muszą, nie tylko w pikselach, np. szerokość może być w innych jednostkach niż wysokość, * {{Tt|rozmiar*?}} - jak {{Tt|rozmiar*}}, tylko że dodatkowo rozmiar może być pusty, * {{Tt|old}} – informuje, że przekazywany parametr jest przestarzały, * {{Tt|^…$}} – tekst rozpoczynający się znakiem {{Code|^}} i zakończony na {{Code|$}} w całości traktowany jest jako wyrażenie regularne Lua wskazującego prawidłowy parametr. Funkcja umożliwa też łączenie parametru: {{Tt|old}} z innymi, np. {{Tt|old+rozmiar*}} (ewentualnie: {{Tt|rozmiar*+old}}), lub z wyrażeniami regularnymi, tzn. {{Tt|old+^%d+%a+$}} (ewentuaalnie: {{Tt|^%d+%a+$+old}}). === Modyfikatory konieczności i pustości, razem podane lub nie === Dla powyższych parametrów, po nich może być podany parametr {{Code|!}}, który mówi, że ten parametr musi być podany, bo w przeciwnym wypadku ma być zgłoszony błąd. A jeżeli przed nim jest podany znak {{Code|?}}, ale przed {{Code|!}}, to parametr może być taki, jak wskazuje cechowanie parametru w szablonie, lub może przyjmować wartość pustą. Np. jeżeli parametr jest sprawdzany wyrażenie regularnym, a po nim podany zapytajnik, to dalej on równie dobrze może być pusty, ale podany. {{Tabela|klasa=wikitable|liczba wierszy=3|liczba kolumn=3 | nagłówek 1 = Koniecznosci | nagłówek 2 = Pustości | nagłówek 3 = pustości i konieczności | komórka 1_1 = all! | komórka 1_2 = all? | komórka 1_3 = all?! | komórka 2_1 = ^…$! | komórka 2_2 = ^…$? | komórka 2_3 = ^…$?! | komórka 3_1 = ^…$&^…$! | komórka 3_2 = ^…$&^…$? | komórka 3_3 = ^…$&^…$?! }} === Parametry określone wyrażeniem regularnym === Wyrażenia regularne określamy przez {{Tt|^…$}} można je łączyć przez łącznik pól {{Code|&}}, wtedy tak rozdzielone wyrażenia muszą spełniać oba wyrażenia regularne, lub przez {{Code|{{s|!}}}}, wtedy pole spełnia jedno lub drugie wyrażenie. Przy czym pole "lub" jest ważniejsze niż pole "i". Jeżeli chcemy określić, by pole nie spełniało tego wyrażenia regularnego, to przed nim podajemy modyfikator {{Code|!}}. ==== Przykłady oddzielne z modyfkatorami: "i", "lub", lub "not", z wyrażeniami regularnymi ==== {{Tabela|klasa=wikitable|liczba wierszy=1|liczba kolumn=3 | nagłówek 1 = "i" | nagłówek 2 = "lub" | nagłówek 3 = "not" | komórka 1_1 = {{Pre|^%a.*$&^%a%#.*$}} | komórka 1_2 = {{Pre|^%a.*${{s|!}}^%a%#.*$}} | komórka 1_3 = {{Pre|!^$a+$}} }} ==== Przykłady z modyfikatorem "not" parametru z wyrażeniami regularnymi połączone łącznikami: "i" albo "lub" ==== {{Tabela|klasa=wikitable|liczba wierszy=1|liczba kolumn=2 | nagłówek 1 = "i" | nagłówek 2 = "lub" | komórka 1_1 = {{Pre|^%a.*$&!^%a%#.*$}} | komórka 1_2 = {{Pre|^%a.*${{s|!}}!^%a%#.*$}} }} ==== Parametry, które muszą być podane, ale z wykluczeniem innych parametrów ==== Po modyfikatorach cechowania, podajemy parametry oddzielone średnikiem, a na początku tej listy tez musi być średnik. ; Przykład{{Dk}} {{Pre|{{Parametr|parametr|old;parametr1;parametr2}}}} Powyższe wyrazenie jedynie mówi, że parametr, który jest określony przed znakiem {{Code|{{s|{{=}}}}}}, nie może być podany z parametrami z: {{Tt|parametr1}}, {{Tt|parametr2}}. === Parametry konieczne === Jeżeli po parametrze zostanie podany wykrzyknik, to on mowi, że ten argument musi być podany: ; Przykład{{Dk}} {{Pre|{{Parametr|parametr|old;parametr1;parametr2!}}}} Powyższe wywołanie określa, że w szablonie muszą być podane jednocześnie parametry {{Tt|parametr}} i {{Tt|parametr2}}. === Parametry konieczne niepuste lub puste, albo możliwe puste === Jeżeli po parametrze zostanie podany element {{Code|?!}}, to on informuje bowiem, że parametr konieczny musi być niepusty, a {{Code|?!!}}, że ten owy parametr musi być pusty. {{Tabela|klasa=wikitable|liczba wierszy=1|liczba kolumn=3 | tytuł= Parametry podawane wraz z innymi parametrami | nagłówek 1 = konieczne niepuste| nagłówek 2 = konieczne puste |nagłówek 3 = możliwe puste | komórka 1_1 = {{Parametr|parametr|old;parametr1;parametr2?!}} | komórka 1_2 = {{Parametr|parametr|old;parametr1;parametr2?!!}} | komórka 1_3 = {{Parametr|parametr|old;parametr1;parametr2?}} }} === Parametry nieobsługiwane === Wskaźnik parametru nieobsługiwanego podajemy przed parametrem w postaci {{Code|!}} (wykrzyknika), mówi on, że zmienna podana przed zapytajnikami i wykrzyknikami po argumencie jest nieobsługiwana w takim przypadku. W tabeli są podane przypadki właśnie tego: {{Tabela|klasa=wikitable|liczba wierszy=1|liczba kolumn=3 | tytuł= Parametry podawane wraz z innymi parametrami | nagłówek 1 = konieczne niepuste| nagłówek 2 = konieczne puste |nagłówek 3 = możliwe puste | komórka 1_1 = {{Parametr|parametr|old;parametr1;!parametr2?!}} | komórka 1_2 = {{Parametr|parametr|old;parametr1;!parametr2?!!}} | komórka 1_3 = {{Parametr|parametr|old;parametr1;!parametr2?}} }} === Parametry modyfikujące w parametrze {{Parametr|bez argumentów szablonu}} === Parametry szablonu, wsród których może być podany element: {{Parametr|bez argumentów szablonu}}, którego części muszą być oddzzielone srednikami, wskazuje on na to, że tych parametrów szablon nie zna. Oto przykład: {{Pre|{{Parametr|bez argumentów szablonu|wyrównanie;odstęp;pozycja numeracji}}}} * Przykład w szablonie {{s|CentrujWzór}}. ---- Powyższe wywołane wywołujemy w ramce funkcji {{Code|{{m|Ramka|Szablon}}}}, jeżeli definiujemy szablony o podobnych funkcjach z jednym miejscem, w którym jest umieszczony komponent: {{Code|{{m|Sprawdź|Parametry}}}}. === Dodatkowe reguły szablonu {{Parametr|zmienna sprawdzania parametrów}} === Przykład jego wywołania w szablonie rodzica: {{Pre|{{Parametr|zmienna sprawdzania parametrów|3{{=}};operacja;;operacja{{=}};3}}}} * Przykład w szablonie {{s|CentrujWzór}}. Powyższe uruchomienie szablonu z tym parametrem wskazuje, że zostaną dodane dodatkowe reguły do funkcji: {{Code|{{m|Sprawdź|Parametry}}}}. ---- Powyższe wywołane wywołujemy w ramce funkcji {{Code|{{m|Ramka|Szablon}}}}, jeżeli definiujemy szablony o podobnych funkcjach z jednym miejscem, w którym jest umieszczony komponent: {{Code|{{m|Sprawdź|Parametry}}}}. === Przykład wywołania w szablonie funkcji {{m|Sprawdź|Parametry}} === ; Przykład: {{Pre| {{m|Sprawdź|Parametry | {{=}} problemy-w-szablonie {{l|Kategoria:Błędy wywołań w szablonie|bd=tak}} | parametr_w_szablonie_1 {{=}} | parametr_w_szablonie_2 {{=}} num? }}}} == {{Code|odn}} == Funkcja sprawdzająca prawidłowość parametrów w {{s|odn}}. c8s2gztzyz9zfgdg16s2igk8kkuueae Szablon:Szablony stronicowe 10 33925 543715 543683 2026-05-21T13:28:32Z Persino 2851 543715 wikitext text/x-wiki {{Szablon nawigacyjny | nazwa = Szablony stronicowe | tytuł = Szablony stronicowe | zwijanie = rozwinięte | szerokość = 78ex | margines = 5px 0 5px 5px | opis1 = Wzory | spis1 = * {{s|Wzór}} * {{s|Wzór2}} * {{s|CentrujWzór}} * {{s|CentrujWzór2}} | opis2 = MathML | spis2 = * {{s|MathMLWzór}} * {{s|MathMLWzór2}} * {{s|CentrujMathMLWzór}} * {{s|CentrujMathMLWzór2}} | opis3 = Grafika | spis3 = * {{s|Rysunek}} | opis4 = Punkty | spis4 = * {{s|ZobaczTeż}} * {{s|Patrz}} | opis5 = Ważne | spis5 = * {{s|LinkWzór}} * {{s|LinkRysunek}} * {{s|LinkZobaczTeż}} * {{s|LinkPatrz}} | opis6 = Ogólne | spis6 = {{Szablon nawigacyjny z kolumnami|podgrupa | opis1 = Szablon linków | spis1 = {{Szablon nawigacyjny podgrupa | opis1 = Linki | spis1 = * {{s|LinkObiekt}} }} | opis2 = Szablon wypowiedzenia | spis2 = {{Szablon nawigacyjny podgrupa | opis1 = Wypowiedzenie | spis1 = * {{s|Wypowiedzenie}} }} | kategoria = nie }} | opis7 = Szczególne | spis7 = {{Szablon nawigacyjny z kolumnami|podgrupa | dół = Szablony okienek i do ich uchwytów specjalistyczne linki | opis1 = Linki | spis1 = {{Szablon nawigacyjny podgrupa | opis1 = Twierdzenie | spis1 = * {{s|LinkTwierdzenie}} | opis2 = Hipotezy | spis2 = * {{s|LinkHipoteza}} | opis3 = Lemat | spis3 = * {{s|LinkLemat}} | opis4 = Kryterium | spis4 = * {{s|LinkKryterium}} | opis5 = Dowód | spis5 = * {{s|LinkDowód}} | opis6 = Postulat | spis6 = * {{s|LinkPostulat}} | opis7 = Postulaty | spis7 = * {{s|LinkPostulaty}} | opis8 = Definicje | spis8 = * {{s|LinkOkreślenie}} | opis9 = Zadanie | spis9 = * {{s|LinkZadanie}} | opis10= Ćwiczenia | spis10 = * {{s|LinkPraktyka}} | opis11 = Procedura | spis11 = * {{s|LinkProcedura}} | opis12 = Schemat | spis12 = * {{s|LinkSchemat}} }} | opis2 = Wypowiedzenia | spis2 = {{Szablon nawigacyjny podgrupa | opis1 = Twierdzenie | spis1 = * {{s|Twierdzenie}} | opis2 = Hipoteza | spis2 = * {{s|Hipoteza}} | opis3 = Lemat | spis3 = * {{s|Lemat}} | opis4 = Kryterium | spis4 = * {{s|Kryterium}} | opis5 = Dowód | spis5 = * {{s|Dowód}} | opis6 = Postulat | spis6 = * {{s|Postulat}} | opis7 = Postulaty | spis7 = * {{s|Postulaty}} | opis8 = Definicja | spis8 = * {{s|Określenie}} | opis9 = Zadanie | spis9 = * {{s|Zadanie}} | opis10 = Ćwiczenie | spis10 = * {{s|Praktyka}} | opis11 = Procedura | spis11 = * {{s|Procedura}} | opis12 = Schemat | spis12 = * {{s|Schemat}} }} | kategoria = nie }} | opis8 = L-Nagłówki | spis8 = * {{s|Śródtytuł}} * {{s|LinkŚródtytuł}} * {{s|LinkŚródtytułTutaj}} | opis9 = L-Tekst | spis9 = * {{s|Śródtekst}} * {{s|LinkŚródtekst}} | opis10 = Wykazy | spis10 = * {{s|ListaNagłówkówKsiążki}} | opis11 = W tekście | spis11 = * {{s|Formuła}} * {{s|MathMLFormuła}} | opis12 = Pomiędzy | spis12 = * {{s|Tekst}} | opis13 = Nagłówki | spis13 = * {{s|HNumer}} * {{s|StronaTytułowa}} | opis14 = Autonawigacja | spis14 = * {{s|Autonawigacja}} * {{s|NawigacjaSpecjalna}} * {{s|Układ autonawigacji}} | opis15 = Spis treści | spis15 = * {{s|SpisTreści}} (spis rozdziałów artykułu) * {{s|TOC}} * {{s|TOCRamka}} * {{s|TOC limit}} * {{s|Spis treści}} * {{s|Spis treści zwinięty}} | opis16 = Nawigacja | spis16 = * {{s|AktualnaKsiążka}} * {{s|NastępnyArtykuł}} * {{s|PoprzedniArtykuł}} * {{s|NazwaAktualnyArtykuł}} | opis17 = L-Nawigacja | spis17 = * {{s|LinkAktualnaKsiążka}} * {{s|LinkNastępnyArtykuł}} * {{s|LinkPoprzedniArtykuł}} * {{s|LinkNastępnySubArtykuł}} * {{s|LinkPoprzedniSubArtykuł}} | opis18 = Artykuły | spis18 = * {{s|PierwszyArtykuł}} * {{s|OstatniArtykuł}} * {{s|PomiędzyArtykuł}} * {{s|LosowyArtykuł}} | opis19 = Numerowanie | spis19 = * {{s|PobierzNazwęNagłówka}} * {{s|PobierzNumerNagłówka}} * {{s|PobierzNazwęArtykułu}} * {{s|PobierzNumerArtykułu}} | opis20 = Linie | spis20 = * {{s|LiniaArtykułuKsiążki}} | opis21 = Nazwy | spis21 = * {{s|NazwaLinkuArtykułu}} * {{s|LiczbaArtykułówKsiążki}} * {{s|PoziomNazwyArtykułu}} * {{s|SubNazwaNadArtykułu}} * {{s|NazwaNadArtykułu}} * {{s|LinkNazwaNadArtykułu}} * {{s|LinkSubNazwaNadArtykułu}} | opis22 = N-Nagłówki | spis22 = * {{s|LosowyNagłówek}} * {{s|PomiędzyNagłówek}} * {{s|PierwszyNagłówek}} * {{s|OstatniNagłówek}} * {{s|LiczbaNagłówkówSpisu}} | opis23 = Autorskie | spis23 = * {{s|Licencja}} | opis24 = Zawartości | spis24 = * {{s|StronaSubst}} * {{s|KsiążkaSubst}} * {{s|ArtykułSubst}} | opis25 = Linki | spis25 = * {{s|Sekcja referencyjna}} (spis artykułów) * {{s|StopkaSpisTreści}} | opis26 = Książkowe | spis26 = * {{s|Wolumin}} * {{s|SortWolumin}} * {{s|SortKuchWolumin}} * {{s|LinkWolumin}} * {{s|StronaWolumin}} * {{s|T}} * {{s|T2}} * {{s|Q}} * {{s|N}} * {{s|A}} * {{s|Status}} * {{s|Kompletność}} * {{s|Kompletność junior}} * {{s|Książka}} | opis27 = Indeksowanie | spis27 = * {{s|Kotwica}} * {{s|Indeksuj}} | opis28 = Spis artykułów | spis28 = * {{s|Link wewnętrzny}} * {{s|LinkOgólne}} * {{s|LinkGłówna}} * {{s|LinkWikijunior}} * {{s|LinkWikijunior2}} * {{s|LinkUżytkownik}} * {{s|LinkUżytkownik2}} * {{s|LinkProjekt}} * {{s|LinkProjekt2}} | kategoria = Wikibooks }} bzz671l37e9lbs9zhx2oxabbhbrx9jc 543739 543715 2026-05-21T14:20:12Z Persino 2851 543739 wikitext text/x-wiki {{Szablon nawigacyjny | nazwa = Szablony stronicowe | tytuł = Szablony stronicowe | zwijanie = rozwinięte | szerokość = 78ex | margines = 5px 0 5px 5px | opis1 = Wzory | spis1 = * {{s|Wzór}} * {{s|Wzór2}} * {{s|CentrujWzór}} * {{s|CentrujWzór2}} | opis2 = MathML | spis2 = * {{s|MathMLWzór}} * {{s|MathMLWzór2}} * {{s|CentrujMathMLWzór}} * {{s|CentrujMathMLWzór2}} | opis3 = Grafika | spis3 = * {{s|Rysunek}} | opis4 = Punkty | spis4 = * {{s|ZobaczTeż}} * {{s|Patrz}} | opis5 = Ważne | spis5 = * {{s|LinkWzór}} * {{s|LinkRysunek}} * {{s|LinkZobaczTeż}} * {{s|LinkPatrz}} | opis6 = Ogólne | spis6 = {{Szablon nawigacyjny z kolumnami|podgrupa | opis1 = Szablon linków | spis1 = {{Szablon nawigacyjny podgrupa | opis1 = Linki | spis1 = * {{s|LinkObiekt}} }} | opis2 = Szablon wypowiedzenia | spis2 = {{Szablon nawigacyjny podgrupa | opis1 = Wypowiedzenie | spis1 = * {{s|Wypowiedzenie}} }} | kategoria = nie }} | opis7 = Szczególne | spis7 = {{Szablon nawigacyjny z kolumnami|podgrupa | dół = Szablony okienek i do ich uchwytów specjalistyczne linki | opis1 = Linki | spis1 = {{Szablon nawigacyjny podgrupa | opis1 = Twierdzenie | spis1 = * {{s|LinkTwierdzenie}} | opis2 = Hipotezy | spis2 = * {{s|LinkHipoteza}} | opis3 = Lemat | spis3 = * {{s|LinkLemat}} | opis4 = Kryterium | spis4 = * {{s|LinkKryterium}} | opis5 = Dowód | spis5 = * {{s|LinkDowód}} | opis6 = Postulat | spis6 = * {{s|LinkPostulat}} | opis7 = Postulaty | spis7 = * {{s|LinkPostulaty}} | opis8 = Definicje | spis8 = * {{s|LinkOkreślenie}} | opis9 = Zadanie | spis9 = * {{s|LinkZadanie}} | opis10= Ćwiczenia | spis10 = * {{s|LinkPraktyka}} | opis11 = Procedura | spis11 = * {{s|LinkProcedura}} | opis12 = Schemat | spis12 = * {{s|LinkSchemat}} }} | opis2 = Wypowiedzenia | spis2 = {{Szablon nawigacyjny podgrupa | opis1 = Twierdzenie | spis1 = * {{s|Twierdzenie}} | opis2 = Hipoteza | spis2 = * {{s|Hipoteza}} | opis3 = Lemat | spis3 = * {{s|Lemat}} | opis4 = Kryterium | spis4 = * {{s|Kryterium}} | opis5 = Dowód | spis5 = * {{s|Dowód}} | opis6 = Postulat | spis6 = * {{s|Postulat}} | opis7 = Postulaty | spis7 = * {{s|Postulaty}} | opis8 = Definicja | spis8 = * {{s|Określenie}} | opis9 = Zadanie | spis9 = * {{s|Zadanie}} | opis10 = Ćwiczenie | spis10 = * {{s|Praktyka}} | opis11 = Procedura | spis11 = * {{s|Procedura}} | opis12 = Schemat | spis12 = * {{s|Schemat}} }} | kategoria = nie }} | opis8 = L-Nagłówki | spis8 = * {{s|Śródtytuł}} * {{s|LinkŚródtytuł}} * {{s|LinkŚródtytułTutaj}} | opis9 = L-Tekst | spis9 = * {{s|Śródtekst}} * {{s|PobierzŚródtekst}} | opis10 = Wykazy | spis10 = * {{s|ListaNagłówkówKsiążki}} | opis11 = W tekście | spis11 = * {{s|Formuła}} * {{s|MathMLFormuła}} | opis12 = Pomiędzy | spis12 = * {{s|Tekst}} | opis13 = Nagłówki | spis13 = * {{s|HNumer}} * {{s|StronaTytułowa}} | opis14 = Autonawigacja | spis14 = * {{s|Autonawigacja}} * {{s|NawigacjaSpecjalna}} * {{s|Układ autonawigacji}} | opis15 = Spis treści | spis15 = * {{s|SpisTreści}} (spis rozdziałów artykułu) * {{s|TOC}} * {{s|TOCRamka}} * {{s|TOC limit}} * {{s|Spis treści}} * {{s|Spis treści zwinięty}} | opis16 = Nawigacja | spis16 = * {{s|AktualnaKsiążka}} * {{s|NastępnyArtykuł}} * {{s|PoprzedniArtykuł}} * {{s|NazwaAktualnyArtykuł}} | opis17 = L-Nawigacja | spis17 = * {{s|LinkAktualnaKsiążka}} * {{s|LinkNastępnyArtykuł}} * {{s|LinkPoprzedniArtykuł}} * {{s|LinkNastępnySubArtykuł}} * {{s|LinkPoprzedniSubArtykuł}} | opis18 = Artykuły | spis18 = * {{s|PierwszyArtykuł}} * {{s|OstatniArtykuł}} * {{s|PomiędzyArtykuł}} * {{s|LosowyArtykuł}} | opis19 = Numerowanie | spis19 = * {{s|PobierzNazwęNagłówka}} * {{s|PobierzNumerNagłówka}} * {{s|PobierzNazwęArtykułu}} * {{s|PobierzNumerArtykułu}} | opis20 = Linie | spis20 = * {{s|LiniaArtykułuKsiążki}} | opis21 = Nazwy | spis21 = * {{s|NazwaLinkuArtykułu}} * {{s|LiczbaArtykułówKsiążki}} * {{s|PoziomNazwyArtykułu}} * {{s|SubNazwaNadArtykułu}} * {{s|NazwaNadArtykułu}} * {{s|LinkNazwaNadArtykułu}} * {{s|LinkSubNazwaNadArtykułu}} | opis22 = N-Nagłówki | spis22 = * {{s|LosowyNagłówek}} * {{s|PomiędzyNagłówek}} * {{s|PierwszyNagłówek}} * {{s|OstatniNagłówek}} * {{s|LiczbaNagłówkówSpisu}} | opis23 = Autorskie | spis23 = * {{s|Licencja}} | opis24 = Zawartości | spis24 = * {{s|StronaSubst}} * {{s|KsiążkaSubst}} * {{s|ArtykułSubst}} | opis25 = Linki | spis25 = * {{s|Sekcja referencyjna}} (spis artykułów) * {{s|StopkaSpisTreści}} | opis26 = Książkowe | spis26 = * {{s|Wolumin}} * {{s|SortWolumin}} * {{s|SortKuchWolumin}} * {{s|LinkWolumin}} * {{s|StronaWolumin}} * {{s|T}} * {{s|T2}} * {{s|Q}} * {{s|N}} * {{s|A}} * {{s|Status}} * {{s|Kompletność}} * {{s|Kompletność junior}} * {{s|Książka}} | opis27 = Indeksowanie | spis27 = * {{s|Kotwica}} * {{s|Indeksuj}} | opis28 = Spis artykułów | spis28 = * {{s|Link wewnętrzny}} * {{s|LinkOgólne}} * {{s|LinkGłówna}} * {{s|LinkWikijunior}} * {{s|LinkWikijunior2}} * {{s|LinkUżytkownik}} * {{s|LinkUżytkownik2}} * {{s|LinkProjekt}} * {{s|LinkProjekt2}} | kategoria = Wikibooks }} 7a892yht5ud3ph81uix97azz6xcst0z Moduł:StronicowyParser/obiekty 828 45007 543731 543690 2026-05-21T13:40:40Z Persino 2851 543731 Scribunto text/plain local p={}; local m={}; p.wypowiedzi={ {"Twierdzenie", nil,nil,"Twierdzenia",2,"twierdzeniami","twierdzeń",}, {"Hipoteza",nil,nil,"Hipotezy", 2,"hipotezami","hipotez",}, {"Lemat", nil,nil,"Lematu",2,"lematami","lematów",}, {"Kryterium", nil,nil,"Kryterium",2,"kryteriami","kryteriów",}, {"Dowód", nil,nil,"Dowodu",2,"dowodami","dowodów",}, {"Postulat", nil,nil,"Postulatu",2,"postulatami","postulatów",}, {"Postulaty", nil,nil,"Postulatów",2,"grupami postulatów","grup postulatów",}, {"Określenie", nil,nil,"Określenia",2,"definicjami","definicji",}, {"Zadanie", nil,nil,"Zadania",2,"zadaniami","zadań",}, {"Praktyka",nil,nil,"Praktyki",2,"ćwiczeniami","ćwiczeń",}, {"Procedura",nil,nil,"Procedury",2,"procedurami","procedur",}, {"Schemat",nil,nil,"Schematu",2,"schematami","schematów",}, }; p.obiekty={"Obiekt",nil,nil,"Obiektu",2,"nienazwanymi obiektami","nienazwanych obiektów",}; p.normalne={ {"Wzór",{"Wzór2","CentrujWzór","CentrujWzór2","MathMLWzór","MathMLWzór2","CentrujMathMLWzór","CentrujMathMLWzór2",},nil,"Wzoru",2,"wzorami","wzorów",}, {"Rysunek",nil,nil,"Rysunku",2,"rysunkami","rysunków",}, {"Patrz",nil,nil,"Patrz",1,"patrzeniem","patrzenia",}, {"ZobaczTeż",nil,nil,"ZobaczTeż",1,"zobaczeniem też","zobaczenia też",}, }; p.napisy_wprowadzenia_tekstu={ {"Śródtytuł",nil,{"LinkŚródtytułTutaj",},"Śródtytułu",1,"nagłówkami","nagłówków",}, }; p.tekst={ {"Śródtekst",nil,nil,"Śródtekstu",2,"tekstami","tekstów",}, }; p.nazwa_szablonu_wprowadzenia_tekstu="Śródtytuł"; m.LinkiSzablonyNieNumerowane=function(tab_szablony_nienumerowane) local function DalszeLinkiWprowadzeniaTekstu(linki_naglowka,t,i) if(type(linki_naglowka)=="table")then for _,wartosc in ipairs(linki_naglowka)do i=i+1; t[i]=wartosc; end; else i=i+1; t[i]=linki_naglowka; end; return t,i; end; local s={}; for _,wartosc in ipairs(tab_szablony_nienumerowane)do s[wartosc[1]]={}; local t=s[wartosc[1]]; local i=1; t[i]="Link"..wartosc[1]; t,i=DalszeLinkiWprowadzeniaTekstu(wartosc[3],t,i); end; return s; end; m.LinkiSzablonyNapisuWprowadzeniaTekstu=function() return m.LinkiSzablonyNieNumerowane(p.napisy_wprowadzenia_tekstu) end; m.LinkiSzablonyTekstu=function() return m.LinkiSzablonyNieNumerowane(p.tekst) end; m.NienumerowaneSzablony=function(tab_szablony_nienumerowane) local s={}; for _,wartosc in ipairs(tab_szablony_nienumerowane)do s[wartosc[1]]=true; end; return s; end; m.NienumerowaneSzablonyNapisuWprowadzeniaTekstu=function() return m.NienumerowaneSzablony(p.napisy_wprowadzenia_tekstu); end; m.NienumerowaneSzablonyTekstu=function() return m.NienumerowaneSzablony(p.tekst); end; p.linki_szablony_wprowadzenia_tekstu=m.LinkiSzablonyNapisuWprowadzeniaTekstu(); p.nienumerowane_z_uchwytami_szablony_wprowadzenia_tekstu=m.NienumerowaneSzablonyNapisuWprowadzeniaTekstu(); p.linki_szablony_tekstu=m.LinkiSzablonyTekstu(); p.nienumerowane_z_uchwytami_szablony_tekstu=m.NienumerowaneSzablonyTekstu(); p.uklad_autonawigacji="Układ autonawigacji"; p.bez_uchwytow_spis_rzeczy_strony={ ["TOC"]=true, ["TOCRamka"]=true, }; p.szablony_z_lokalnym_spisem_rzeczy_strony={ ["TOC limit"]=true, ["Spis treści"]=true, ["TOCright"]=true, ["Spis treści zwinięty"]=true, }; p.szablony_kontenerowe={ ["Sekcja referencyjna"]=true, ["Sr"]=true, ---------------------------------- ["ListaNagłówkówKsiążki"]=true, ["LiniaArtykułuKsiążki"]=true, ---------------------------------- ["PomiędzyNagłówek"]=true, ["LosowyNagłówek"]=true, ["PierwszyNagłówek"]=true, ["OstatniNagłówek"]=true, ["LiczbaNagłówkówSpisu"]=true, ---------------------------------- ["AktualnaKsiążka"]=true, ["NastępnyArtykuł"]=true, ["PoprzedniArtykuł"]=true, ["NazwaAktualnyArtykuł"]=true, ["LinkAktualnaKsiążka"]=true, ["LinkNastępnyArtykuł"]=true, ["LinkPoprzedniArtykuł"]=true, ---------------------------------- ["LinkNastępnySubArtykuł"]=true, ["LinkPoprzedniSubArtykuł"]=true, ---------------------------------- ["PierwszyArtykuł"]=true, ["OstatniArtykuł"]=true, ["PomiędzyArtykuł"]=true, ["LosowyArtykuł"]=true, ["PobierzNazwęArtykułu"]=true, ["PobierzNumerArtykułu"]=true, ["NazwaLinkuArtykułu"]=true, -------------------------------- ["PobierzNazwęNagłówka"]=true, ["PobierzNumerNagłówka"]=true, --------------------------------- ["LiczbaArtykułówKsiążki"]=true, ["PoziomNazwyArtykułu"]=true, --------------------------------- ["SubNazwaNadArtykułu"]=true, ["NazwaNadArtykułu"]=true, ["LinkNazwaNadArtykułu"]=true, ["LinkSubNazwaNadArtykułu"]=true, ----------------------------------- ["Autonawigacja"]=true, }; p.szablony_stronicowe_niekontenerowe={ ["ArtykułSubst"]=true, }; p.szablony_stronicowe_kontenerowe_formatowania_wzorowego={ ["Formuła"]=1; }; ----szablony stronicowego parsera function m.SzablonyStronicowegoParsera() local t={}; t.szablony_kontenerowe={}; local s=t.szablony_kontenerowe; t.szablony_wprowadzenia_tekstu={}; local r=t.szablony_wprowadzenia_tekstu; t.szablony_tekstu={}; local q=t.szablony_tekstu; local function SzablonyUchwytoweNapisuWprowadzeniaTekstu(naglowki,r) for _,szablony_naglowka in ipairs(naglowki) do r[szablony_naglowka[1]]=true; if(szablony_naglowka[2])then if(type(szablony_naglowka[2])=="table")then for _,wartosc in ipairs(szablony_naglowka[2])do r[wartosc]=true; end; else r[szablony_naglowka[2]]=true; end; end; end; end; SzablonyUchwytoweNapisuWprowadzeniaTekstu(p.napisy_wprowadzenia_tekstu,r); SzablonyUchwytoweNapisuWprowadzeniaTekstu(p.tekst,q); local function TabNumer(n,obiekty_szablon,s) if(obiekty_szablon[n])then if(type(obiekty_szablon[n])=="table")then for _,wartosc in ipairs(obiekty_szablon[n])do s[wartosc]=true; end; else s[obiekty_szablon[n]]=true; end; end; end; local function RozpatrywanaTablica(tab_obiekty,s) for _,obiekty_szablon in ipairs(tab_obiekty)do s[obiekty_szablon[1]]=true; s["Link"..obiekty_szablon[1]]=true; TabNumer(2,obiekty_szablon,s); TabNumer(3,obiekty_szablon,s); end; end; RozpatrywanaTablica(p.normalne,s); RozpatrywanaTablica(p.wypowiedzi,s); RozpatrywanaTablica(p.napisy_wprowadzenia_tekstu,s); RozpatrywanaTablica(p.tekst,s); TabNumer(2,p.obiekty,s); TabNumer(3,p.obiekty,s); local function IndeksowaneNaTak(tab_obiekty,s) for indeks,_ in pairs(tab_obiekty)do s[indeks]=true; end; end; IndeksowaneNaTak(p.bez_uchwytow_spis_rzeczy_strony,s); IndeksowaneNaTak(p.szablony_kontenerowe,s); return t; end; p.szablony_stronicowego_parsera=m.SzablonyStronicowegoParsera(); ----koniec szablony pudełka ----Tablica obiektów function m.TablicaObiektowychForm() local s={};local r={}; for _,element_w_tablicy_obiekty in pairs(p.normalne)do s[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.wypowiedzi)do s[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.napisy_wprowadzenia_tekstu)do s[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.tekst)do s[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.normalne)do r[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.wypowiedzi)do r[#s+1]=element_w_tablicy_obiekty;end; p.tablica_mozliwych_obiektow_bez_obiektu_nienazwanego=s; p.tablica_mozliwych_numerowanych_obiektow_bez_obiektu_nienazwanego=r; s[#s+1]=p.obiekty; return s; end; ---- m.ElementyObiektoweNumerowaneINienumerowaneZUchwytami=function() local function Obiekty(s,obiekty) for _,tab_obiektow in ipairs(obiekty)do s[tab_obiektow[1]]={tab_obiektow[1],tab_obiektow[5],}; local tab_szablony=tab_obiektow[2]; if(tab_szablony)then if(type(tab_szablony)=="table")then for _,element in ipairs(tab_szablony)do s[element]={tab_obiektow[1],tab_obiektow[5],}; end; else s[tab_szablony]={tab_obiektow[1],tab_obiektow[5],}; end; end; end; end; local s={};local r={};local q={}; Obiekty(s,p.wypowiedzi); Obiekty(s,p.normalne); Obiekty(r,p.napisy_wprowadzenia_tekstu); Obiekty(q,p.tekst); return {numerowane_obiekty=s,nienumerowane_obiekty_napisu_wprowadzenia_tekstu=r,nienumerowane_obiekty_tekstu=q,}; end; p.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane=m.ElementyObiektoweNumerowaneINienumerowaneZUchwytami(); m.ElementyReferencjiObiektowychNumerowanychZUchwytami=function() local function Obiekty(s,linkobiekty) for _,tab_obiektow in ipairs(linkobiekty)do s["Link"..tab_obiektow[1]]=tab_obiektow[1]; local tab_szablony=tab_obiektow[3]; if(tab_szablony)then if(type(tab_szablony)=="table")then for _,element in ipairs(tab_szablony)do s[element]=tab_obiektow[1]; end; else s[tab_szablony]=tab_obiektow[1]; end; end; end; end; local s={};local r={};local q={}; Obiekty(s,p.wypowiedzi); Obiekty(s,p.normalne); Obiekty(r,p.napisy_wprowadzenia_tekstu); Obiekty(q,p.tekst); return {numerowane_obiekty=s,nienumerowane_obiekty_napisu_wprowadzenia_tekstu=r,nienumerowane_obiekty_tekstu=q,}; end; p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane=m.ElementyReferencjiObiektowychNumerowanychZUchwytami(); m.FormatElementowyObiektowy=function() local s={}; local function Obiekty(s,obiekty) for _,tab_obiektow in ipairs(obiekty)do s[tab_obiektow[1]]=true; end; end; Obiekty(s,p.wypowiedzi); Obiekty(s,p.normalne); return s; end; p.format_elementowy_obiektowy=m.FormatElementowyObiektowy(); m.FormatElementowyReferencjiObiektowych=function() local s={}; local function Obiekty(s,obiekty) for _,tab_obiektow in ipairs(obiekty)do local element=mw.getContentLanguage():lcfirst(tab_obiektow[1]); s[element]=true; end; end; Obiekty(s,p.wypowiedzi); Obiekty(s,p.normalne); return s; end; p.format_elementowy_referencji_obiektowy=m.FormatElementowyReferencjiObiektowych(); ---- ---- p.tablica_obiektowych_form=m.TablicaObiektowychForm(); p.szablony_stron_zbiorczych={ ["KsiążkaSubst"]=true, ["StronaSubst"]=true, }; p.inne_szablony_stron_zbiorczych={ ["Sekcja referencyjna"]=true, ["Sr"]=true, } m.StronyZbiorcze=function() local s={}; local function Ziorcze(tab) for name,_ in pairs(tab)do s[name]=true; end; end; Ziorcze(p.szablony_stron_zbiorczych); Ziorcze(p.inne_szablony_stron_zbiorczych); return s; end; p.strona_zbiorcza=m.StronyZbiorcze(); p.strona_start_inne={ ["StandardowaStronaStart"]=true, ["PodstawowaStronaStart"]=true, ["ProstaStronaStart"]=true, }; p.strona_start={ ["StronaStart"]=true, }; p.strona_start_ze_spisem_rzeczy_strony={ ["UnikatowaStronaStart"]=true, ["UnikalnaStronaStart"]=true, ["SkomplikowanaStronaStart"]=true, }; p.strona_start_analiza_zaawansowana_spis_rzeczy_strony={ ["SkomplikowanaStronaStart"]=true, }; m.SzablonyFormartowaniaTekstu=function() local s={}; local function DodatDoTablicy(tab) for name,_ in pairs(tab)do s[name]=true; local name_koniec,_=mw.ustring.gsub(name,"Start$","Koniec"); s[name_koniec]=true; end; end; DodatDoTablicy(p.strona_start); DodatDoTablicy(p.strona_start_ze_spisem_rzeczy_strony); DodatDoTablicy(p.strona_start_analiza_zaawansowana_spis_rzeczy_strony); DodatDoTablicy(p.strona_start_inne); return s; end; p.szablony_stronicowe_formatowania_tekstu=m.SzablonyFormartowaniaTekstu(); p.tablica_nazw_ramek_lua={ "StronicowyParser", }; ----Koniec tablica obiektów p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu={ ["licencja"]=true, ["inne"]=true, ["bibliografia"]=true, ["zobacz też"]=true, ["linki zewnętrzne"]=true, --[[["dedykacja"]=true,]] }; p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={ ["spistreści"]=true, ["spistresci"]=true, ["spisrzeczy"]=true, }; --[[p.tablica_nazw_wprowadzenia_tekstu_dodatkowych={ ["bibliografia"]=true, ["literatura"]=true, };]] p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={ [1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*", [2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*", }; p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe={ [1]={"[ _\t]*'*[ _\t]*[Ll][Ii][Tt][Ee][Rr][Aa][Tt][Uu][Rr][Aa][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",false,}, [2]={"[ _\t]*'*[ _\t]*[Bb][Ii][Bb][Ll][Ii][Oo][Gg][Rr][Aa][Ff][Ii][Aa][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",true,}, }; p.artykularne_niespisowe={ [1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$", --[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$", }; p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu={ ["Kolumny"]=2, }; p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu={ ["MDL:RozszerzonyLink"]=1, ["Kompletność"]="", ["Kompletność krótka"]="", ["Kompletność junior"]="", ["Książka"]="", }; p.szablony_z_dodatkiem_obiektowym={ ["ISBN"]="ISBN $(1)"; }; p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu={ ["Cytuj"]=true, ["Cytuj stronę"]=true, ["Cytuj pismo"]=true, ["Cytuj odcinek"]=true, ["Cytuj książkę"]=true, ["Cytuj grę komputerową"]=true, }; p.szablony_dozwolone_w_nazwach_linkowych={ ["Korekta"] =2, }; p.szablony_rozwijane_przez_javascript_nazwowe_linkowe={ }; 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, }; p.linki_szablony_elementy_spisu_rzeczy={ ["SpisTreści"]=true, ["Sekcja referencyjna"]=true, ["Sr"]=true, ["Link wewnętrzny"]=true, ["LinkOgólne"]=true, ["Lo"]=true, --[[["LinkGłówna"]=true, ["LinkWikijunior"]=true, ["LinkWikijunior2"]=true, ["LinkProjekt"]=true, ["LinkProjekt2"]=true, ["LinkUżytkownik"]=true, ["LinkUżytkownik2"]=true,]] }; p.kody_szablony_linkowe_przestrzenne={ ["Główna"]={"",}, ["Wikijunior"]={"Wikijunior",}, ["Kategoria"]={"Category",}, ["Plik"]={"File",}, ["Projekt"]={"Project",}, ["Szablon"]={"Template",}, ["Użytkownik"]={"User",}, ["Pomoc"]={"Help",}, ["Moduł"]={"Module",}, ["Komunikat"]={"MediaWiki",}, ["Specjalna"]={"Special",}, ["Wikiprojekt"]={"Wikiproject","w",}, ["Portal"]={"Portal","w",}, ["Extension"]={"Extension","mw",}, }; p.kody_inne_szablony_linkowe_inteligentne={ ["Sekcja referencyjna"]=true, ["Sr"]=true, }; p.kody_szablony_linkowe_projektowe={ ["Pedia"]="w", ["Źródła"]="s", ["Cytaty"]="q", ["News"]="n", ["Słownik"]="wikt", ["Podróże"]="voy", ["Wersytet"]="betawikiversity", ["Species"]="wikispecies", ["Commons"]="commons", ["Dane"]="d", ["MediaWiki"]="mw", ["MetaWiki"]="m", }; p.kody_szablony_linkowe_dialektu={ ["En"]="en", }; p.inne_linki_szablony_elementy_spisu_rzeczy={ ["SpisPozycja"]={true,numer_link="tyt",}, ["SpisZw"]={false,numer=1,link=2,}, }; p.szablony_w_nie_w_tej_samej_linii={ ["SpisPozycja"]=true, ["SpisZw"]=true, ["SpisTreści"]=true, }; p.szablony_kompletowania_stron_woluminu={ ["Kompletność"]=true, ["Kompletność krótka"]=true, ["Kompletność junior"]=true, ["Książka"]=true, }; p.szablony_wprowadzenia_napisu_spisu_rzeczy={ ["Ce"]=1, ["Centruj"]=1, ["Center"]=1, }; p.szablony_dokumentacji={ ["Dokumentacja"]=true, }; p.szablony_wykorzystywane_przez_strony_zbiorcze={ ["Sekcja referencyjna"]=true, ["Sr"]=true, }; p.szablony_licencji={ ["Licencja"]=true, }; p.szablony_ozdobne_stron_woluminu={ ["MDL:RozszerzonyLink"]=true, }; p.szablony_bez_generowania_napisowego={ ["Status"]=true, }; p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego={ ["Rozdział"]=true, ["Podrozdział"]=true, ["MapaObrazu"]=true, }; p.strony_main_page_projektu={ ["Wikijunior:Strona główna"]=true, ["Wikibooks:Strona główna"]=true, ["Strona główna"]=true, ["Main Page"]=true, } p.szablony_nie_typowo_linkowe={ ["Plik"]=true, ["Kategoria"]=true, ["Kategorie"]=true, ["Wolumin"]=true, }; p.szablony_przypisowe={ ["Przypisy"]=true, ["Uwagi"]=true, ["Przypisy-lista"]=true, }; p.napisy_wprowadzenia_tekstu_przypisowych={ ["Przypisy"]=true, ["Uwagi"]=true, ["Bibliografia"]=true, ["Licencja"]=true, }; p.magiczne_derektywy={ ["TOC"]=true, ["NOTOC"]=true, ["NOEDITSECTION"]=true, } 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, }; p.szablony_indeksowania={ ["Kotwica"] =true, ["Indeksuj"]=true, }; p.nazwy_przestrzeni_nazw_przekierowaniowe_linkowe_inteligentne={ ["g"]="Główna", ["c"]="Specjalna", ["k"]="Kategoria", ["l"]="Plik", ["m"]="Komunukat", ["d"]="Moduł", ["p"]="Pomoc", ["r"]="Projekt", ["s"]="Szablon", ["j"]="Wikijunior", ["ż"]="Użytkownik", ["e"]="Extension", ["x"]="Property", ["w"]="Wikiprojekt", ["t"]="Portal", }; p.nazwy_projektowe_serwisy_linkowe_inteligentne={ ["p"]="Pedia", ["l"]="EnPedia", ["s"]="Słownik", ["t"]="Cytaty", ["ź"]="Źródła", ["d"]="Podróże", ["g"]="Species", ["z"]="News", ["r"]="Wersytet", ["w"]="Wikia", ["c"]="Commons", ["n"]="Dane", ["k"]="MediaWiki", ["m"]="MetaWiki", ["b"]="En", }; p.przekierowania_szablonowe_linkowe_inteligentne_inne={ ["Lz"]="LinkURL", ["Lb"]="LinkWB", ["Sr"]="Sekcja referencyjna", }; p.nazwy_szablonowe_kolidacja={ ["Ltr"]=true, }; p.litery_przestrzeni_kolidacja={ ["ř"]="r", }; p.znaczniki_wprowadzenia_tekstu={ ["h1"]=1, ["h2"]=2, ["h3"]=3, ["h4"]=4, ["h5"]=5, ["h6"]=6, }; p.szablony_sztucznego_wprowadzenia_tekstu={ ["HNumer"]=1, }; p.szablony_spisu_rzeczy_artykularnego_wprowadzenia_tekstu={ ["SpisTreści"]={{"artykuł",1,},{"książka",2,},{"nazwa",3,},{"dodatek",4,},{"poziom",},}; }; return p; mfv1852paszgv1ict8ukzd13uac7rjy 543734 543731 2026-05-21T14:16:53Z Persino 2851 543734 Scribunto text/plain local p={}; local m={}; p.wypowiedzi={ {"Twierdzenie", nil,nil,"Twierdzenia",2,"twierdzeniami","twierdzeń",}, {"Hipoteza",nil,nil,"Hipotezy", 2,"hipotezami","hipotez",}, {"Lemat", nil,nil,"Lematu",2,"lematami","lematów",}, {"Kryterium", nil,nil,"Kryterium",2,"kryteriami","kryteriów",}, {"Dowód", nil,nil,"Dowodu",2,"dowodami","dowodów",}, {"Postulat", nil,nil,"Postulatu",2,"postulatami","postulatów",}, {"Postulaty", nil,nil,"Postulatów",2,"grupami postulatów","grup postulatów",}, {"Określenie", nil,nil,"Określenia",2,"definicjami","definicji",}, {"Zadanie", nil,nil,"Zadania",2,"zadaniami","zadań",}, {"Praktyka",nil,nil,"Praktyki",2,"ćwiczeniami","ćwiczeń",}, {"Procedura",nil,nil,"Procedury",2,"procedurami","procedur",}, {"Schemat",nil,nil,"Schematu",2,"schematami","schematów",}, }; p.obiekty={"Obiekt",nil,nil,"Obiektu",2,"nienazwanymi obiektami","nienazwanych obiektów",}; p.normalne={ {"Wzór",{"Wzór2","CentrujWzór","CentrujWzór2","MathMLWzór","MathMLWzór2","CentrujMathMLWzór","CentrujMathMLWzór2",},nil,"Wzoru",2,"wzorami","wzorów",}, {"Rysunek",nil,nil,"Rysunku",2,"rysunkami","rysunków",}, {"Patrz",nil,nil,"Patrz",1,"patrzeniem","patrzenia",}, {"ZobaczTeż",nil,nil,"ZobaczTeż",1,"zobaczeniem też","zobaczenia też",}, }; p.napisy_wprowadzenia_tekstu={ {"Śródtytuł",nil,{"LinkŚródtytułTutaj",},"Śródtytułu",1,"nagłówkami","nagłówków",}, }; p.tekst={ {"Śródtekst",nil,nil,"Śródtekstu",2,"tekstami","tekstów",}, }; p.nazwa_szablonu_wprowadzenia_tekstu="Śródtytuł"; m.LinkiSzablonyNieNumerowane=function(tab_szablony_nienumerowane,czy_link) local function DalszeLinkiWprowadzeniaTekstu(linki_naglowka,t,i) if(type(linki_naglowka)=="table")then for _,wartosc in ipairs(linki_naglowka)do i=i+1; t[i]=wartosc; end; else i=i+1; t[i]=linki_naglowka; end; return t,i; end; local s={}; for _,wartosc in ipairs(tab_szablony_nienumerowane)do s[wartosc[1]]={}; local t=s[wartosc[1]]; local i=1; t[i]=(czy_link and "Link" or "Pobierz")..wartosc[1]; t,i=DalszeLinkiWprowadzeniaTekstu(wartosc[3],t,i); end; return s; end; m.LinkiSzablonyNapisuWprowadzeniaTekstu=function() return m.LinkiSzablonyNieNumerowane(p.napisy_wprowadzenia_tekstu,true); end; m.LinkiSzablonyTekstu=function() return m.LinkiSzablonyNieNumerowane(p.tekst,false); end; m.NienumerowaneSzablony=function(tab_szablony_nienumerowane) local s={}; for _,wartosc in ipairs(tab_szablony_nienumerowane)do s[wartosc[1]]=true; end; return s; end; m.NienumerowaneSzablonyNapisuWprowadzeniaTekstu=function() return m.NienumerowaneSzablony(p.napisy_wprowadzenia_tekstu); end; m.NienumerowaneSzablonyTekstu=function() return m.NienumerowaneSzablony(p.tekst); end; p.linki_szablony_wprowadzenia_tekstu=m.LinkiSzablonyNapisuWprowadzeniaTekstu(); p.nienumerowane_z_uchwytami_szablony_wprowadzenia_tekstu=m.NienumerowaneSzablonyNapisuWprowadzeniaTekstu(); p.linki_szablony_tekstu=m.LinkiSzablonyTekstu(); p.nienumerowane_z_uchwytami_szablony_tekstu=m.NienumerowaneSzablonyTekstu(); p.uklad_autonawigacji="Układ autonawigacji"; p.bez_uchwytow_spis_rzeczy_strony={ ["TOC"]=true, ["TOCRamka"]=true, }; p.szablony_z_lokalnym_spisem_rzeczy_strony={ ["TOC limit"]=true, ["Spis treści"]=true, ["TOCright"]=true, ["Spis treści zwinięty"]=true, }; p.szablony_kontenerowe={ ["Sekcja referencyjna"]=true, ["Sr"]=true, ---------------------------------- ["ListaNagłówkówKsiążki"]=true, ["LiniaArtykułuKsiążki"]=true, ---------------------------------- ["PomiędzyNagłówek"]=true, ["LosowyNagłówek"]=true, ["PierwszyNagłówek"]=true, ["OstatniNagłówek"]=true, ["LiczbaNagłówkówSpisu"]=true, ---------------------------------- ["AktualnaKsiążka"]=true, ["NastępnyArtykuł"]=true, ["PoprzedniArtykuł"]=true, ["NazwaAktualnyArtykuł"]=true, ["LinkAktualnaKsiążka"]=true, ["LinkNastępnyArtykuł"]=true, ["LinkPoprzedniArtykuł"]=true, ---------------------------------- ["LinkNastępnySubArtykuł"]=true, ["LinkPoprzedniSubArtykuł"]=true, ---------------------------------- ["PierwszyArtykuł"]=true, ["OstatniArtykuł"]=true, ["PomiędzyArtykuł"]=true, ["LosowyArtykuł"]=true, ["PobierzNazwęArtykułu"]=true, ["PobierzNumerArtykułu"]=true, ["NazwaLinkuArtykułu"]=true, -------------------------------- ["PobierzNazwęNagłówka"]=true, ["PobierzNumerNagłówka"]=true, --------------------------------- ["LiczbaArtykułówKsiążki"]=true, ["PoziomNazwyArtykułu"]=true, --------------------------------- ["SubNazwaNadArtykułu"]=true, ["NazwaNadArtykułu"]=true, ["LinkNazwaNadArtykułu"]=true, ["LinkSubNazwaNadArtykułu"]=true, ----------------------------------- ["Autonawigacja"]=true, }; p.szablony_stronicowe_niekontenerowe={ ["ArtykułSubst"]=true, }; p.szablony_stronicowe_kontenerowe_formatowania_wzorowego={ ["Formuła"]=1; }; ----szablony stronicowego parsera function m.SzablonyStronicowegoParsera() local t={}; t.szablony_kontenerowe={}; local s=t.szablony_kontenerowe; t.szablony_wprowadzenia_tekstu={}; local r=t.szablony_wprowadzenia_tekstu; t.szablony_tekstu={}; local q=t.szablony_tekstu; local function SzablonyUchwytoweNapisuWprowadzeniaTekstu(naglowki,r) for _,szablony_naglowka in ipairs(naglowki) do r[szablony_naglowka[1]]=true; if(szablony_naglowka[2])then if(type(szablony_naglowka[2])=="table")then for _,wartosc in ipairs(szablony_naglowka[2])do r[wartosc]=true; end; else r[szablony_naglowka[2]]=true; end; end; end; end; SzablonyUchwytoweNapisuWprowadzeniaTekstu(p.napisy_wprowadzenia_tekstu,r); SzablonyUchwytoweNapisuWprowadzeniaTekstu(p.tekst,q); local function TabNumer(n,obiekty_szablon,s) if(obiekty_szablon[n])then if(type(obiekty_szablon[n])=="table")then for _,wartosc in ipairs(obiekty_szablon[n])do s[wartosc]=true; end; else s[obiekty_szablon[n]]=true; end; end; end; local function RozpatrywanaTablica(tab_obiekty,s,czy_link) for _,obiekty_szablon in ipairs(tab_obiekty)do s[obiekty_szablon[1]]=true; s[(czy_link and "Link" or "Pobierz")..obiekty_szablon[1]]=true; TabNumer(2,obiekty_szablon,s); TabNumer(3,obiekty_szablon,s); end; end; RozpatrywanaTablica(p.normalne,s,true); RozpatrywanaTablica(p.wypowiedzi,s,true); RozpatrywanaTablica(p.napisy_wprowadzenia_tekstu,s,true); RozpatrywanaTablica(p.tekst,s,false); TabNumer(2,p.obiekty,s); TabNumer(3,p.obiekty,s); local function IndeksowaneNaTak(tab_obiekty,s) for indeks,_ in pairs(tab_obiekty)do s[indeks]=true; end; end; IndeksowaneNaTak(p.bez_uchwytow_spis_rzeczy_strony,s); IndeksowaneNaTak(p.szablony_kontenerowe,s); return t; end; p.szablony_stronicowego_parsera=m.SzablonyStronicowegoParsera(); ----koniec szablony pudełka ----Tablica obiektów function m.TablicaObiektowychForm() local s={};local r={}; for _,element_w_tablicy_obiekty in pairs(p.normalne)do s[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.wypowiedzi)do s[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.napisy_wprowadzenia_tekstu)do s[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.tekst)do s[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.normalne)do r[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.wypowiedzi)do r[#s+1]=element_w_tablicy_obiekty;end; p.tablica_mozliwych_obiektow_bez_obiektu_nienazwanego=s; p.tablica_mozliwych_numerowanych_obiektow_bez_obiektu_nienazwanego=r; s[#s+1]=p.obiekty; return s; end; ---- m.ElementyObiektoweNumerowaneINienumerowaneZUchwytami=function() local function Obiekty(s,obiekty) for _,tab_obiektow in ipairs(obiekty)do s[tab_obiektow[1]]={tab_obiektow[1],tab_obiektow[5],}; local tab_szablony=tab_obiektow[2]; if(tab_szablony)then if(type(tab_szablony)=="table")then for _,element in ipairs(tab_szablony)do s[element]={tab_obiektow[1],tab_obiektow[5],}; end; else s[tab_szablony]={tab_obiektow[1],tab_obiektow[5],}; end; end; end; end; local s={};local r={};local q={}; Obiekty(s,p.wypowiedzi); Obiekty(s,p.normalne); Obiekty(r,p.napisy_wprowadzenia_tekstu); Obiekty(q,p.tekst); return {numerowane_obiekty=s,nienumerowane_obiekty_napisu_wprowadzenia_tekstu=r,nienumerowane_obiekty_tekstu=q,}; end; p.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane=m.ElementyObiektoweNumerowaneINienumerowaneZUchwytami(); m.ElementyReferencjiObiektowychNumerowanychZUchwytami=function() local function Obiekty(s,linkobiekty,czy_link) for _,tab_obiektow in ipairs(linkobiekty)do s[(czy_link and "Link" or "Pobierz")..tab_obiektow[1]]=tab_obiektow[1]; local tab_szablony=tab_obiektow[3]; if(tab_szablony)then if(type(tab_szablony)=="table")then for _,element in ipairs(tab_szablony)do s[element]=tab_obiektow[1]; end; else s[tab_szablony]=tab_obiektow[1]; end; end; end; end; local s={};local r={};local q={}; Obiekty(s,p.wypowiedzi,true); Obiekty(s,p.normalne,true); Obiekty(r,p.napisy_wprowadzenia_tekstu,true); Obiekty(q,p.tekst,false); return {numerowane_obiekty=s,nienumerowane_obiekty_napisu_wprowadzenia_tekstu=r,nienumerowane_obiekty_tekstu=q,}; end; p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane=m.ElementyReferencjiObiektowychNumerowanychZUchwytami(); m.FormatElementowyObiektowy=function() local s={}; local function Obiekty(s,obiekty) for _,tab_obiektow in ipairs(obiekty)do s[tab_obiektow[1]]=true; end; end; Obiekty(s,p.wypowiedzi); Obiekty(s,p.normalne); return s; end; p.format_elementowy_obiektowy=m.FormatElementowyObiektowy(); m.FormatElementowyReferencjiObiektowych=function() local s={}; local function Obiekty(s,obiekty) for _,tab_obiektow in ipairs(obiekty)do local element=mw.getContentLanguage():lcfirst(tab_obiektow[1]); s[element]=true; end; end; Obiekty(s,p.wypowiedzi); Obiekty(s,p.normalne); return s; end; p.format_elementowy_referencji_obiektowy=m.FormatElementowyReferencjiObiektowych(); ---- ---- p.tablica_obiektowych_form=m.TablicaObiektowychForm(); p.szablony_stron_zbiorczych={ ["KsiążkaSubst"]=true, ["StronaSubst"]=true, }; p.inne_szablony_stron_zbiorczych={ ["Sekcja referencyjna"]=true, ["Sr"]=true, } m.StronyZbiorcze=function() local s={}; local function Ziorcze(tab) for name,_ in pairs(tab)do s[name]=true; end; end; Ziorcze(p.szablony_stron_zbiorczych); Ziorcze(p.inne_szablony_stron_zbiorczych); return s; end; p.strona_zbiorcza=m.StronyZbiorcze(); p.strona_start_inne={ ["StandardowaStronaStart"]=true, ["PodstawowaStronaStart"]=true, ["ProstaStronaStart"]=true, }; p.strona_start={ ["StronaStart"]=true, }; p.strona_start_ze_spisem_rzeczy_strony={ ["UnikatowaStronaStart"]=true, ["UnikalnaStronaStart"]=true, ["SkomplikowanaStronaStart"]=true, }; p.strona_start_analiza_zaawansowana_spis_rzeczy_strony={ ["SkomplikowanaStronaStart"]=true, }; m.SzablonyFormartowaniaTekstu=function() local s={}; local function DodatDoTablicy(tab) for name,_ in pairs(tab)do s[name]=true; local name_koniec,_=mw.ustring.gsub(name,"Start$","Koniec"); s[name_koniec]=true; end; end; DodatDoTablicy(p.strona_start); DodatDoTablicy(p.strona_start_ze_spisem_rzeczy_strony); DodatDoTablicy(p.strona_start_analiza_zaawansowana_spis_rzeczy_strony); DodatDoTablicy(p.strona_start_inne); return s; end; p.szablony_stronicowe_formatowania_tekstu=m.SzablonyFormartowaniaTekstu(); p.tablica_nazw_ramek_lua={ "StronicowyParser", }; ----Koniec tablica obiektów p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu={ ["licencja"]=true, ["inne"]=true, ["bibliografia"]=true, ["zobacz też"]=true, ["linki zewnętrzne"]=true, --[[["dedykacja"]=true,]] }; p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={ ["spistreści"]=true, ["spistresci"]=true, ["spisrzeczy"]=true, }; --[[p.tablica_nazw_wprowadzenia_tekstu_dodatkowych={ ["bibliografia"]=true, ["literatura"]=true, };]] p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={ [1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*", [2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*", }; p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe={ [1]={"[ _\t]*'*[ _\t]*[Ll][Ii][Tt][Ee][Rr][Aa][Tt][Uu][Rr][Aa][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",false,}, [2]={"[ _\t]*'*[ _\t]*[Bb][Ii][Bb][Ll][Ii][Oo][Gg][Rr][Aa][Ff][Ii][Aa][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",true,}, }; p.artykularne_niespisowe={ [1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$", --[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$", }; p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu={ ["Kolumny"]=2, }; p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu={ ["MDL:RozszerzonyLink"]=1, ["Kompletność"]="", ["Kompletność krótka"]="", ["Kompletność junior"]="", ["Książka"]="", }; p.szablony_z_dodatkiem_obiektowym={ ["ISBN"]="ISBN $(1)"; }; p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu={ ["Cytuj"]=true, ["Cytuj stronę"]=true, ["Cytuj pismo"]=true, ["Cytuj odcinek"]=true, ["Cytuj książkę"]=true, ["Cytuj grę komputerową"]=true, }; p.szablony_dozwolone_w_nazwach_linkowych={ ["Korekta"] =2, }; p.szablony_rozwijane_przez_javascript_nazwowe_linkowe={ }; 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, }; p.linki_szablony_elementy_spisu_rzeczy={ ["SpisTreści"]=true, ["Sekcja referencyjna"]=true, ["Sr"]=true, ["Link wewnętrzny"]=true, ["LinkOgólne"]=true, ["Lo"]=true, --[[["LinkGłówna"]=true, ["LinkWikijunior"]=true, ["LinkWikijunior2"]=true, ["LinkProjekt"]=true, ["LinkProjekt2"]=true, ["LinkUżytkownik"]=true, ["LinkUżytkownik2"]=true,]] }; p.kody_szablony_linkowe_przestrzenne={ ["Główna"]={"",}, ["Wikijunior"]={"Wikijunior",}, ["Kategoria"]={"Category",}, ["Plik"]={"File",}, ["Projekt"]={"Project",}, ["Szablon"]={"Template",}, ["Użytkownik"]={"User",}, ["Pomoc"]={"Help",}, ["Moduł"]={"Module",}, ["Komunikat"]={"MediaWiki",}, ["Specjalna"]={"Special",}, ["Wikiprojekt"]={"Wikiproject","w",}, ["Portal"]={"Portal","w",}, ["Extension"]={"Extension","mw",}, }; p.kody_inne_szablony_linkowe_inteligentne={ ["Sekcja referencyjna"]=true, ["Sr"]=true, }; p.kody_szablony_linkowe_projektowe={ ["Pedia"]="w", ["Źródła"]="s", ["Cytaty"]="q", ["News"]="n", ["Słownik"]="wikt", ["Podróże"]="voy", ["Wersytet"]="betawikiversity", ["Species"]="wikispecies", ["Commons"]="commons", ["Dane"]="d", ["MediaWiki"]="mw", ["MetaWiki"]="m", }; p.kody_szablony_linkowe_dialektu={ ["En"]="en", }; p.inne_linki_szablony_elementy_spisu_rzeczy={ ["SpisPozycja"]={true,numer_link="tyt",}, ["SpisZw"]={false,numer=1,link=2,}, }; p.szablony_w_nie_w_tej_samej_linii={ ["SpisPozycja"]=true, ["SpisZw"]=true, ["SpisTreści"]=true, }; p.szablony_kompletowania_stron_woluminu={ ["Kompletność"]=true, ["Kompletność krótka"]=true, ["Kompletność junior"]=true, ["Książka"]=true, }; p.szablony_wprowadzenia_napisu_spisu_rzeczy={ ["Ce"]=1, ["Centruj"]=1, ["Center"]=1, }; p.szablony_dokumentacji={ ["Dokumentacja"]=true, }; p.szablony_wykorzystywane_przez_strony_zbiorcze={ ["Sekcja referencyjna"]=true, ["Sr"]=true, }; p.szablony_licencji={ ["Licencja"]=true, }; p.szablony_ozdobne_stron_woluminu={ ["MDL:RozszerzonyLink"]=true, }; p.szablony_bez_generowania_napisowego={ ["Status"]=true, }; p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego={ ["Rozdział"]=true, ["Podrozdział"]=true, ["MapaObrazu"]=true, }; p.strony_main_page_projektu={ ["Wikijunior:Strona główna"]=true, ["Wikibooks:Strona główna"]=true, ["Strona główna"]=true, ["Main Page"]=true, } p.szablony_nie_typowo_linkowe={ ["Plik"]=true, ["Kategoria"]=true, ["Kategorie"]=true, ["Wolumin"]=true, }; p.szablony_przypisowe={ ["Przypisy"]=true, ["Uwagi"]=true, ["Przypisy-lista"]=true, }; p.napisy_wprowadzenia_tekstu_przypisowych={ ["Przypisy"]=true, ["Uwagi"]=true, ["Bibliografia"]=true, ["Licencja"]=true, }; p.magiczne_derektywy={ ["TOC"]=true, ["NOTOC"]=true, ["NOEDITSECTION"]=true, } 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, }; p.szablony_indeksowania={ ["Kotwica"] =true, ["Indeksuj"]=true, }; p.nazwy_przestrzeni_nazw_przekierowaniowe_linkowe_inteligentne={ ["g"]="Główna", ["c"]="Specjalna", ["k"]="Kategoria", ["l"]="Plik", ["m"]="Komunukat", ["d"]="Moduł", ["p"]="Pomoc", ["r"]="Projekt", ["s"]="Szablon", ["j"]="Wikijunior", ["ż"]="Użytkownik", ["e"]="Extension", ["x"]="Property", ["w"]="Wikiprojekt", ["t"]="Portal", }; p.nazwy_projektowe_serwisy_linkowe_inteligentne={ ["p"]="Pedia", ["l"]="EnPedia", ["s"]="Słownik", ["t"]="Cytaty", ["ź"]="Źródła", ["d"]="Podróże", ["g"]="Species", ["z"]="News", ["r"]="Wersytet", ["w"]="Wikia", ["c"]="Commons", ["n"]="Dane", ["k"]="MediaWiki", ["m"]="MetaWiki", ["b"]="En", }; p.przekierowania_szablonowe_linkowe_inteligentne_inne={ ["Lz"]="LinkURL", ["Lb"]="LinkWB", ["Sr"]="Sekcja referencyjna", }; p.nazwy_szablonowe_kolidacja={ ["Ltr"]=true, }; p.litery_przestrzeni_kolidacja={ ["ř"]="r", }; p.znaczniki_wprowadzenia_tekstu={ ["h1"]=1, ["h2"]=2, ["h3"]=3, ["h4"]=4, ["h5"]=5, ["h6"]=6, }; p.szablony_sztucznego_wprowadzenia_tekstu={ ["HNumer"]=1, }; p.szablony_spisu_rzeczy_artykularnego_wprowadzenia_tekstu={ ["SpisTreści"]={{"artykuł",1,},{"książka",2,},{"nazwa",3,},{"dodatek",4,},{"poziom",},}; }; return p; b9qp9qxoaesc3jo5wsqthtu4i7e3bxs 543818 543734 2026-05-22T05:20:49Z Persino 2851 543818 Scribunto text/plain local p={}; local m={}; p.wypowiedzi={ {"Twierdzenie", nil,nil,"Twierdzenia",2,"twierdzeniami","twierdzeń",}, {"Hipoteza",nil,nil,"Hipotezy", 2,"hipotezami","hipotez",}, {"Lemat", nil,nil,"Lematu",2,"lematami","lematów",}, {"Kryterium", nil,nil,"Kryterium",2,"kryteriami","kryteriów",}, {"Dowód", nil,nil,"Dowodu",2,"dowodami","dowodów",}, {"Postulat", nil,nil,"Postulatu",2,"postulatami","postulatów",}, {"Postulaty", nil,nil,"Postulatów",2,"grupami postulatów","grup postulatów",}, {"Określenie", nil,nil,"Określenia",2,"definicjami","definicji",}, {"Zadanie", nil,nil,"Zadania",2,"zadaniami","zadań",}, {"Praktyka",nil,nil,"Praktyki",2,"ćwiczeniami","ćwiczeń",}, {"Procedura",nil,nil,"Procedury",2,"procedurami","procedur",}, {"Schemat",nil,nil,"Schematu",2,"schematami","schematów",}, }; p.obiekty={"Obiekt",nil,nil,"Obiektu",2,"nienazwanymi obiektami","nienazwanych obiektów",}; p.normalne={ {"Wzór",{"Wzór2","CentrujWzór","CentrujWzór2","MathMLWzór","MathMLWzór2","CentrujMathMLWzór","CentrujMathMLWzór2",},nil,"Wzoru",2,"wzorami","wzorów",}, {"Rysunek",nil,nil,"Rysunku",2,"rysunkami","rysunków",}, {"Patrz",nil,nil,"Patrz",1,"patrzeniem","patrzenia",}, {"ZobaczTeż",nil,nil,"ZobaczTeż",1,"zobaczeniem też","zobaczenia też",}, }; p.napisy_wprowadzenia_tekstu={ {"Śródtytuł",nil,{"LinkŚródtytułTutaj",},"Śródtytułu",1,"nagłówkami","nagłówków",}, }; p.tekst={ {"Śródtekst",nil,nil,"Śródtekstu",2,"tekstami","tekstów",}, }; p.nazwa_szablonu_wprowadzenia_tekstu="Śródtytuł"; m.LinkiSzablonyNieNumerowane=function(tab_szablony_nienumerowane,czy_link) local function DalszeLinkiWprowadzeniaTekstu(linki_naglowka,t,i) if(type(linki_naglowka)=="table")then for _,wartosc in ipairs(linki_naglowka)do i=i+1; t[i]=wartosc; end; else i=i+1; t[i]=linki_naglowka; end; return t,i; end; local s={}; for _,wartosc in ipairs(tab_szablony_nienumerowane)do s[wartosc[1]]={}; local t=s[wartosc[1]]; local i=1; t[i]=(czy_link and "Link" or "Pobierz")..wartosc[1]; t,i=DalszeLinkiWprowadzeniaTekstu(wartosc[3],t,i); end; return s; end; m.LinkiSzablonyNapisuWprowadzeniaTekstu=function() return m.LinkiSzablonyNieNumerowane(p.napisy_wprowadzenia_tekstu,true); end; m.LinkiSzablonyTekstu=function() return m.LinkiSzablonyNieNumerowane(p.tekst,false); end; m.NienumerowaneSzablony=function(tab_szablony_nienumerowane) local s={}; for _,wartosc in ipairs(tab_szablony_nienumerowane)do s[wartosc[1]]=true; end; return s; end; m.NienumerowaneSzablonyNapisuWprowadzeniaTekstu=function() return m.NienumerowaneSzablony(p.napisy_wprowadzenia_tekstu); end; m.NienumerowaneSzablonyTekstu=function() return m.NienumerowaneSzablony(p.tekst); end; p.linki_szablony_wprowadzenia_tekstu=m.LinkiSzablonyNapisuWprowadzeniaTekstu(); p.nienumerowane_z_uchwytami_szablony_wprowadzenia_tekstu=m.NienumerowaneSzablonyNapisuWprowadzeniaTekstu(); p.linki_szablony_tekstu=m.LinkiSzablonyTekstu(); p.nienumerowane_z_uchwytami_szablony_tekstu=m.NienumerowaneSzablonyTekstu(); p.uklad_autonawigacji="Układ autonawigacji"; p.bez_uchwytow_spis_rzeczy_strony={ ["TOC"]=true, ["TOCRamka"]=true, }; p.szablony_z_lokalnym_spisem_rzeczy_strony={ ["TOC limit"]=true, ["Spis treści"]=true, ["TOCright"]=true, ["Spis treści zwinięty"]=true, }; p.szablony_kontenerowe={ ["Sekcja referencyjna"]=true, ["Sr"]=true, ---------------------------------- ["ListaNagłówkówKsiążki"]=true, ["LiniaArtykułuKsiążki"]=true, ---------------------------------- ["PomiędzyNagłówek"]=true, ["LosowyNagłówek"]=true, ["PierwszyNagłówek"]=true, ["OstatniNagłówek"]=true, ["LiczbaNagłówkówSpisu"]=true, ---------------------------------- ["AktualnaKsiążka"]=true, ["NastępnyArtykuł"]=true, ["PoprzedniArtykuł"]=true, ["NazwaAktualnyArtykuł"]=true, ["LinkAktualnaKsiążka"]=true, ["LinkNastępnyArtykuł"]=true, ["LinkPoprzedniArtykuł"]=true, ---------------------------------- ["LinkNastępnySubArtykuł"]=true, ["LinkPoprzedniSubArtykuł"]=true, ---------------------------------- ["PierwszyArtykuł"]=true, ["OstatniArtykuł"]=true, ["PomiędzyArtykuł"]=true, ["LosowyArtykuł"]=true, ["PobierzNazwęArtykułu"]=true, ["PobierzNumerArtykułu"]=true, ["NazwaLinkuArtykułu"]=true, -------------------------------- ["PobierzNazwęNagłówka"]=true, ["PobierzNumerNagłówka"]=true, --------------------------------- ["LiczbaArtykułówKsiążki"]=true, ["PoziomNazwyArtykułu"]=true, --------------------------------- ["SubNazwaNadArtykułu"]=true, ["NazwaNadArtykułu"]=true, ["LinkNazwaNadArtykułu"]=true, ["LinkSubNazwaNadArtykułu"]=true, ----------------------------------- ["Autonawigacja"]=true, }; p.szablony_stronicowe_niekontenerowe={ ["ArtykułSubst"]=true, }; p.szablony_stronicowe_kontenerowe_formatowania_wzorowego={ ["Formuła"]=1; }; ----szablony stronicowego parsera function m.SzablonyStronicowegoParsera() local t={}; t.szablony_kontenerowe={}; local s=t.szablony_kontenerowe; t.szablony_wprowadzenia_tekstu={}; local r=t.szablony_wprowadzenia_tekstu; t.szablony_tekstu={}; local q=t.szablony_tekstu; local function SzablonyUchwytoweNapisuWprowadzeniaTekstu(naglowki,r) for _,szablony_naglowka in ipairs(naglowki) do r[szablony_naglowka[1]]=true; if(szablony_naglowka[2])then if(type(szablony_naglowka[2])=="table")then for _,wartosc in ipairs(szablony_naglowka[2])do r[wartosc]=true; end; else r[szablony_naglowka[2]]=true; end; end; end; end; SzablonyUchwytoweNapisuWprowadzeniaTekstu(p.napisy_wprowadzenia_tekstu,r); SzablonyUchwytoweNapisuWprowadzeniaTekstu(p.tekst,q); local function TabNumer(n,obiekty_szablon,s) if(obiekty_szablon[n])then if(type(obiekty_szablon[n])=="table")then for _,wartosc in ipairs(obiekty_szablon[n])do s[wartosc]=true; end; else s[obiekty_szablon[n]]=true; end; end; end; local function RozpatrywanaTablica(tab_obiekty,s,czy_link) for _,obiekty_szablon in ipairs(tab_obiekty)do s[obiekty_szablon[1]]=true; s[(czy_link and "Link" or "Pobierz")..obiekty_szablon[1]]=true; TabNumer(2,obiekty_szablon,s); TabNumer(3,obiekty_szablon,s); end; end; RozpatrywanaTablica(p.normalne,s,true); RozpatrywanaTablica(p.wypowiedzi,s,true); RozpatrywanaTablica(p.napisy_wprowadzenia_tekstu,s,true); RozpatrywanaTablica(p.tekst,s,false); TabNumer(2,p.obiekty,s); TabNumer(3,p.obiekty,s); local function IndeksowaneNaTak(tab_obiekty,s) for indeks,_ in pairs(tab_obiekty)do s[indeks]=true; end; end; IndeksowaneNaTak(p.bez_uchwytow_spis_rzeczy_strony,s); IndeksowaneNaTak(p.szablony_kontenerowe,s); return t; end; p.szablony_stronicowego_parsera=m.SzablonyStronicowegoParsera(); ----koniec szablony pudełka ----Tablica obiektów function m.TablicaObiektowychForm() local s={};local r={}; for _,element_w_tablicy_obiekty in pairs(p.normalne)do s[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.wypowiedzi)do s[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.napisy_wprowadzenia_tekstu)do s[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.tekst)do s[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.normalne)do r[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.wypowiedzi)do r[#s+1]=element_w_tablicy_obiekty;end; p.tablica_mozliwych_obiektow_bez_obiektu_nienazwanego=s; p.tablica_mozliwych_numerowanych_obiektow_bez_obiektu_nienazwanego=r; s[#s+1]=p.obiekty; return s; end; ---- m.ElementyObiektoweNumerowaneINienumerowaneZUchwytami=function() local function Obiekty(s,obiekty) for _,tab_obiektow in ipairs(obiekty)do s[tab_obiektow[1]]={tab_obiektow[1],tab_obiektow[5],}; local tab_szablony=tab_obiektow[2]; if(tab_szablony)then if(type(tab_szablony)=="table")then for _,element in ipairs(tab_szablony)do s[element]={tab_obiektow[1],tab_obiektow[5],}; end; else s[tab_szablony]={tab_obiektow[1],tab_obiektow[5],}; end; end; end; end; local s={};local r={};local q={}; Obiekty(s,p.wypowiedzi); Obiekty(s,p.normalne); Obiekty(r,p.napisy_wprowadzenia_tekstu); Obiekty(q,p.tekst); return {numerowane_obiekty=s,nienumerowane_obiekty_napisu_wprowadzenia_tekstu=r,nienumerowane_obiekty_tekstu=q,}; end; p.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane=m.ElementyObiektoweNumerowaneINienumerowaneZUchwytami(); m.ElementyReferencjiObiektowychNumerowanychZUchwytami=function() local function Obiekty(s,linkobiekty,czy_link) for _,tab_obiektow in ipairs(linkobiekty)do s[(czy_link and "Link" or "Pobierz")..tab_obiektow[1]]=tab_obiektow[1]; local tab_szablony=tab_obiektow[3]; if(tab_szablony)then if(type(tab_szablony)=="table")then for _,element in ipairs(tab_szablony)do s[element]=tab_obiektow[1]; end; else s[tab_szablony]=tab_obiektow[1]; end; end; end; end; local s={};local r={};local q={}; Obiekty(s,p.wypowiedzi,true); Obiekty(s,p.normalne,true); Obiekty(r,p.napisy_wprowadzenia_tekstu,true); Obiekty(q,p.tekst,false); return {numerowane_obiekty=s,nienumerowane_obiekty_napisu_wprowadzenia_tekstu=r,nienumerowane_obiekty_tekstu=q,}; end; p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane=m.ElementyReferencjiObiektowychNumerowanychZUchwytami(); m.FormatElementowyObiektowy=function() local s={}; local function Obiekty(s,obiekty) for _,tab_obiektow in ipairs(obiekty)do s[tab_obiektow[1]]=true; end; end; Obiekty(s,p.wypowiedzi); Obiekty(s,p.normalne); return s; end; p.format_elementowy_obiektowy=m.FormatElementowyObiektowy(); m.FormatElementowyReferencjiObiektowych=function() local s={}; local function Obiekty(s,obiekty) for _,tab_obiektow in ipairs(obiekty)do local element=mw.getContentLanguage():lcfirst(tab_obiektow[1]); s[element]=true; end; end; Obiekty(s,p.wypowiedzi); Obiekty(s,p.normalne); return s; end; p.format_elementowy_referencji_obiektowy=m.FormatElementowyReferencjiObiektowych(); ---- ---- p.tablica_obiektowych_form=m.TablicaObiektowychForm(); p.szablony_stron_zbiorczych={ ["KsiążkaSubst"]=true, ["StronaSubst"]=true, }; p.inne_szablony_stron_zbiorczych={ ["Sekcja referencyjna"]=true, ["Sr"]=true, } m.StronyZbiorcze=function() local s={}; local function Ziorcze(tab) for name,_ in pairs(tab)do s[name]=true; end; end; Ziorcze(p.szablony_stron_zbiorczych); Ziorcze(p.inne_szablony_stron_zbiorczych); return s; end; p.strona_zbiorcza=m.StronyZbiorcze(); p.strona_start_inne={ ["StandardowaStronaStart"]=true, ["PodstawowaStronaStart"]=true, ["ProstaStronaStart"]=true, }; p.strona_start={ ["StronaStart"]=true, }; p.strona_start_ze_spisem_rzeczy_strony={ ["UnikatowaStronaStart"]=true, ["UnikalnaStronaStart"]=true, ["SkomplikowanaStronaStart"]=true, }; p.strona_start_analiza_zaawansowana_spis_rzeczy_strony={ ["SkomplikowanaStronaStart"]=true, }; m.SzablonyFormartowaniaTekstu=function() local s={}; local function DodatDoTablicy(tab) for name,_ in pairs(tab)do s[name]=true; local name_koniec,_=mw.ustring.gsub(name,"Start$","Koniec"); s[name_koniec]=true; end; end; DodatDoTablicy(p.strona_start); DodatDoTablicy(p.strona_start_ze_spisem_rzeczy_strony); DodatDoTablicy(p.strona_start_analiza_zaawansowana_spis_rzeczy_strony); DodatDoTablicy(p.strona_start_inne); return s; end; p.szablony_stronicowe_formatowania_tekstu=m.SzablonyFormartowaniaTekstu(); p.tablica_nazw_ramek_lua={ "StronicowyParser", }; ----Koniec tablica obiektów p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu={ ["licencja"]=true, ["inne"]=true, ["bibliografia"]=true, ["zobacz też"]=true, ["linki zewnętrzne"]=true, --[[["dedykacja"]=true,]] }; p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={ ["spis treści"]=true, ["spis tresci"]=true, ["spis rzeczy"]=true, }; --[[p.tablica_nazw_wprowadzenia_tekstu_dodatkowych={ ["bibliografia"]=true, ["literatura"]=true, };]] p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={ [1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*", [2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*", }; p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe={ [1]={"[ _\t]*'*[ _\t]*[Ll][Ii][Tt][Ee][Rr][Aa][Tt][Uu][Rr][Aa][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",false,}, [2]={"[ _\t]*'*[ _\t]*[Bb][Ii][Bb][Ll][Ii][Oo][Gg][Rr][Aa][Ff][Ii][Aa][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",true,}, }; p.artykularne_niespisowe={ [1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$", --[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$", }; p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu={ ["Kolumny"]=2, }; p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu={ ["MDL:RozszerzonyLink"]=1, ["Kompletność"]="", ["Kompletność krótka"]="", ["Kompletność junior"]="", ["Książka"]="", }; p.szablony_z_dodatkiem_obiektowym={ ["ISBN"]="ISBN $(1)"; }; p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu={ ["Cytuj"]=true, ["Cytuj stronę"]=true, ["Cytuj pismo"]=true, ["Cytuj odcinek"]=true, ["Cytuj książkę"]=true, ["Cytuj grę komputerową"]=true, }; p.szablony_dozwolone_w_nazwach_linkowych={ ["Korekta"] =2, }; p.szablony_rozwijane_przez_javascript_nazwowe_linkowe={ }; 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, }; p.linki_szablony_elementy_spisu_rzeczy={ ["SpisTreści"]=true, ["Sekcja referencyjna"]=true, ["Sr"]=true, ["Link wewnętrzny"]=true, ["LinkOgólne"]=true, ["Lo"]=true, --[[["LinkGłówna"]=true, ["LinkWikijunior"]=true, ["LinkWikijunior2"]=true, ["LinkProjekt"]=true, ["LinkProjekt2"]=true, ["LinkUżytkownik"]=true, ["LinkUżytkownik2"]=true,]] }; p.kody_szablony_linkowe_przestrzenne={ ["Główna"]={"",}, ["Wikijunior"]={"Wikijunior",}, ["Kategoria"]={"Category",}, ["Plik"]={"File",}, ["Projekt"]={"Project",}, ["Szablon"]={"Template",}, ["Użytkownik"]={"User",}, ["Pomoc"]={"Help",}, ["Moduł"]={"Module",}, ["Komunikat"]={"MediaWiki",}, ["Specjalna"]={"Special",}, ["Wikiprojekt"]={"Wikiproject","w",}, ["Portal"]={"Portal","w",}, ["Extension"]={"Extension","mw",}, }; p.kody_inne_szablony_linkowe_inteligentne={ ["Sekcja referencyjna"]=true, ["Sr"]=true, }; p.kody_szablony_linkowe_projektowe={ ["Pedia"]="w", ["Źródła"]="s", ["Cytaty"]="q", ["News"]="n", ["Słownik"]="wikt", ["Podróże"]="voy", ["Wersytet"]="betawikiversity", ["Species"]="wikispecies", ["Commons"]="commons", ["Dane"]="d", ["MediaWiki"]="mw", ["MetaWiki"]="m", }; p.kody_szablony_linkowe_dialektu={ ["En"]="en", }; p.inne_linki_szablony_elementy_spisu_rzeczy={ ["SpisPozycja"]={true,numer_link="tyt",}, ["SpisZw"]={false,numer=1,link=2,}, }; p.szablony_w_nie_w_tej_samej_linii={ ["SpisPozycja"]=true, ["SpisZw"]=true, ["SpisTreści"]=true, }; p.szablony_kompletowania_stron_woluminu={ ["Kompletność"]=true, ["Kompletność krótka"]=true, ["Kompletność junior"]=true, ["Książka"]=true, }; p.szablony_wprowadzenia_napisu_spisu_rzeczy={ ["Ce"]=1, ["Centruj"]=1, ["Center"]=1, }; p.szablony_dokumentacji={ ["Dokumentacja"]=true, }; p.szablony_wykorzystywane_przez_strony_zbiorcze={ ["Sekcja referencyjna"]=true, ["Sr"]=true, }; p.szablony_licencji={ ["Licencja"]=true, }; p.szablony_ozdobne_stron_woluminu={ ["MDL:RozszerzonyLink"]=true, }; p.szablony_bez_generowania_napisowego={ ["Status"]=true, }; p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego={ ["Rozdział"]=true, ["Podrozdział"]=true, ["MapaObrazu"]=true, }; p.strony_main_page_projektu={ ["Wikijunior:Strona główna"]=true, ["Wikibooks:Strona główna"]=true, ["Strona główna"]=true, ["Main Page"]=true, } p.szablony_nie_typowo_linkowe={ ["Plik"]=true, ["Kategoria"]=true, ["Kategorie"]=true, ["Wolumin"]=true, }; p.szablony_przypisowe={ ["Przypisy"]=true, ["Uwagi"]=true, ["Przypisy-lista"]=true, }; p.napisy_wprowadzenia_tekstu_przypisowych={ ["Przypisy"]=true, ["Uwagi"]=true, ["Bibliografia"]=true, ["Licencja"]=true, }; p.magiczne_derektywy={ ["TOC"]=true, ["NOTOC"]=true, ["NOEDITSECTION"]=true, } 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, }; p.szablony_indeksowania={ ["Kotwica"] =true, ["Indeksuj"]=true, }; p.nazwy_przestrzeni_nazw_przekierowaniowe_linkowe_inteligentne={ ["g"]="Główna", ["c"]="Specjalna", ["k"]="Kategoria", ["l"]="Plik", ["m"]="Komunukat", ["d"]="Moduł", ["p"]="Pomoc", ["r"]="Projekt", ["s"]="Szablon", ["j"]="Wikijunior", ["ż"]="Użytkownik", ["e"]="Extension", ["x"]="Property", ["w"]="Wikiprojekt", ["t"]="Portal", }; p.nazwy_projektowe_serwisy_linkowe_inteligentne={ ["p"]="Pedia", ["l"]="EnPedia", ["s"]="Słownik", ["t"]="Cytaty", ["ź"]="Źródła", ["d"]="Podróże", ["g"]="Species", ["z"]="News", ["r"]="Wersytet", ["w"]="Wikia", ["c"]="Commons", ["n"]="Dane", ["k"]="MediaWiki", ["m"]="MetaWiki", ["b"]="En", }; p.przekierowania_szablonowe_linkowe_inteligentne_inne={ ["Lz"]="LinkURL", ["Lb"]="LinkWB", ["Sr"]="Sekcja referencyjna", }; p.nazwy_szablonowe_kolidacja={ ["Ltr"]=true, }; p.litery_przestrzeni_kolidacja={ ["ř"]="r", }; p.znaczniki_wprowadzenia_tekstu={ ["h1"]=1, ["h2"]=2, ["h3"]=3, ["h4"]=4, ["h5"]=5, ["h6"]=6, }; p.szablony_sztucznego_wprowadzenia_tekstu={ ["HNumer"]=1, }; p.szablony_spisu_rzeczy_artykularnego_wprowadzenia_tekstu={ ["SpisTreści"]={{"artykuł",1,},{"książka",2,},{"nazwa",3,},{"dodatek",4,},{"poziom",},}; }; return p; kqmb6dnlihqh5wg3b58m1i2lgvpg7q2 543820 543818 2026-05-22T05:31:59Z Persino 2851 543820 Scribunto text/plain local p={}; local m={}; p.wypowiedzi={ {"Twierdzenie", nil,nil,"Twierdzenia",2,"twierdzeniami","twierdzeń",}, {"Hipoteza",nil,nil,"Hipotezy", 2,"hipotezami","hipotez",}, {"Lemat", nil,nil,"Lematu",2,"lematami","lematów",}, {"Kryterium", nil,nil,"Kryterium",2,"kryteriami","kryteriów",}, {"Dowód", nil,nil,"Dowodu",2,"dowodami","dowodów",}, {"Postulat", nil,nil,"Postulatu",2,"postulatami","postulatów",}, {"Postulaty", nil,nil,"Postulatów",2,"grupami postulatów","grup postulatów",}, {"Określenie", nil,nil,"Określenia",2,"definicjami","definicji",}, {"Zadanie", nil,nil,"Zadania",2,"zadaniami","zadań",}, {"Praktyka",nil,nil,"Praktyki",2,"ćwiczeniami","ćwiczeń",}, {"Procedura",nil,nil,"Procedury",2,"procedurami","procedur",}, {"Schemat",nil,nil,"Schematu",2,"schematami","schematów",}, }; p.obiekty={"Obiekt",nil,nil,"Obiektu",2,"nienazwanymi obiektami","nienazwanych obiektów",}; p.normalne={ {"Wzór",{"Wzór2","CentrujWzór","CentrujWzór2","MathMLWzór","MathMLWzór2","CentrujMathMLWzór","CentrujMathMLWzór2",},nil,"Wzoru",2,"wzorami","wzorów",}, {"Rysunek",nil,nil,"Rysunku",2,"rysunkami","rysunków",}, {"Patrz",nil,nil,"Patrz",1,"patrzeniem","patrzenia",}, {"ZobaczTeż",nil,nil,"ZobaczTeż",1,"zobaczeniem też","zobaczenia też",}, }; p.napisy_wprowadzenia_tekstu={ {"Śródtytuł",nil,{"LinkŚródtytułTutaj",},"Śródtytułu",1,"nagłówkami","nagłówków",}, }; p.tekst={ {"Śródtekst",nil,nil,"Śródtekstu",2,"tekstami","tekstów",}, }; p.nazwa_szablonu_wprowadzenia_tekstu="Śródtytuł"; m.LinkiSzablonyNieNumerowane=function(tab_szablony_nienumerowane,czy_link) local function DalszeLinkiWprowadzeniaTekstu(linki_naglowka,t,i) if(type(linki_naglowka)=="table")then for _,wartosc in ipairs(linki_naglowka)do i=i+1; t[i]=wartosc; end; else i=i+1; t[i]=linki_naglowka; end; return t,i; end; local s={}; for _,wartosc in ipairs(tab_szablony_nienumerowane)do s[wartosc[1]]={}; local t=s[wartosc[1]]; local i=1; t[i]=(czy_link and "Link" or "Pobierz")..wartosc[1]; t,i=DalszeLinkiWprowadzeniaTekstu(wartosc[3],t,i); end; return s; end; m.LinkiSzablonyNapisuWprowadzeniaTekstu=function() return m.LinkiSzablonyNieNumerowane(p.napisy_wprowadzenia_tekstu,true); end; m.LinkiSzablonyTekstu=function() return m.LinkiSzablonyNieNumerowane(p.tekst,false); end; m.NienumerowaneSzablony=function(tab_szablony_nienumerowane) local s={}; for _,wartosc in ipairs(tab_szablony_nienumerowane)do s[wartosc[1]]=true; end; return s; end; m.NienumerowaneSzablonyNapisuWprowadzeniaTekstu=function() return m.NienumerowaneSzablony(p.napisy_wprowadzenia_tekstu); end; m.NienumerowaneSzablonyTekstu=function() return m.NienumerowaneSzablony(p.tekst); end; p.linki_szablony_wprowadzenia_tekstu=m.LinkiSzablonyNapisuWprowadzeniaTekstu(); p.nienumerowane_z_uchwytami_szablony_wprowadzenia_tekstu=m.NienumerowaneSzablonyNapisuWprowadzeniaTekstu(); p.linki_szablony_tekstu=m.LinkiSzablonyTekstu(); p.nienumerowane_z_uchwytami_szablony_tekstu=m.NienumerowaneSzablonyTekstu(); p.uklad_autonawigacji="Układ autonawigacji"; p.bez_uchwytow_spis_rzeczy_strony={ ["TOC"]=true, ["TOCRamka"]=true, }; p.szablony_z_lokalnym_spisem_rzeczy_strony={ ["TOC limit"]=true, ["Spis treści"]=true, ["TOCright"]=true, ["Spis treści zwinięty"]=true, }; p.szablony_kontenerowe={ ["Sekcja referencyjna"]=true, ["Sr"]=true, ---------------------------------- ["ListaNagłówkówKsiążki"]=true, ["LiniaArtykułuKsiążki"]=true, ---------------------------------- ["PomiędzyNagłówek"]=true, ["LosowyNagłówek"]=true, ["PierwszyNagłówek"]=true, ["OstatniNagłówek"]=true, ["LiczbaNagłówkówSpisu"]=true, ---------------------------------- ["AktualnaKsiążka"]=true, ["NastępnyArtykuł"]=true, ["PoprzedniArtykuł"]=true, ["NazwaAktualnyArtykuł"]=true, ["LinkAktualnaKsiążka"]=true, ["LinkNastępnyArtykuł"]=true, ["LinkPoprzedniArtykuł"]=true, ---------------------------------- ["LinkNastępnySubArtykuł"]=true, ["LinkPoprzedniSubArtykuł"]=true, ---------------------------------- ["PierwszyArtykuł"]=true, ["OstatniArtykuł"]=true, ["PomiędzyArtykuł"]=true, ["LosowyArtykuł"]=true, ["PobierzNazwęArtykułu"]=true, ["PobierzNumerArtykułu"]=true, ["NazwaLinkuArtykułu"]=true, -------------------------------- ["PobierzNazwęNagłówka"]=true, ["PobierzNumerNagłówka"]=true, --------------------------------- ["LiczbaArtykułówKsiążki"]=true, ["PoziomNazwyArtykułu"]=true, --------------------------------- ["SubNazwaNadArtykułu"]=true, ["NazwaNadArtykułu"]=true, ["LinkNazwaNadArtykułu"]=true, ["LinkSubNazwaNadArtykułu"]=true, ----------------------------------- ["Autonawigacja"]=true, }; p.szablony_stronicowe_niekontenerowe={ ["ArtykułSubst"]=true, }; p.szablony_stronicowe_kontenerowe_formatowania_wzorowego={ ["Formuła"]=1; }; ----szablony stronicowego parsera function m.SzablonyStronicowegoParsera() local t={}; t.szablony_kontenerowe={}; local s=t.szablony_kontenerowe; t.szablony_wprowadzenia_tekstu={}; local r=t.szablony_wprowadzenia_tekstu; t.szablony_tekstu={}; local q=t.szablony_tekstu; local function SzablonyUchwytoweNapisuWprowadzeniaTekstu(naglowki,r) for _,szablony_naglowka in ipairs(naglowki) do r[szablony_naglowka[1]]=true; if(szablony_naglowka[2])then if(type(szablony_naglowka[2])=="table")then for _,wartosc in ipairs(szablony_naglowka[2])do r[wartosc]=true; end; else r[szablony_naglowka[2]]=true; end; end; end; end; SzablonyUchwytoweNapisuWprowadzeniaTekstu(p.napisy_wprowadzenia_tekstu,r); SzablonyUchwytoweNapisuWprowadzeniaTekstu(p.tekst,q); local function TabNumer(n,obiekty_szablon,s) if(obiekty_szablon[n])then if(type(obiekty_szablon[n])=="table")then for _,wartosc in ipairs(obiekty_szablon[n])do s[wartosc]=true; end; else s[obiekty_szablon[n]]=true; end; end; end; local function RozpatrywanaTablica(tab_obiekty,s,czy_link) for _,obiekty_szablon in ipairs(tab_obiekty)do s[obiekty_szablon[1]]=true; s[(czy_link and "Link" or "Pobierz")..obiekty_szablon[1]]=true; TabNumer(2,obiekty_szablon,s); TabNumer(3,obiekty_szablon,s); end; end; RozpatrywanaTablica(p.normalne,s,true); RozpatrywanaTablica(p.wypowiedzi,s,true); RozpatrywanaTablica(p.napisy_wprowadzenia_tekstu,s,true); RozpatrywanaTablica(p.tekst,s,false); TabNumer(2,p.obiekty,s); TabNumer(3,p.obiekty,s); local function IndeksowaneNaTak(tab_obiekty,s) for indeks,_ in pairs(tab_obiekty)do s[indeks]=true; end; end; IndeksowaneNaTak(p.bez_uchwytow_spis_rzeczy_strony,s); IndeksowaneNaTak(p.szablony_kontenerowe,s); return t; end; p.szablony_stronicowego_parsera=m.SzablonyStronicowegoParsera(); ----koniec szablony pudełka ----Tablica obiektów function m.TablicaObiektowychForm() local s={};local r={}; for _,element_w_tablicy_obiekty in pairs(p.normalne)do s[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.wypowiedzi)do s[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.napisy_wprowadzenia_tekstu)do s[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.tekst)do s[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.normalne)do r[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.wypowiedzi)do r[#s+1]=element_w_tablicy_obiekty;end; p.tablica_mozliwych_obiektow_bez_obiektu_nienazwanego=s; p.tablica_mozliwych_numerowanych_obiektow_bez_obiektu_nienazwanego=r; s[#s+1]=p.obiekty; return s; end; ---- m.ElementyObiektoweNumerowaneINienumerowaneZUchwytami=function() local function Obiekty(s,obiekty) for _,tab_obiektow in ipairs(obiekty)do s[tab_obiektow[1]]={tab_obiektow[1],tab_obiektow[5],}; local tab_szablony=tab_obiektow[2]; if(tab_szablony)then if(type(tab_szablony)=="table")then for _,element in ipairs(tab_szablony)do s[element]={tab_obiektow[1],tab_obiektow[5],}; end; else s[tab_szablony]={tab_obiektow[1],tab_obiektow[5],}; end; end; end; end; local s={};local r={};local q={}; Obiekty(s,p.wypowiedzi); Obiekty(s,p.normalne); Obiekty(r,p.napisy_wprowadzenia_tekstu); Obiekty(q,p.tekst); return {numerowane_obiekty=s,nienumerowane_obiekty_napisu_wprowadzenia_tekstu=r,nienumerowane_obiekty_tekstu=q,}; end; p.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane=m.ElementyObiektoweNumerowaneINienumerowaneZUchwytami(); m.ElementyReferencjiObiektowychNumerowanychZUchwytami=function() local function Obiekty(s,linkobiekty,czy_link) for _,tab_obiektow in ipairs(linkobiekty)do s[(czy_link and "Link" or "Pobierz")..tab_obiektow[1]]=tab_obiektow[1]; local tab_szablony=tab_obiektow[3]; if(tab_szablony)then if(type(tab_szablony)=="table")then for _,element in ipairs(tab_szablony)do s[element]=tab_obiektow[1]; end; else s[tab_szablony]=tab_obiektow[1]; end; end; end; end; local s={};local r={};local q={}; Obiekty(s,p.wypowiedzi,true); Obiekty(s,p.normalne,true); Obiekty(r,p.napisy_wprowadzenia_tekstu,true); Obiekty(q,p.tekst,false); return {numerowane_obiekty=s,nienumerowane_obiekty_napisu_wprowadzenia_tekstu=r,nienumerowane_obiekty_tekstu=q,}; end; p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane=m.ElementyReferencjiObiektowychNumerowanychZUchwytami(); m.FormatElementowyObiektowy=function() local s={}; local function Obiekty(s,obiekty) for _,tab_obiektow in ipairs(obiekty)do s[tab_obiektow[1]]=true; end; end; Obiekty(s,p.wypowiedzi); Obiekty(s,p.normalne); return s; end; p.format_elementowy_obiektowy=m.FormatElementowyObiektowy(); m.FormatElementowyReferencjiObiektowych=function() local s={}; local function Obiekty(s,obiekty) for _,tab_obiektow in ipairs(obiekty)do local element=mw.getContentLanguage():lcfirst(tab_obiektow[1]); s[element]=true; end; end; Obiekty(s,p.wypowiedzi); Obiekty(s,p.normalne); return s; end; p.format_elementowy_referencji_obiektowy=m.FormatElementowyReferencjiObiektowych(); ---- ---- p.tablica_obiektowych_form=m.TablicaObiektowychForm(); p.szablony_stron_zbiorczych={ ["KsiążkaSubst"]=true, ["StronaSubst"]=true, }; p.inne_szablony_stron_zbiorczych={ ["Sekcja referencyjna"]=true, ["Sr"]=true, } m.StronyZbiorcze=function() local s={}; local function Ziorcze(tab) for name,_ in pairs(tab)do s[name]=true; end; end; Ziorcze(p.szablony_stron_zbiorczych); Ziorcze(p.inne_szablony_stron_zbiorczych); return s; end; p.strona_zbiorcza=m.StronyZbiorcze(); p.strona_start_inne={ ["StandardowaStronaStart"]=true, ["PodstawowaStronaStart"]=true, ["ProstaStronaStart"]=true, }; p.strona_start={ ["StronaStart"]=true, }; p.strona_start_ze_spisem_rzeczy_strony={ ["UnikatowaStronaStart"]=true, ["UnikalnaStronaStart"]=true, ["SkomplikowanaStronaStart"]=true, }; p.strona_start_analiza_zaawansowana_spis_rzeczy_strony={ ["SkomplikowanaStronaStart"]=true, }; m.SzablonyFormartowaniaTekstu=function() local s={}; local function DodatDoTablicy(tab) for name,_ in pairs(tab)do s[name]=true; local name_koniec,_=mw.ustring.gsub(name,"Start$","Koniec"); s[name_koniec]=true; end; end; DodatDoTablicy(p.strona_start); DodatDoTablicy(p.strona_start_ze_spisem_rzeczy_strony); DodatDoTablicy(p.strona_start_analiza_zaawansowana_spis_rzeczy_strony); DodatDoTablicy(p.strona_start_inne); return s; end; p.szablony_stronicowe_formatowania_tekstu=m.SzablonyFormartowaniaTekstu(); p.tablica_nazw_ramek_lua={ "StronicowyParser", }; ----Koniec tablica obiektów p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu={ ["licencja"]=true, ["inne"]=true, ["bibliografia"]=true, ["zobaczteż"]=true, ["linkizewnętrzne"]=true, --[[["dedykacja"]=true,]] }; p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={ ["spistreści"]=true, ["spistresci"]=true, ["spisrzeczy"]=true, }; --[[p.tablica_nazw_wprowadzenia_tekstu_dodatkowych={ ["bibliografia"]=true, ["literatura"]=true, };]] p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={ [1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]*[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*", [2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]*[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*", }; p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe={ [1]={"[ _\t]*'*[ _\t]*[Ll][Ii][Tt][Ee][Rr][Aa][Tt][Uu][Rr][Aa][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",false,}, [2]={"[ _\t]*'*[ _\t]*[Bb][Ii][Bb][Ll][Ii][Oo][Gg][Rr][Aa][Ff][Ii][Aa][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",true,}, }; p.artykularne_niespisowe={ [1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$", --[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$", }; p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu={ ["Kolumny"]=2, }; p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu={ ["MDL:RozszerzonyLink"]=1, ["Kompletność"]="", ["Kompletność krótka"]="", ["Kompletność junior"]="", ["Książka"]="", }; p.szablony_z_dodatkiem_obiektowym={ ["ISBN"]="ISBN $(1)"; }; p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu={ ["Cytuj"]=true, ["Cytuj stronę"]=true, ["Cytuj pismo"]=true, ["Cytuj odcinek"]=true, ["Cytuj książkę"]=true, ["Cytuj grę komputerową"]=true, }; p.szablony_dozwolone_w_nazwach_linkowych={ ["Korekta"] =2, }; p.szablony_rozwijane_przez_javascript_nazwowe_linkowe={ }; 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, }; p.linki_szablony_elementy_spisu_rzeczy={ ["SpisTreści"]=true, ["Sekcja referencyjna"]=true, ["Sr"]=true, ["Link wewnętrzny"]=true, ["LinkOgólne"]=true, ["Lo"]=true, --[[["LinkGłówna"]=true, ["LinkWikijunior"]=true, ["LinkWikijunior2"]=true, ["LinkProjekt"]=true, ["LinkProjekt2"]=true, ["LinkUżytkownik"]=true, ["LinkUżytkownik2"]=true,]] }; p.kody_szablony_linkowe_przestrzenne={ ["Główna"]={"",}, ["Wikijunior"]={"Wikijunior",}, ["Kategoria"]={"Category",}, ["Plik"]={"File",}, ["Projekt"]={"Project",}, ["Szablon"]={"Template",}, ["Użytkownik"]={"User",}, ["Pomoc"]={"Help",}, ["Moduł"]={"Module",}, ["Komunikat"]={"MediaWiki",}, ["Specjalna"]={"Special",}, ["Wikiprojekt"]={"Wikiproject","w",}, ["Portal"]={"Portal","w",}, ["Extension"]={"Extension","mw",}, }; p.kody_inne_szablony_linkowe_inteligentne={ ["Sekcja referencyjna"]=true, ["Sr"]=true, }; p.kody_szablony_linkowe_projektowe={ ["Pedia"]="w", ["Źródła"]="s", ["Cytaty"]="q", ["News"]="n", ["Słownik"]="wikt", ["Podróże"]="voy", ["Wersytet"]="betawikiversity", ["Species"]="wikispecies", ["Commons"]="commons", ["Dane"]="d", ["MediaWiki"]="mw", ["MetaWiki"]="m", }; p.kody_szablony_linkowe_dialektu={ ["En"]="en", }; p.inne_linki_szablony_elementy_spisu_rzeczy={ ["SpisPozycja"]={true,numer_link="tyt",}, ["SpisZw"]={false,numer=1,link=2,}, }; p.szablony_w_nie_w_tej_samej_linii={ ["SpisPozycja"]=true, ["SpisZw"]=true, ["SpisTreści"]=true, }; p.szablony_kompletowania_stron_woluminu={ ["Kompletność"]=true, ["Kompletność krótka"]=true, ["Kompletność junior"]=true, ["Książka"]=true, }; p.szablony_wprowadzenia_napisu_spisu_rzeczy={ ["Ce"]=1, ["Centruj"]=1, ["Center"]=1, }; p.szablony_dokumentacji={ ["Dokumentacja"]=true, }; p.szablony_wykorzystywane_przez_strony_zbiorcze={ ["Sekcja referencyjna"]=true, ["Sr"]=true, }; p.szablony_licencji={ ["Licencja"]=true, }; p.szablony_ozdobne_stron_woluminu={ ["MDL:RozszerzonyLink"]=true, }; p.szablony_bez_generowania_napisowego={ ["Status"]=true, }; p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego={ ["Rozdział"]=true, ["Podrozdział"]=true, ["MapaObrazu"]=true, }; p.strony_main_page_projektu={ ["Wikijunior:Strona główna"]=true, ["Wikibooks:Strona główna"]=true, ["Strona główna"]=true, ["Main Page"]=true, } p.szablony_nie_typowo_linkowe={ ["Plik"]=true, ["Kategoria"]=true, ["Kategorie"]=true, ["Wolumin"]=true, }; p.szablony_przypisowe={ ["Przypisy"]=true, ["Uwagi"]=true, ["Przypisy-lista"]=true, }; p.napisy_wprowadzenia_tekstu_przypisowych={ ["Przypisy"]=true, ["Uwagi"]=true, ["Bibliografia"]=true, ["Licencja"]=true, }; p.magiczne_derektywy={ ["TOC"]=true, ["NOTOC"]=true, ["NOEDITSECTION"]=true, } 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, }; p.szablony_indeksowania={ ["Kotwica"] =true, ["Indeksuj"]=true, }; p.nazwy_przestrzeni_nazw_przekierowaniowe_linkowe_inteligentne={ ["g"]="Główna", ["c"]="Specjalna", ["k"]="Kategoria", ["l"]="Plik", ["m"]="Komunukat", ["d"]="Moduł", ["p"]="Pomoc", ["r"]="Projekt", ["s"]="Szablon", ["j"]="Wikijunior", ["ż"]="Użytkownik", ["e"]="Extension", ["x"]="Property", ["w"]="Wikiprojekt", ["t"]="Portal", }; p.nazwy_projektowe_serwisy_linkowe_inteligentne={ ["p"]="Pedia", ["l"]="EnPedia", ["s"]="Słownik", ["t"]="Cytaty", ["ź"]="Źródła", ["d"]="Podróże", ["g"]="Species", ["z"]="News", ["r"]="Wersytet", ["w"]="Wikia", ["c"]="Commons", ["n"]="Dane", ["k"]="MediaWiki", ["m"]="MetaWiki", ["b"]="En", }; p.przekierowania_szablonowe_linkowe_inteligentne_inne={ ["Lz"]="LinkURL", ["Lb"]="LinkWB", ["Sr"]="Sekcja referencyjna", }; p.nazwy_szablonowe_kolidacja={ ["Ltr"]=true, }; p.litery_przestrzeni_kolidacja={ ["ř"]="r", }; p.znaczniki_wprowadzenia_tekstu={ ["h1"]=1, ["h2"]=2, ["h3"]=3, ["h4"]=4, ["h5"]=5, ["h6"]=6, }; p.szablony_sztucznego_wprowadzenia_tekstu={ ["HNumer"]=1, }; p.szablony_spisu_rzeczy_artykularnego_wprowadzenia_tekstu={ ["SpisTreści"]={{"artykuł",1,},{"książka",2,},{"nazwa",3,},{"dodatek",4,},{"poziom",},}; }; return p; p4oarny6yw24haas3317aq2zcknaocz 543829 543820 2026-05-22T06:59:20Z Persino 2851 543829 Scribunto text/plain local p={}; local m={}; p.wypowiedzi={ {"Twierdzenie", nil,nil,"Twierdzenia",2,"twierdzeniami","twierdzeń",}, {"Hipoteza",nil,nil,"Hipotezy", 2,"hipotezami","hipotez",}, {"Lemat", nil,nil,"Lematu",2,"lematami","lematów",}, {"Kryterium", nil,nil,"Kryterium",2,"kryteriami","kryteriów",}, {"Dowód", nil,nil,"Dowodu",2,"dowodami","dowodów",}, {"Postulat", nil,nil,"Postulatu",2,"postulatami","postulatów",}, {"Postulaty", nil,nil,"Postulatów",2,"grupami postulatów","grup postulatów",}, {"Określenie", nil,nil,"Określenia",2,"definicjami","definicji",}, {"Zadanie", nil,nil,"Zadania",2,"zadaniami","zadań",}, {"Praktyka",nil,nil,"Praktyki",2,"ćwiczeniami","ćwiczeń",}, {"Procedura",nil,nil,"Procedury",2,"procedurami","procedur",}, {"Schemat",nil,nil,"Schematu",2,"schematami","schematów",}, }; p.obiekty={"Obiekt",nil,nil,"Obiektu",2,"nienazwanymi obiektami","nienazwanych obiektów",}; p.normalne={ {"Wzór",{"Wzór2","CentrujWzór","CentrujWzór2","MathMLWzór","MathMLWzór2","CentrujMathMLWzór","CentrujMathMLWzór2",},nil,"Wzoru",2,"wzorami","wzorów",}, {"Rysunek",nil,nil,"Rysunku",2,"rysunkami","rysunków",}, {"Patrz",nil,nil,"Patrz",1,"patrzeniem","patrzenia",}, {"ZobaczTeż",nil,nil,"ZobaczTeż",1,"zobaczeniem też","zobaczenia też",}, }; p.napisy_wprowadzenia_tekstu={ {"Śródtytuł",nil,{"LinkŚródtytułTutaj",},"Śródtytułu",1,"nagłówkami","nagłówków",}, }; p.tekst={ {"Śródtekst",nil,nil,"Śródtekstu",2,"tekstami","tekstów",}, }; p.nazwa_szablonu_wprowadzenia_tekstu="Śródtytuł"; m.LinkiSzablonyNieNumerowane=function(tab_szablony_nienumerowane,czy_link) local function DalszeLinkiWprowadzeniaTekstu(linki_naglowka,t,i) if(type(linki_naglowka)=="table")then for _,wartosc in ipairs(linki_naglowka)do i=i+1; t[i]=wartosc; end; else i=i+1; t[i]=linki_naglowka; end; return t,i; end; local s={}; for _,wartosc in ipairs(tab_szablony_nienumerowane)do s[wartosc[1]]={}; local t=s[wartosc[1]]; local i=1; t[i]=(czy_link and "Link" or "Pobierz")..wartosc[1]; t,i=DalszeLinkiWprowadzeniaTekstu(wartosc[3],t,i); end; return s; end; m.LinkiSzablonyNapisuWprowadzeniaTekstu=function() return m.LinkiSzablonyNieNumerowane(p.napisy_wprowadzenia_tekstu,true); end; m.LinkiSzablonyTekstu=function() return m.LinkiSzablonyNieNumerowane(p.tekst,false); end; m.NienumerowaneSzablony=function(tab_szablony_nienumerowane) local s={}; for _,wartosc in ipairs(tab_szablony_nienumerowane)do s[wartosc[1]]=true; end; return s; end; m.NienumerowaneSzablonyNapisuWprowadzeniaTekstu=function() return m.NienumerowaneSzablony(p.napisy_wprowadzenia_tekstu); end; m.NienumerowaneSzablonyTekstu=function() return m.NienumerowaneSzablony(p.tekst); end; p.linki_szablony_wprowadzenia_tekstu=m.LinkiSzablonyNapisuWprowadzeniaTekstu(); p.nienumerowane_z_uchwytami_szablony_wprowadzenia_tekstu=m.NienumerowaneSzablonyNapisuWprowadzeniaTekstu(); p.linki_szablony_tekstu=m.LinkiSzablonyTekstu(); p.nienumerowane_z_uchwytami_szablony_tekstu=m.NienumerowaneSzablonyTekstu(); p.uklad_autonawigacji="Układ autonawigacji"; p.bez_uchwytow_spis_rzeczy_strony={ ["TOC"]=true, ["TOCRamka"]=true, }; p.szablony_z_lokalnym_spisem_rzeczy_strony={ ["TOC limit"]=true, ["Spis treści"]=true, ["TOCright"]=true, ["Spis treści zwinięty"]=true, }; p.szablony_kontenerowe={ ["Sekcja referencyjna"]=true, ["Sr"]=true, ---------------------------------- ["ListaNagłówkówKsiążki"]=true, ["LiniaArtykułuKsiążki"]=true, ---------------------------------- ["PomiędzyNagłówek"]=true, ["LosowyNagłówek"]=true, ["PierwszyNagłówek"]=true, ["OstatniNagłówek"]=true, ["LiczbaNagłówkówSpisu"]=true, ---------------------------------- ["AktualnaKsiążka"]=true, ["NastępnyArtykuł"]=true, ["PoprzedniArtykuł"]=true, ["NazwaAktualnyArtykuł"]=true, ["LinkAktualnaKsiążka"]=true, ["LinkNastępnyArtykuł"]=true, ["LinkPoprzedniArtykuł"]=true, ---------------------------------- ["LinkNastępnySubArtykuł"]=true, ["LinkPoprzedniSubArtykuł"]=true, ---------------------------------- ["PierwszyArtykuł"]=true, ["OstatniArtykuł"]=true, ["PomiędzyArtykuł"]=true, ["LosowyArtykuł"]=true, ["PobierzNazwęArtykułu"]=true, ["PobierzNumerArtykułu"]=true, ["NazwaLinkuArtykułu"]=true, -------------------------------- ["PobierzNazwęNagłówka"]=true, ["PobierzNumerNagłówka"]=true, --------------------------------- ["LiczbaArtykułówKsiążki"]=true, ["PoziomNazwyArtykułu"]=true, --------------------------------- ["SubNazwaNadArtykułu"]=true, ["NazwaNadArtykułu"]=true, ["LinkNazwaNadArtykułu"]=true, ["LinkSubNazwaNadArtykułu"]=true, ----------------------------------- ["Autonawigacja"]=true, }; p.szablony_stronicowe_niekontenerowe={ ["ArtykułSubst"]=true, }; p.szablony_stronicowe_kontenerowe_formatowania_wzorowego={ ["Formuła"]=1; }; ----szablony stronicowego parsera function m.SzablonyStronicowegoParsera() local t={}; t.szablony_kontenerowe={}; local s=t.szablony_kontenerowe; t.szablony_wprowadzenia_tekstu={}; local r=t.szablony_wprowadzenia_tekstu; t.szablony_tekstu={}; local q=t.szablony_tekstu; local function SzablonyUchwytoweNapisuWprowadzeniaTekstu(naglowki,r) for _,szablony_naglowka in ipairs(naglowki) do r[szablony_naglowka[1]]=true; if(szablony_naglowka[2])then if(type(szablony_naglowka[2])=="table")then for _,wartosc in ipairs(szablony_naglowka[2])do r[wartosc]=true; end; else r[szablony_naglowka[2]]=true; end; end; end; end; SzablonyUchwytoweNapisuWprowadzeniaTekstu(p.napisy_wprowadzenia_tekstu,r); SzablonyUchwytoweNapisuWprowadzeniaTekstu(p.tekst,q); local function TabNumer(n,obiekty_szablon,s) if(obiekty_szablon[n])then if(type(obiekty_szablon[n])=="table")then for _,wartosc in ipairs(obiekty_szablon[n])do s[wartosc]=true; end; else s[obiekty_szablon[n]]=true; end; end; end; local function RozpatrywanaTablica(tab_obiekty,s,czy_link) for _,obiekty_szablon in ipairs(tab_obiekty)do s[obiekty_szablon[1]]=true; s[(czy_link and "Link" or "Pobierz")..obiekty_szablon[1]]=true; TabNumer(2,obiekty_szablon,s); TabNumer(3,obiekty_szablon,s); end; end; RozpatrywanaTablica(p.normalne,s,true); RozpatrywanaTablica(p.wypowiedzi,s,true); RozpatrywanaTablica(p.napisy_wprowadzenia_tekstu,s,true); RozpatrywanaTablica(p.tekst,s,false); TabNumer(2,p.obiekty,s); TabNumer(3,p.obiekty,s); local function IndeksowaneNaTak(tab_obiekty,s) for indeks,_ in pairs(tab_obiekty)do s[indeks]=true; end; end; IndeksowaneNaTak(p.bez_uchwytow_spis_rzeczy_strony,s); IndeksowaneNaTak(p.szablony_kontenerowe,s); return t; end; p.szablony_stronicowego_parsera=m.SzablonyStronicowegoParsera(); ----koniec szablony pudełka ----Tablica obiektów function m.TablicaObiektowychForm() local s={};local r={}; for _,element_w_tablicy_obiekty in pairs(p.normalne)do s[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.wypowiedzi)do s[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.napisy_wprowadzenia_tekstu)do s[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.tekst)do s[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.normalne)do r[#s+1]=element_w_tablicy_obiekty;end; for _,element_w_tablicy_obiekty in pairs(p.wypowiedzi)do r[#s+1]=element_w_tablicy_obiekty;end; p.tablica_mozliwych_obiektow_bez_obiektu_nienazwanego=s; p.tablica_mozliwych_numerowanych_obiektow_bez_obiektu_nienazwanego=r; s[#s+1]=p.obiekty; return s; end; ---- m.ElementyObiektoweNumerowaneINienumerowaneZUchwytami=function() local function Obiekty(s,obiekty) for _,tab_obiektow in ipairs(obiekty)do s[tab_obiektow[1]]={tab_obiektow[1],tab_obiektow[5],}; local tab_szablony=tab_obiektow[2]; if(tab_szablony)then if(type(tab_szablony)=="table")then for _,element in ipairs(tab_szablony)do s[element]={tab_obiektow[1],tab_obiektow[5],}; end; else s[tab_szablony]={tab_obiektow[1],tab_obiektow[5],}; end; end; end; end; local s={};local r={};local q={}; Obiekty(s,p.wypowiedzi); Obiekty(s,p.normalne); Obiekty(r,p.napisy_wprowadzenia_tekstu); Obiekty(q,p.tekst); return {numerowane_obiekty=s,nienumerowane_obiekty_napisu_wprowadzenia_tekstu=r,nienumerowane_obiekty_tekstu=q,}; end; p.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane=m.ElementyObiektoweNumerowaneINienumerowaneZUchwytami(); m.ElementyReferencjiObiektowychNumerowanychZUchwytami=function() local function Obiekty(s,linkobiekty,czy_link) for _,tab_obiektow in ipairs(linkobiekty)do s[(czy_link and "Link" or "Pobierz")..tab_obiektow[1]]=tab_obiektow[1]; local tab_szablony=tab_obiektow[3]; if(tab_szablony)then if(type(tab_szablony)=="table")then for _,element in ipairs(tab_szablony)do s[element]=tab_obiektow[1]; end; else s[tab_szablony]=tab_obiektow[1]; end; end; end; end; local s={};local r={};local q={}; Obiekty(s,p.wypowiedzi,true); Obiekty(s,p.normalne,true); Obiekty(r,p.napisy_wprowadzenia_tekstu,true); Obiekty(q,p.tekst,false); return {numerowane_obiekty=s,nienumerowane_obiekty_napisu_wprowadzenia_tekstu=r,nienumerowane_obiekty_tekstu=q,}; end; p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane=m.ElementyReferencjiObiektowychNumerowanychZUchwytami(); m.FormatElementowyObiektowy=function() local s={}; local function Obiekty(s,obiekty) for _,tab_obiektow in ipairs(obiekty)do s[tab_obiektow[1]]=true; end; end; Obiekty(s,p.wypowiedzi); Obiekty(s,p.normalne); return s; end; p.format_elementowy_obiektowy=m.FormatElementowyObiektowy(); m.FormatElementowyReferencjiObiektowych=function() local s={}; local function Obiekty(s,obiekty) for _,tab_obiektow in ipairs(obiekty)do local element=mw.getContentLanguage():lcfirst(tab_obiektow[1]); s[element]=true; end; end; Obiekty(s,p.wypowiedzi); Obiekty(s,p.normalne); return s; end; p.format_elementowy_referencji_obiektowy=m.FormatElementowyReferencjiObiektowych(); ---- ---- p.tablica_obiektowych_form=m.TablicaObiektowychForm(); p.szablony_stron_zbiorczych={ ["KsiążkaSubst"]=true, ["StronaSubst"]=true, }; p.inne_szablony_stron_zbiorczych={ ["Sekcja referencyjna"]=true, ["Sr"]=true, } m.StronyZbiorcze=function() local s={}; local function Ziorcze(tab) for name,_ in pairs(tab)do s[name]=true; end; end; Ziorcze(p.szablony_stron_zbiorczych); Ziorcze(p.inne_szablony_stron_zbiorczych); return s; end; p.strona_zbiorcza=m.StronyZbiorcze(); p.strona_start_inne={ ["StandardowaStronaStart"]=true, ["PodstawowaStronaStart"]=true, ["ProstaStronaStart"]=true, }; p.strona_start={ ["StronaStart"]=true, }; p.strona_start_ze_spisem_rzeczy_strony={ ["UnikatowaStronaStart"]=true, ["UnikalnaStronaStart"]=true, ["SkomplikowanaStronaStart"]=true, }; p.strona_start_analiza_zaawansowana_spis_rzeczy_strony={ ["SkomplikowanaStronaStart"]=true, }; m.SzablonyFormartowaniaTekstu=function() local s={}; local function DodatDoTablicy(tab) for name,_ in pairs(tab)do s[name]=true; local name_koniec,_=mw.ustring.gsub(name,"Start$","Koniec"); s[name_koniec]=true; end; end; DodatDoTablicy(p.strona_start); DodatDoTablicy(p.strona_start_ze_spisem_rzeczy_strony); DodatDoTablicy(p.strona_start_analiza_zaawansowana_spis_rzeczy_strony); DodatDoTablicy(p.strona_start_inne); return s; end; p.szablony_stronicowe_formatowania_tekstu=m.SzablonyFormartowaniaTekstu(); p.tablica_nazw_ramek_lua={ "StronicowyParser", }; ----Koniec tablica obiektów p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu={ ["licencja"]=true, ["inne"]=true, ["bibliografia"]=true, ["zobacz też"]=true, ["linki zewnętrzne"]=true, --[[["dedykacja"]=true,]] }; p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={ ["spis treści"]=true, ["spis tresci"]=true, ["spis rzeczy"]=true, }; --[[p.tablica_nazw_wprowadzenia_tekstu_dodatkowych={ ["bibliografia"]=true, ["literatura"]=true, };]] p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci={ [1]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Tt][Rr][Ee][ŚśSs][Cc][Ii][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*", [2]="[ _\t]*'*[ _\t]*[Ss][Pp][Ii][Ss][ _\t]+[Rr][Zz][Ee][Cc][Zz][Yy][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*", }; p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe={ [1]={"[ _\t]*'*[ _\t]*[Ll][Ii][Tt][Ee][Rr][Aa][Tt][Uu][Rr][Aa][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",false,}, [2]={"[ _\t]*'*[ _\t]*[Bb][Ii][Bb][Ll][Ii][Oo][Gg][Rr][Aa][Ff][Ii][Aa][ _\t]*'*[ _\t]*:?[ _\t]*'*[ _\t]*",true,}, }; p.artykularne_niespisowe={ [1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$", --[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$", }; p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu={ ["Kolumny"]=2, }; p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu={ ["MDL:RozszerzonyLink"]=1, ["Kompletność"]="", ["Kompletność krótka"]="", ["Kompletność junior"]="", ["Książka"]="", }; p.szablony_z_dodatkiem_obiektowym={ ["ISBN"]="ISBN $(1)"; }; p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu={ ["Cytuj"]=true, ["Cytuj stronę"]=true, ["Cytuj pismo"]=true, ["Cytuj odcinek"]=true, ["Cytuj książkę"]=true, ["Cytuj grę komputerową"]=true, }; p.szablony_dozwolone_w_nazwach_linkowych={ ["Korekta"] =2, }; p.szablony_rozwijane_przez_javascript_nazwowe_linkowe={ }; 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, }; p.linki_szablony_elementy_spisu_rzeczy={ ["SpisTreści"]=true, ["Sekcja referencyjna"]=true, ["Sr"]=true, ["Link wewnętrzny"]=true, ["LinkOgólne"]=true, ["Lo"]=true, --[[["LinkGłówna"]=true, ["LinkWikijunior"]=true, ["LinkWikijunior2"]=true, ["LinkProjekt"]=true, ["LinkProjekt2"]=true, ["LinkUżytkownik"]=true, ["LinkUżytkownik2"]=true,]] }; p.kody_szablony_linkowe_przestrzenne={ ["Główna"]={"",}, ["Wikijunior"]={"Wikijunior",}, ["Kategoria"]={"Category",}, ["Plik"]={"File",}, ["Projekt"]={"Project",}, ["Szablon"]={"Template",}, ["Użytkownik"]={"User",}, ["Pomoc"]={"Help",}, ["Moduł"]={"Module",}, ["Komunikat"]={"MediaWiki",}, ["Specjalna"]={"Special",}, ["Wikiprojekt"]={"Wikiproject","w",}, ["Portal"]={"Portal","w",}, ["Extension"]={"Extension","mw",}, }; p.kody_inne_szablony_linkowe_inteligentne={ ["Sekcja referencyjna"]=true, ["Sr"]=true, }; p.kody_szablony_linkowe_projektowe={ ["Pedia"]="w", ["Źródła"]="s", ["Cytaty"]="q", ["News"]="n", ["Słownik"]="wikt", ["Podróże"]="voy", ["Wersytet"]="betawikiversity", ["Species"]="wikispecies", ["Commons"]="commons", ["Dane"]="d", ["MediaWiki"]="mw", ["MetaWiki"]="m", }; p.kody_szablony_linkowe_dialektu={ ["En"]="en", }; p.inne_linki_szablony_elementy_spisu_rzeczy={ ["SpisPozycja"]={true,numer_link="tyt",}, ["SpisZw"]={false,numer=1,link=2,}, }; p.szablony_w_nie_w_tej_samej_linii={ ["SpisPozycja"]=true, ["SpisZw"]=true, ["SpisTreści"]=true, }; p.szablony_kompletowania_stron_woluminu={ ["Kompletność"]=true, ["Kompletność krótka"]=true, ["Kompletność junior"]=true, ["Książka"]=true, }; p.szablony_wprowadzenia_napisu_spisu_rzeczy={ ["Ce"]=1, ["Centruj"]=1, ["Center"]=1, }; p.szablony_dokumentacji={ ["Dokumentacja"]=true, }; p.szablony_wykorzystywane_przez_strony_zbiorcze={ ["Sekcja referencyjna"]=true, ["Sr"]=true, }; p.szablony_licencji={ ["Licencja"]=true, }; p.szablony_ozdobne_stron_woluminu={ ["MDL:RozszerzonyLink"]=true, }; p.szablony_bez_generowania_napisowego={ ["Status"]=true, }; p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego={ ["Rozdział"]=true, ["Podrozdział"]=true, ["MapaObrazu"]=true, }; p.strony_main_page_projektu={ ["Wikijunior:Strona główna"]=true, ["Wikibooks:Strona główna"]=true, ["Strona główna"]=true, ["Main Page"]=true, } p.szablony_nie_typowo_linkowe={ ["Plik"]=true, ["Kategoria"]=true, ["Kategorie"]=true, ["Wolumin"]=true, }; p.szablony_przypisowe={ ["Przypisy"]=true, ["Uwagi"]=true, ["Przypisy-lista"]=true, }; p.napisy_wprowadzenia_tekstu_przypisowych={ ["Przypisy"]=true, ["Uwagi"]=true, ["Bibliografia"]=true, ["Licencja"]=true, }; p.magiczne_derektywy={ ["TOC"]=true, ["NOTOC"]=true, ["NOEDITSECTION"]=true, } 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, }; p.szablony_indeksowania={ ["Kotwica"] =true, ["Indeksuj"]=true, }; p.nazwy_przestrzeni_nazw_przekierowaniowe_linkowe_inteligentne={ ["g"]="Główna", ["c"]="Specjalna", ["k"]="Kategoria", ["l"]="Plik", ["m"]="Komunukat", ["d"]="Moduł", ["p"]="Pomoc", ["r"]="Projekt", ["s"]="Szablon", ["j"]="Wikijunior", ["ż"]="Użytkownik", ["e"]="Extension", ["x"]="Property", ["w"]="Wikiprojekt", ["t"]="Portal", }; p.nazwy_projektowe_serwisy_linkowe_inteligentne={ ["p"]="Pedia", ["l"]="EnPedia", ["s"]="Słownik", ["t"]="Cytaty", ["ź"]="Źródła", ["d"]="Podróże", ["g"]="Species", ["z"]="News", ["r"]="Wersytet", ["w"]="Wikia", ["c"]="Commons", ["n"]="Dane", ["k"]="MediaWiki", ["m"]="MetaWiki", ["b"]="En", }; p.przekierowania_szablonowe_linkowe_inteligentne_inne={ ["Lz"]="LinkURL", ["Lb"]="LinkWB", ["Sr"]="Sekcja referencyjna", }; p.nazwy_szablonowe_kolidacja={ ["Ltr"]=true, }; p.litery_przestrzeni_kolidacja={ ["ř"]="r", }; p.znaczniki_wprowadzenia_tekstu={ ["h1"]=1, ["h2"]=2, ["h3"]=3, ["h4"]=4, ["h5"]=5, ["h6"]=6, }; p.szablony_sztucznego_wprowadzenia_tekstu={ ["HNumer"]=1, }; p.szablony_spisu_rzeczy_artykularnego_wprowadzenia_tekstu={ ["SpisTreści"]={{"artykuł",1,},{"książka",2,},{"nazwa",3,},{"dodatek",4,},{"poziom",},}; }; return p; kqmb6dnlihqh5wg3b58m1i2lgvpg7q2 Moduł:Parametry 828 45669 543812 541897 2026-05-22T04:17:32Z Persino 2851 543812 Scribunto text/plain local p={}; p["LiczbaElementówNumerowanychTablicy"]=function(tabela, wliczac,mnoga) local liczba_elementow_ponumerowanych_w_tablicy=0; local czy_puste_wliczac=p.CzyTak(wliczac); local czy_mnoga=p.CzyTak(mnoga); for _1,_2 in ipairs(tabela)do if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1; if((czy_mnoga)and(liczba_elementow_ponumerowanych_w_tablicy>1))then return liczba_elementow_ponumerowanych_w_tablicy;end; end; end; return liczba_elementow_ponumerowanych_w_tablicy; end; p["LiczbaElementówNumerowanychSzablonu"]=function(frame) local parametry_modul=require("Module:Parametry"); return parametry_modul["LiczbaElementówNumerowanychTablicy"](frame:getParent().args,frame.args["niepuste"],frame.args["mnoga"]); end; p["LiczbaElementówNienazwanychTablicy"] = function(tabela,wliczac,mnoga) local czy_puste_wliczac=p.CzyTak(wliczac); local czy_mnoga=p.CzyTak(mnoga); local liczba_elementow_nienazwanych_w_tablicy=0; for _1,_2 in pairs(tabela)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then liczba_elementow_nienazwanych_w_tablicy=liczba_elementow_nienazwanych_w_tablicy+1; if((czy_mnoga)and(liczba_elementow_nienazwanych_w_tablicy>1))then return liczba_elementow_nienazwanych_w_tablicy;end; end; end; end; return liczba_elementow_nienazwanych_w_tablicy; end; p["LiczbaParametrówNienazwanychSzablonu"] = function (frame) return p["LiczbaElementówNienazwanychTablicy"](frame:getParent().args,frame.args["niepuste"],frame.args["mnoga"]) end; p["LiczbaElementówTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); local liczba_elementow_w_tablicy=0; for _1,_2 in pairs(tabela)do if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1; end; end; return liczba_elementow_w_tablicy; end; p["LiczbaElementówNienazwanychZPrzedrostkiemLubNieTablicy"]=function(tabela,przedrostek,wliczac,czy_formy_numerkowe) local czy_puste_wliczac=p.CzyTak(wliczac); local liczba_elementow_w_tablicy=0; local techniczne_modul=require("Module:Techniczne"); local wzor="^"..techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](przedrostek).."(%d+)$"; for _1,_2 in pairs(tabela)do local string_liczba=tonumber(_1) or nil; local czy_liczba=((string_liczba)and(czy_formy_numerkowe or p.TypeNumber(_1))and(string_liczba>0)); local zmienna=czy_liczba and przedrostek.._1 or nil; local element=(czy_liczba and tabela[zmienna] or nil) or (czy_liczba and tabela[_1] or (mw.ustring.match(tostring(_1),wzor) and tabela[_1] or nil) ); if(element)then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(element~="")))then liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1; end; end; end; return liczba_elementow_w_tablicy; end; function p.MaksymalnaLiczbaParametruNienazwanegoSzablonu(frame) return p.MaksymalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]); end; function p.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabela, wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); local liczba_elementow_ponumerowanych_w_tablicy=0; for _1,_2 in pairs(tabela)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then liczba_elementow_ponumerowanych_w_tablicy=math.max(liczba_elementow_ponumerowanych_w_tablicy,_1); end; end; end; return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 0; end; function p.MinimalnaLiczbaParametruNienazwanegoSzablonu(frame) return p.MinimalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]); end; function p.MinimalnaLiczbaParametruNienazwanegoTablicy(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); local liczba_elementow_ponumerowanych_w_tablicy; for _1,_2 in pairs(tabela)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then if(not liczba_elementow_ponumerowanych_w_tablicy)then liczba_elementow_ponumerowanych_w_tablicy=_1; else liczba_elementow_ponumerowanych_w_tablicy=math.min(liczba_elementow_ponumerowanych_w_tablicy,_1); end; end; end; end; return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 1; end; function p.MinimalnyIMaksymalnyNumerParametru(tabela,nazwa_parametru_okreslona, czy_od_zera) local liczba_maksimum=0; local liczba_minimum; for nazwa_parametru,wartosc_parametru in pairs(tabela)do local liczba_z_parametru=mw.ustring.match(nazwa_parametru,"^"..nazwa_parametru_okreslona.."%s(%d+)$") if(liczba_z_parametru)then local liczba=tonumber(liczba_z_parametru) or (czy_od_zera and 0 or 1); liczba=(liczba>0)and liczba or (czy_od_zera and 0 or 1); liczba_maksimum=math.max(liczba_maksimum,liczba); if(not liczba_minimum)then liczba_minimum=liczba; else liczba_minimum=math.min(liczba_minimum,liczba); end; elseif(nazwa_parametru_okreslona==nazwa_parametru)then liczba_maksimum=math.max(liczba_maksimum,(czy_od_zera and 0 or 1)); if(not liczba_minimum)then liczba_minimum=czy_od_zera and 0 or 1; else liczba_minimum=math.min(liczba_minimum,czy_od_zera and 0 or 1); end; end; end; if(not liczba_minimum)then liczba_minimum=1;end; return liczba_minimum,liczba_maksimum; end; p["CzySąParametryNumerowaneSzablonu"] = function(frame) local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNumerowaneTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_sa_elementy_tablicy)then return "tak";end; return; end; p["CzySąElementyNumerowaneTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); for _1,_2 in ipairs(tabela)do if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then return true; end; end; return false; end; p["CzySąParametryNienazwaneSzablonu"] = function(frame) local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNienazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_sa_elementy_tablicy)then return "tak";end; return; end; p["CzySąElementyNienazwaneTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); for _1,_2 in pairs(tabela)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then return true; end; end; end; return false; end; p["CzySąParametryNazwaneSzablonu"] = function(frame) local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_sa_elementy_tablicy)then return "tak";end; return; end; p["CzySąElementyNazwaneTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); for _1,_2 in pairs(tabela)do if(type(_1)~="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then return true; end; end; end; return false; end; p["CzySąParametrySzablonu"] = function(frame) local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_sa_elementy_tablicy)then return "tak";end; return; end; p["CzySąElementyTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); for _1,_2 in pairs(tabela)do if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then return true; end; end; return false; end; p["CzyCoNajwyżejJedenNumerowanyParametrSzablonu"] = function (frame) local parametry_modul=require("Module:Parametry"); local czy_jest_taki_element=parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_jest_taki_element)then return "tak";end; end; p["CzyCoNajwyżejJedenNumerowanyElementTablicy"] = function (args,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); local i=1; local czy=false; for _1,_2 in pairs(args)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then if(_1==1)then czy=true;end; if(i>1)then return false; else i=i+1; end; end; end; end; if((czy)or(i==1))then return true;end; return false; end; p["KopiujTabelęŁańcuchów"]=function(args) local args2={}; local wzor_temp=args["wzór"];local wzor_wszystko=args["wzór wszystko"]; local podstawienie_temp=args.podstawienie;local podstawienie_wszystko=args["podstawienie wszystko"]; local wzor2_temp=args["wzór 2"];local wzor_wszystko_2=args["wzór wszystko 2"]; local przedrostek_temp=args.przedrostek;local przedrostek_wszystko=args["przedrostek wszystko"]; local przyrostek_temp=args.przyrostek;local przyrostek_wszystko=args["przyrostek wszystko"]; for name,value in pairs(args.tabela)do local wzor=wzor_temp and wzor_temp[name] or wzor_wszystko; local podstawienie=wzor and (podstawienie_temp and podstawienie_temp[name] or podstawienie_wszystko) or nil; if(wzor and podstawienie)then value=mw.ustring.gsub(value,wzor,podstawienie);end; local wzor2=wzor2_temp and wzor2_temp[name] or wzor_wszystko_2; if(wzor2)then value=mw.ustring.match(value,wzor2);end; if(value)then local przedrostek=przedrostek_temp and przedrostek_temp[name] or przedrostek_wszystko; local przyrostek=przyrostek_temp and przyrostek_temp[name] or przyrostek_wszystko; args2[name]=(przedrostek or '')..value..(przyrostek or ''); end; end; return args2; end; p["KopiujTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2) local czy_puste_wliczac_1=p.CzyTak(wliczac_1); local czy_puste_wliczac_2=p.CzyTak(wliczac_2); local tabelka2={}; for name,value in pairs(tabelka)do if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then tabelka2[name]=value; end; end; return tabelka2; end; p["KopiujTabelęElementówBezTablicyKluczy"]=function(tabelka,tabelka2,wliczac_1,wliczac_2) local czy_puste_wliczac_1=p.CzyTak(wliczac_1); local czy_puste_wliczac_2=p.CzyTak(wliczac_2); local tabelka3={}; for name,value in pairs(tabelka)do if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then local czy=p.CzyJestTakiKluczTabeli(tabelka2,name); if(not czy)then tabelka3[name]=value; end; end; end; return tabelka3; end; p["KopiujRekurencyjnieTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2) local czy_puste_wliczac_1=p.CzyTak(wliczac_1); local czy_puste_wliczac_2=p.CzyTak(wliczac_2); local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); local kopiuj_metatable=function(value,funkcja,funkcja2) local __metatabelka=getmetatable(value); if((__metatabelka)and(__metatabelka.tablica))then --Dla [[Module:Szablonowe/Potrzebne]] local tabelka_metatable=__metatabelka.tablica(); local __metatabelka2={}; szablonowe_potrzebne_modul.MetaTabelkaSzablonowe(__metatabelka2); local value2={}; setmetatable(value2,__metatabelka2); local tabelka_metatable2=__metatabelka2.tablica(); funkcja2(tabelka_metatable,tabelka_metatable2); funkcja(value2,false); else funkcja(value,true); end; end; local function kopiuj(tabelka,tabelka_nowa) local tabelka2=tabelka_nowa or {}; for name,value in pairs(tabelka)do if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then if(type(value)=="table")then kopiuj_metatable(value,function(value,jak) if(jak)then tabelka2[name]=kopiuj(value); else tabelka2[name]=value; end; end,kopiuj); else tabelka2[name]=value; end; end; end; return tabelka2; end; local tabela_kopiuj={}; kopiuj_metatable(tabelka,function(value,jak) if(jak)then tabela_kopiuj=kopiuj(value); else tabela_kopiuj=value; end; end,kopiuj); return tabela_kopiuj; end; p["NazwanyLiczbą"] = function(frame) local pf=frame:getParent() local numer_parametru=frame.args[1] if(numer_parametru)then numer_parametru=tonumber(numer_parametru); if(numer_parametru and pf.args[numer_parametru])then return "tak" end end; return; end p["NazwanyCiągiem"] = function (frame) local pf=frame:getParent() local klucz_parametru=frame.args[1] if(klucz_parametru)then local klucz_parametru_do_liczby=tonumber(klucz_parametru); if((not klucz_parametru_do_liczby)and(pf.args[klucz_parametru]))then return "tak" end end; return; end; function p.Nazwane(frame) local pf = frame:getParent() for _, nazwa_parametru in ipairs(frame.args)do local wartosc_parametru_nazwanego=pf.args[mw.text.trim(nazwa_parametru)] if(wartosc_parametru_nazwanego)then return "tak" end end return; end function p.Nienazwane(frame) local pf = frame:getParent() for _, wartosc_parametru in ipairs(frame.args)do wartosc_parametru=mw.text.trim(wartosc_parametru) for name, wartosc_parametru2 in pairs(pf.args) do if(type(name)=="number")then if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then return "tak" end end; end end return; end function p.Numerowane(frame) local pf = frame:getParent() for _, wartosc_parametru in ipairs(frame.args)do wartosc_parametru=mw.text.trim(wartosc_parametru) for _, wartosc_parametru2 in ipairs(pf.args) do if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then return "tak" end end end return; end p["Odstępy"] = function(frame) local PobierzParametr=p.PobierzParametr(frame); local nazwa=PobierzParametr(1) or PobierzParametr("nazwa"); local czy=PobierzParametr(2) or PobierzParametr("wewnątrz"); local dolny_myslnik=PobierzParametr(3) or PobierzParametr("dolny-myślnik"); local odstep_spacje=PobierzParametr(4) or PobierzParametr("spacje"); if(not p.CzyTak(nazwa))then return nazwa;end; local m_=(p.CzyTak(odstep_spacje) and "" or "_"); nazwa=mw.ustring.gsub(nazwa,"^[%s"..m_.."]+",""); nazwa=mw.ustring.gsub(nazwa,"[%s"..m_.."]+$","") if(p.CzyTak(czy))then nazwa=mw.ustring.gsub(nazwa,"[%s"..m_.."]+",(p.CzyTak(dolny_myslnik) and "_" or " ")); end; return nazwa; end; function p.DodajElementDoZbioru(tabela,wartosc) if(wartosc==nil)then return; end; if(type(tabela)~="table")then return;end; for _,element_tabeli in pairs(tabela)do if(element_tabeli==wartosc)then return false; end; end; table.insert(tabela,wartosc); return true; end; function p.CzyJestTakiElementNumerowanyTabeli(tabela,wartosc) if(wartosc==nil)then return;end; if(type(tabela)~="table")then return;end; for _, element_tabeli in ipairs(tabela)do if(element_tabeli==wartosc)then return true; end; end; return false; end; function p.CzyJestTakiElementNienazwanyTabeli(tabela,wartosc) if(wartosc==nil)then return;end; if(type(tabela)~="table")then return;end; for name,value in pairs(tabela)do if(type(name)=="number")then if(value==wartosc)then return true; end; end; end; return false; end; function p.CzyJestTakiKluczTabeli(tabela,klucz) if(klucz==nil)then return;end; if(type(tabela)~="table")then return;end; local wartosc=tabela[klucz]; if(wartosc~=nil)then return true;end; return false; end; function p.CzyJestTakiElementTabeli(tabela,klucz,wartosc) if((klucz==nil)or(wartosc==nil))then return;end; if(type(tabela)~="table")then return;end; for __klucz, __wartosc in pairs(tabela)do if((__klucz==klucz)and(__wartosc==wartosc))then return true; end; end; return false; end; p["ŁączDwieTabele"] = function (tabelka1,tabelka2) local parametry_modul=require("Module:Parametry"); return (tabelka2 and parametry_modul["CzySąElementyTablicy"](tabelka2)) and ((tabelka1 and parametry_modul["CzySąElementyTablicy"](tabelka1)) and parametry_modul["ŁączNumerowaneTabele"]{[1]=tabelka1,[2]=tabelka2,} or tabelka2) or tabelka1; end; p["ŁączZbioryElementówNumerowanychDwóchTabel"]=function(tabelka1,tabelka2) local parametry_modul=require("Module:Parametry"); return (tabelka1 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNumerowanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2; end; p["ŁączZbioryElementówNienazwanychDwóchTabel"]=function(tabelka1,tabelka2) local parametry_modul=require("Module:Parametry"); return (tabelka1 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNienazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2; end; p["ŁączZbioryElementówNazwanychDwóchTabel"]=function(tabelka1,tabelka2) local parametry_modul=require("Module:Parametry"); return (tabelka1 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2; end; p["ŁączZbioryNumerowanychElementówNienazwanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNienazwanychElementówNienazwanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNazwanychElementówNienazwanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNumerowanychElementówNumerowanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNienazwanychElementówNumerowanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNazwanychElementówNumerowanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączNumerowaneTabele"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,NazwijElementyNumerowane=true,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączNienazwaneTabele"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,NazwijElementyNumerowane=true,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączTabele"] = function(args,args2) local tabela={}; local par1=(args2.CzyPairsTablic)and pairs or ipairs; local czy_number_nie_tylko_tablic=(not args2.CzyPairsTablic)and true or false; local par2=(args2["CzyPairsElementówTablic"])and pairs or ipairs; local czy_number_nie_tylko_elementow_tablic=(not args2["CzyPairsElementówTablic"])and true or false; local czy_nazwane=(args2.CzyNazwaneElementyTabel)and true or false; local czy_nie_tylko_nazwane=(not args2.CzyTylkoNazwaneElementyTabel)and true or false; local nazwij_elementy_numerowane=(args2.NazwijElementyNumerowane) and true or false; for licznik, args_tabeli in par1(args)do if(((czy_number_nie_tylko_tablic)or(type(licznik)=="number"))and(type(args_tabeli)=="table"))then for name,value in par2(args_tabeli)do if((czy_nie_tylko_nazwane)and((czy_number_nie_tylko_elementow_tablic)or(type(name)=="number")))then if(nazwij_elementy_numerowane)then if(not tabela[name])then tabela[name]=value;end; else table.insert(tabela,value); end; elseif((czy_nazwane)and(czy_nie_tylko_nazwane or ((not czy_nie_tylko_nazwane)and(type(name)~="number"))))then if(not tabela[name])then tabela[name]=value;end; end; end; end; end; return tabela; end; p["UsuńElementyTabeli"]=function(tabelka_1,tabelka_2) if(not tabelka_1)then return nil;end; if(not tabelka_2)then return tabelka_1;end; for name,_ in pairs(tabelka_1)do if(tabelka_2[name]~=nil)then tabelka_1[name]=nil; end; end; return tabelka_1; end; p["TwórzTabelęBezPowtarzającychKluczyTabel"]=function(args) local tabela_poczatkowa=args[1]; local tabela={}; local lens=#args; for name,value in pairs(tabela_poczatkowa)do local yes=false; for i=2,lens,1 do if(args[i][name]~=nil)then yes=true; break; end; end; if(not yes)then tabela[name]=value; end; end; return tabela; end; function p.TypeTable(zmienna) return (type(zmienna)=="table"); end; function p.TypeFunction(zmienna) return (type(zmienna)=="function"); end; function p.TypeString(zmienna) return (type(zmienna)=="string"); end; function p.TypeBoolean(zmienna) return (type(zmienna)=="boolean"); end; function p.TypeNumber(zmienna) return (type(zmienna)=="number"); end; function p.TypeNil(zmienna) return (zmienna==nil); end; local function CzyTakSilnik(args,funkcja) local parametry_modul=require("Module:Parametry"); local parametr=p.CzyTak(args[2]) and require("Module:"..args[2])[args[1]] or args[1]; local argsfun; if(p.CzyTak(args[2]))then for name,value in pairs(args)do local typen=(type(name)=="number"); if(((typen)and((name~=1)and(name~=2)))or(not typen))then if(not argsfun)then argsfun={};end; argsfun[(typen and name>2) and (name-2) or name]=value; end; end; else parametr=tonumber(parametr) or parametr; if(type(parametr)=="string")then local parametr2=parametry_modul["Odstępy"](parametr); if(parametr2=="true")then parametr=true; elseif(parametr2=="false")then parametr=false; elseif(parametr2=="nil")then parametr=nil; else parametr=tonumber(parametr2) or parametr; end; end; end; return (parametry_modul[funkcja]{[1]=parametr,[2]=argsfun,})and "tak" or nil; end; p["CzyTakCiąg"]=function(...) local frame_parametry={...}; local frame=(#frame_parametry>1)and frame_parametry or frame_parametry[1]; local czy_table=p.TypeTable(frame); if((czy_table and (not frame.getParent)) or (not czy_table))then local PobierzParametr=p.PobierzParametr(frame); local ciag=PobierzParametr("ciąg") or PobierzParametr(1); local parametry=PobierzParametr("parametry") or PobierzParametr(2); local parametry_modul=require("Module:Parametry"); return ciag and p.CzyTak{[1]=(p.TypeString(ciag) and parametry_modul["Odstępy"]{[1]=ciag,[2]="tak",} or ciag),[2]=parametry,} or false; else local args=p.PobierzArgsParametry(frame); return CzyTakSilnik(args,"CzyTakCiąg"); end; end; function p.CzyTak(...) local frame_parametry={...}; local frame=(#frame_parametry>1)and frame_parametry or frame_parametry[1]; local czy_table=p.TypeTable(frame); if((czy_table and (not frame.getParent)) or (not czy_table))then local PobierzParametr=p.PobierzParametr(frame); local zmienna;local parametry; if(czy_table)then local zmienna_temp=PobierzParametr("zmienna") or PobierzParametr(1); zmienna=zmienna_temp or frame; parametry=zmienna_temp and (PobierzParametr("parametry") or PobierzParametr(2)) or nil; else zmienna=frame; parametry=nil; end; if(zmienna~=nil)then if(p.TypeString(zmienna))then if(zmienna~="")then return "tak"; else return nil; end; elseif(p.TypeNumber(zmienna))then if(zmienna~=0)then return "tak"; else return nil; end; elseif(p.TypeBoolean(zmienna))then return (zmienna and "tak" or nil); elseif(p.TypeTable(zmienna))then local parametry_modul=require("Module:Parametry"); return (parametry_modul["CzySąElementyTablicy"](zmienna) and "tak" or nil); elseif(p.TypeFunction(zmienna))then return (zmienna(parametry) and "tak" or nil); else return nil; end; else return nil; end; else local args=p.PobierzArgsParametry(frame); return CzyTakSilnik(args,"CzyTak"); end; end; function p.PobierzFrameEwentualnieParent(frame) return (frame.getParent and (p.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame); end; function p.PobierzArgsParametry(frame, czy_nie_tablica_jako_tablica) local TempFunc=function(frame) local pf=p.PobierzFrameEwentualnieParent(frame); local args=pf.args; if(p.TypeTable(args))then return args; else return nil; end; end; if(not p.TypeNil(frame))then return p.TypeTable(frame) and (TempFunc(frame) or frame) or ((czy_nie_tablica_jako_tablica)and {frame,} or frame); else return {}; end; end; function p.PobierzParametryRamki(frame) local TempFun1=function(tablica) return function(nazwa) return tablica[nazwa]; end; end; local TempFun2=function(wartosc) local tak=true; return function(nazwa) if(tak)then tak=false; return wartosc; end; return nil; end; end; local tablica_parametrow_ramki=p.TypeTable(frame) and (p.TypeTable(frame.args) and TempFun1(frame.args) or TempFun1(frame)) or TempFun2(frame); return function(nazwa) return tablica_parametrow_ramki(nazwa); end; end; function p.PobierzElementNumerowanyZFrameLubTablicy(frame) local tablica_parametrow_funkcji=p.TypeTable(frame[1]) and p.TypeTable(frame[1].args)and frame[1].args or frame; return function(nazwa) local wartosc=tablica_parametrow_funkcji[nazwa]; return wartosc; end; end; function p.PobierzParametr(frame,czy_frame_lub_parent,czy_frame) local __pobierz_parametr_table_args=nil; if(not p.TypeNil(frame))then if(p.TypeTable(frame))then local tak_frame_lub_parent=p.CzyTak(czy_frame_lub_parent); if((not tak_frame_lub_parent)or(not frame.getParent))then local __pobierz_parametr_table_args_temp=p.CzyTak(czy_frame) and frame.args or p.PobierzArgsParametry(frame); __pobierz_parametr_table_args=function(nazwa) return __pobierz_parametr_table_args_temp[nazwa or 1],1; end; elseif(tak_frame_lub_parent)then local pf=(frame.getParent)and frame:getParent() or nil; __pobierz_parametr_table_args=function(nazwa) local wartosc=frame.args[nazwa or 1] or (pf and pf.args[nazwa or 1] or nil); return wartosc,2; end; end; else local tak=true; __pobierz_parametr_table_args=function(nazwa) if(tak)then tak=false; return frame,0; end; return nil,0; end; end; else __pobierz_parametr_table_args=function(nazwa) return nil,0; end; end; return function(nazwa) return __pobierz_parametr_table_args(nazwa); end; end; function p.And(frame) local czy="tak"; local parametry_modul=require("Module:Parametry"); local wartosc_uzyskana=nil; for _,wartosc in ipairs(frame.args)do czy=czy and parametry_modul["CzyTakCiąg"](wartosc); if(not czy)then return nil;end; wartosc_uzyskana=wartosc; end; return czy and wartosc_uzyskana or nil; end; function p.Or(frame) local czy=nil; for _,wartosc in ipairs(frame.args)do czy=czy or p["CzyTakCiąg"](wartosc); if(czy)then return wartosc;end; end; return nil; end; function p.Not(frame) local parametry_modul=require("Module:Parametry"); return (not parametry_modul["CzyTakCiąg"](frame.args[1]))and "tak" or nil; end; function p.Mniejszy(frame) local wyraz1=tonumber(frame.args[1]) or 0; local wyraz2=tonumber(frame.args[2]) or 0; if(wyraz1<wyraz2)then return "tak"; end; return; end; function p.IlePodano(frame) local args=frame.args; local args2=frame:getParent().args; local licznik=0; for _,name in pairs(args)do if(args2[name])then licznik=licznik+1; end; end; return licznik; end; p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter={}; function p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter.__index(t,klucz) local html_modul=require("Module:Html"); klucz=html_modul.DecodeKoduHTMLZnaku(klucz); klucz=p["Odstępy"]{[1]=klucz,[2]="tak",}; klucz=mw.ustring.lower(klucz); return rawget(t,klucz); end; function p.IteratorPoNumerowanychElementachTablicy(t) local i=1; return function() local v=t[i]; if(v~=nil)then i=i+1;end; return v; end; end; p.IteratorKluczeTabeliAlfabetycznieSortujDoPrzodu=function(tabela,funkcja) local keys={}; for name,_ in next,tabela do table.insert(keys,name); end; table.sort(keys,funkcja); return function(tablica,klucz) if(klucz==nil)then return keys[1];end; for k,_ in ipairs(keys)do if(keys[k]==klucz)then return keys[k+1]; end; end; end; end; function p.Max(...) local frame={...}; local PobierzElement=p.PobierzElementNumerowanyZFrameLubTablicy(frame); local parametr1=tonumber(PobierzElement(1)); local parametr2=tonumber(PobierzElement(2)); return math.max(parametr1,parametr2); end; function p.Min(...) local frame={...}; local PobierzElement=p.PobierzElementNumerowanyZFrameLubTablicy(frame); local parametr1=tonumber(PobierzElement(1)); local parametr2=tonumber(PobierzElement(2)); return math.min(parametr1,parametr2); end; return p; pk650bksnopcgqvyd1yxk5b1bm0dxx6 543819 543812 2026-05-22T05:29:39Z Persino 2851 Anulowano wersję [[Special:Diff/543812|543812]] autorstwa [[Special:Contributions/Persino|Persino]] ([[User talk:Persino|dyskusja]]) 543819 Scribunto text/plain local p={}; p["LiczbaElementówNumerowanychTablicy"]=function(tabela, wliczac,mnoga) local liczba_elementow_ponumerowanych_w_tablicy=0; local czy_puste_wliczac=p.CzyTak(wliczac); local czy_mnoga=p.CzyTak(mnoga); for _1,_2 in ipairs(tabela)do if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1; if((czy_mnoga)and(liczba_elementow_ponumerowanych_w_tablicy>1))then return liczba_elementow_ponumerowanych_w_tablicy;end; end; end; return liczba_elementow_ponumerowanych_w_tablicy; end; p["LiczbaElementówNumerowanychSzablonu"]=function(frame) local parametry_modul=require("Module:Parametry"); return parametry_modul["LiczbaElementówNumerowanychTablicy"](frame:getParent().args,frame.args["niepuste"],frame.args["mnoga"]); end; p["LiczbaElementówNienazwanychTablicy"] = function(tabela,wliczac,mnoga) local czy_puste_wliczac=p.CzyTak(wliczac); local czy_mnoga=p.CzyTak(mnoga); local liczba_elementow_nienazwanych_w_tablicy=0; for _1,_2 in pairs(tabela)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then liczba_elementow_nienazwanych_w_tablicy=liczba_elementow_nienazwanych_w_tablicy+1; if((czy_mnoga)and(liczba_elementow_nienazwanych_w_tablicy>1))then return liczba_elementow_nienazwanych_w_tablicy;end; end; end; end; return liczba_elementow_nienazwanych_w_tablicy; end; p["LiczbaParametrówNienazwanychSzablonu"] = function (frame) return p["LiczbaElementówNienazwanychTablicy"](frame:getParent().args,frame.args["niepuste"],frame.args["mnoga"]) end; p["LiczbaElementówTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); local liczba_elementow_w_tablicy=0; for _1,_2 in pairs(tabela)do if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1; end; end; return liczba_elementow_w_tablicy; end; p["LiczbaElementówNienazwanychZPrzedrostkiemLubNieTablicy"]=function(tabela,przedrostek,wliczac,czy_formy_numerkowe) local czy_puste_wliczac=p.CzyTak(wliczac); local liczba_elementow_w_tablicy=0; local techniczne_modul=require("Module:Techniczne"); local wzor="^"..techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](przedrostek).."(%d+)$"; for _1,_2 in pairs(tabela)do local string_liczba=tonumber(_1) or nil; local czy_liczba=((string_liczba)and(czy_formy_numerkowe or p.TypeNumber(_1))and(string_liczba>0)); local zmienna=czy_liczba and przedrostek.._1 or nil; local element=(czy_liczba and tabela[zmienna] or nil) or (czy_liczba and tabela[_1] or (mw.ustring.match(tostring(_1),wzor) and tabela[_1] or nil) ); if(element)then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(element~="")))then liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1; end; end; end; return liczba_elementow_w_tablicy; end; function p.MaksymalnaLiczbaParametruNienazwanegoSzablonu(frame) return p.MaksymalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]); end; function p.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabela, wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); local liczba_elementow_ponumerowanych_w_tablicy=0; for _1,_2 in pairs(tabela)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then liczba_elementow_ponumerowanych_w_tablicy=math.max(liczba_elementow_ponumerowanych_w_tablicy,_1); end; end; end; return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 0; end; function p.MinimalnaLiczbaParametruNienazwanegoSzablonu(frame) return p.MinimalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]); end; function p.MinimalnaLiczbaParametruNienazwanegoTablicy(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); local liczba_elementow_ponumerowanych_w_tablicy; for _1,_2 in pairs(tabela)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then if(not liczba_elementow_ponumerowanych_w_tablicy)then liczba_elementow_ponumerowanych_w_tablicy=_1; else liczba_elementow_ponumerowanych_w_tablicy=math.min(liczba_elementow_ponumerowanych_w_tablicy,_1); end; end; end; end; return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 1; end; function p.MinimalnyIMaksymalnyNumerParametru(tabela,nazwa_parametru_okreslona, czy_od_zera) local liczba_maksimum=0; local liczba_minimum; for nazwa_parametru,wartosc_parametru in pairs(tabela)do local liczba_z_parametru=mw.ustring.match(nazwa_parametru,"^"..nazwa_parametru_okreslona.."%s(%d+)$") if(liczba_z_parametru)then local liczba=tonumber(liczba_z_parametru) or (czy_od_zera and 0 or 1); liczba=(liczba>0)and liczba or (czy_od_zera and 0 or 1); liczba_maksimum=math.max(liczba_maksimum,liczba); if(not liczba_minimum)then liczba_minimum=liczba; else liczba_minimum=math.min(liczba_minimum,liczba); end; elseif(nazwa_parametru_okreslona==nazwa_parametru)then liczba_maksimum=math.max(liczba_maksimum,(czy_od_zera and 0 or 1)); if(not liczba_minimum)then liczba_minimum=czy_od_zera and 0 or 1; else liczba_minimum=math.min(liczba_minimum,czy_od_zera and 0 or 1); end; end; end; if(not liczba_minimum)then liczba_minimum=1;end; return liczba_minimum,liczba_maksimum; end; p["CzySąParametryNumerowaneSzablonu"] = function(frame) local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNumerowaneTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_sa_elementy_tablicy)then return "tak";end; return; end; p["CzySąElementyNumerowaneTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); for _1,_2 in ipairs(tabela)do if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then return true; end; end; return false; end; p["CzySąParametryNienazwaneSzablonu"] = function(frame) local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNienazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_sa_elementy_tablicy)then return "tak";end; return; end; p["CzySąElementyNienazwaneTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); for _1,_2 in pairs(tabela)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then return true; end; end; end; return false; end; p["CzySąParametryNazwaneSzablonu"] = function(frame) local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_sa_elementy_tablicy)then return "tak";end; return; end; p["CzySąElementyNazwaneTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); for _1,_2 in pairs(tabela)do if(type(_1)~="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then return true; end; end; end; return false; end; p["CzySąParametrySzablonu"] = function(frame) local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_sa_elementy_tablicy)then return "tak";end; return; end; p["CzySąElementyTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); for _1,_2 in pairs(tabela)do if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then return true; end; end; return false; end; p["CzyCoNajwyżejJedenNumerowanyParametrSzablonu"] = function (frame) local parametry_modul=require("Module:Parametry"); local czy_jest_taki_element=parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_jest_taki_element)then return "tak";end; end; p["CzyCoNajwyżejJedenNumerowanyElementTablicy"] = function (args,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); local i=1; local czy=false; for _1,_2 in pairs(args)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then if(_1==1)then czy=true;end; if(i>1)then return false; else i=i+1; end; end; end; end; if((czy)or(i==1))then return true;end; return false; end; p["KopiujTabelęŁańcuchów"]=function(args) local args2={}; local wzor_temp=args["wzór"];local wzor_wszystko=args["wzór wszystko"]; local podstawienie_temp=args.podstawienie;local podstawienie_wszystko=args["podstawienie wszystko"]; local wzor2_temp=args["wzór 2"];local wzor_wszystko_2=args["wzór wszystko 2"]; local przedrostek_temp=args.przedrostek;local przedrostek_wszystko=args["przedrostek wszystko"]; local przyrostek_temp=args.przyrostek;local przyrostek_wszystko=args["przyrostek wszystko"]; for name,value in pairs(args.tabela)do local wzor=wzor_temp and wzor_temp[name] or wzor_wszystko; local podstawienie=wzor and (podstawienie_temp and podstawienie_temp[name] or podstawienie_wszystko) or nil; if(wzor and podstawienie)then value=mw.ustring.gsub(value,wzor,podstawienie);end; local wzor2=wzor2_temp and wzor2_temp[name] or wzor_wszystko_2; if(wzor2)then value=mw.ustring.match(value,wzor2);end; if(value)then local przedrostek=przedrostek_temp and przedrostek_temp[name] or przedrostek_wszystko; local przyrostek=przyrostek_temp and przyrostek_temp[name] or przyrostek_wszystko; args2[name]=(przedrostek or '')..value..(przyrostek or ''); end; end; return args2; end; p["KopiujTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2) local czy_puste_wliczac_1=p.CzyTak(wliczac_1); local czy_puste_wliczac_2=p.CzyTak(wliczac_2); local tabelka2={}; for name,value in pairs(tabelka)do if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then tabelka2[name]=value; end; end; return tabelka2; end; p["KopiujTabelęElementówBezTablicyKluczy"]=function(tabelka,tabelka2,wliczac_1,wliczac_2) local czy_puste_wliczac_1=p.CzyTak(wliczac_1); local czy_puste_wliczac_2=p.CzyTak(wliczac_2); local tabelka3={}; for name,value in pairs(tabelka)do if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then local czy=p.CzyJestTakiKluczTabeli(tabelka2,name); if(not czy)then tabelka3[name]=value; end; end; end; return tabelka3; end; p["KopiujRekurencyjnieTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2) local czy_puste_wliczac_1=p.CzyTak(wliczac_1); local czy_puste_wliczac_2=p.CzyTak(wliczac_2); local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); local kopiuj_metatable=function(value,funkcja,funkcja2) local __metatabelka=getmetatable(value); if((__metatabelka)and(__metatabelka.tablica))then --Dla [[Module:Szablonowe/Potrzebne]] local tabelka_metatable=__metatabelka.tablica(); local __metatabelka2={}; szablonowe_potrzebne_modul.MetaTabelkaSzablonowe(__metatabelka2); local value2={}; setmetatable(value2,__metatabelka2); local tabelka_metatable2=__metatabelka2.tablica(); funkcja2(tabelka_metatable,tabelka_metatable2); funkcja(value2,false); else funkcja(value,true); end; end; local function kopiuj(tabelka,tabelka_nowa) local tabelka2=tabelka_nowa or {}; for name,value in pairs(tabelka)do if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then if(type(value)=="table")then kopiuj_metatable(value,function(value,jak) if(jak)then tabelka2[name]=kopiuj(value); else tabelka2[name]=value; end; end,kopiuj); else tabelka2[name]=value; end; end; end; return tabelka2; end; local tabela_kopiuj={}; kopiuj_metatable(tabelka,function(value,jak) if(jak)then tabela_kopiuj=kopiuj(value); else tabela_kopiuj=value; end; end,kopiuj); return tabela_kopiuj; end; p["NazwanyLiczbą"] = function(frame) local pf=frame:getParent() local numer_parametru=frame.args[1] if(numer_parametru)then numer_parametru=tonumber(numer_parametru); if(numer_parametru and pf.args[numer_parametru])then return "tak" end end; return; end p["NazwanyCiągiem"] = function (frame) local pf=frame:getParent() local klucz_parametru=frame.args[1] if(klucz_parametru)then local klucz_parametru_do_liczby=tonumber(klucz_parametru); if((not klucz_parametru_do_liczby)and(pf.args[klucz_parametru]))then return "tak" end end; return; end; function p.Nazwane(frame) local pf = frame:getParent() for _, nazwa_parametru in ipairs(frame.args)do local wartosc_parametru_nazwanego=pf.args[mw.text.trim(nazwa_parametru)] if(wartosc_parametru_nazwanego)then return "tak" end end return; end function p.Nienazwane(frame) local pf = frame:getParent() for _, wartosc_parametru in ipairs(frame.args)do wartosc_parametru=mw.text.trim(wartosc_parametru) for name, wartosc_parametru2 in pairs(pf.args) do if(type(name)=="number")then if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then return "tak" end end; end end return; end function p.Numerowane(frame) local pf = frame:getParent() for _, wartosc_parametru in ipairs(frame.args)do wartosc_parametru=mw.text.trim(wartosc_parametru) for _, wartosc_parametru2 in ipairs(pf.args) do if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then return "tak" end end end return; end p["Odstępy"] = function(frame) local PobierzParametr=p.PobierzParametr(frame); local nazwa=PobierzParametr(1) or PobierzParametr("nazwa"); local czy=PobierzParametr(2) or PobierzParametr("wewnątrz"); local dolny_myslnik=PobierzParametr(3) or PobierzParametr("dolny-myślnik"); local odstep_spacje=PobierzParametr(4) or PobierzParametr("spacje"); if(not p.CzyTak(nazwa))then return nazwa;end; local m_=(p.CzyTak(odstep_spacje) and "" or "_"); nazwa=mw.ustring.gsub(nazwa,"^[%s"..m_.."]+",""); nazwa=mw.ustring.gsub(nazwa,"[%s"..m_.."]+$","") if(p.CzyTak(czy))then nazwa=mw.ustring.gsub(nazwa,"[%s"..m_.."]+",(p.CzyTak(dolny_myslnik) and "_" or " ")); end; return nazwa; end; function p.DodajElementDoZbioru(tabela,wartosc) if(wartosc==nil)then return; end; if(type(tabela)~="table")then return;end; for _,element_tabeli in pairs(tabela)do if(element_tabeli==wartosc)then return false; end; end; table.insert(tabela,wartosc); return true; end; function p.CzyJestTakiElementNumerowanyTabeli(tabela,wartosc) if(wartosc==nil)then return;end; if(type(tabela)~="table")then return;end; for _, element_tabeli in ipairs(tabela)do if(element_tabeli==wartosc)then return true; end; end; return false; end; function p.CzyJestTakiElementNienazwanyTabeli(tabela,wartosc) if(wartosc==nil)then return;end; if(type(tabela)~="table")then return;end; for name,value in pairs(tabela)do if(type(name)=="number")then if(value==wartosc)then return true; end; end; end; return false; end; function p.CzyJestTakiKluczTabeli(tabela,klucz) if(klucz==nil)then return;end; if(type(tabela)~="table")then return;end; local wartosc=tabela[klucz]; if(wartosc~=nil)then return true;end; return false; end; function p.CzyJestTakiElementTabeli(tabela,klucz,wartosc) if((klucz==nil)or(wartosc==nil))then return;end; if(type(tabela)~="table")then return;end; for __klucz, __wartosc in pairs(tabela)do if((__klucz==klucz)and(__wartosc==wartosc))then return true; end; end; return false; end; p["ŁączDwieTabele"] = function (tabelka1,tabelka2) local parametry_modul=require("Module:Parametry"); return (tabelka2 and parametry_modul["CzySąElementyTablicy"](tabelka2)) and ((tabelka1 and parametry_modul["CzySąElementyTablicy"](tabelka1)) and parametry_modul["ŁączNumerowaneTabele"]{[1]=tabelka1,[2]=tabelka2,} or tabelka2) or tabelka1; end; p["ŁączZbioryElementówNumerowanychDwóchTabel"]=function(tabelka1,tabelka2) local parametry_modul=require("Module:Parametry"); return (tabelka1 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNumerowanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2; end; p["ŁączZbioryElementówNienazwanychDwóchTabel"]=function(tabelka1,tabelka2) local parametry_modul=require("Module:Parametry"); return (tabelka1 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNienazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2; end; p["ŁączZbioryElementówNazwanychDwóchTabel"]=function(tabelka1,tabelka2) local parametry_modul=require("Module:Parametry"); return (tabelka1 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2; end; p["ŁączZbioryNumerowanychElementówNienazwanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNienazwanychElementówNienazwanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNazwanychElementówNienazwanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNumerowanychElementówNumerowanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNienazwanychElementówNumerowanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNazwanychElementówNumerowanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączNumerowaneTabele"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,NazwijElementyNumerowane=true,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączNienazwaneTabele"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,NazwijElementyNumerowane=true,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączTabele"] = function(args,args2) local tabela={}; local par1=(args2.CzyPairsTablic)and pairs or ipairs; local czy_number_nie_tylko_tablic=(not args2.CzyPairsTablic)and true or false; local par2=(args2["CzyPairsElementówTablic"])and pairs or ipairs; local czy_number_nie_tylko_elementow_tablic=(not args2["CzyPairsElementówTablic"])and true or false; local czy_nazwane=(args2.CzyNazwaneElementyTabel)and true or false; local czy_nie_tylko_nazwane=(not args2.CzyTylkoNazwaneElementyTabel)and true or false; local nazwij_elementy_numerowane=(args2.NazwijElementyNumerowane) and true or false; for licznik, args_tabeli in par1(args)do if(((czy_number_nie_tylko_tablic)or(type(licznik)=="number"))and(type(args_tabeli)=="table"))then for name,value in par2(args_tabeli)do if((czy_nie_tylko_nazwane)and((czy_number_nie_tylko_elementow_tablic)or(type(name)=="number")))then if(nazwij_elementy_numerowane)then if(not tabela[name])then tabela[name]=value;end; else table.insert(tabela,value); end; elseif((czy_nazwane)and(czy_nie_tylko_nazwane or ((not czy_nie_tylko_nazwane)and(type(name)~="number"))))then if(not tabela[name])then tabela[name]=value;end; end; end; end; end; return tabela; end; p["UsuńElementyTabeli"]=function(tabelka_1,tabelka_2) if(not tabelka_1)then return nil;end; if(not tabelka_2)then return tabelka_1;end; for name,_ in pairs(tabelka_1)do if(tabelka_2[name]~=nil)then tabelka_1[name]=nil; end; end; return tabelka_1; end; p["TwórzTabelęBezPowtarzającychKluczyTabel"]=function(args) local tabela_poczatkowa=args[1]; local tabela={}; local lens=#args; for name,value in pairs(tabela_poczatkowa)do local yes=false; for i=2,lens,1 do if(args[i][name]~=nil)then yes=true; break; end; end; if(not yes)then tabela[name]=value; end; end; return tabela; end; function p.TypeTable(zmienna) return (type(zmienna)=="table"); end; function p.TypeFunction(zmienna) return (type(zmienna)=="function"); end; function p.TypeString(zmienna) return (type(zmienna)=="string"); end; function p.TypeBoolean(zmienna) return (type(zmienna)=="boolean"); end; function p.TypeNumber(zmienna) return (type(zmienna)=="number"); end; function p.TypeNil(zmienna) return (zmienna==nil); end; local function CzyTakSilnik(args,funkcja) local parametry_modul=require("Module:Parametry"); local parametr=p.CzyTak(args[2]) and require("Module:"..args[2])[args[1]] or args[1]; local argsfun; if(p.CzyTak(args[2]))then for name,value in pairs(args)do local typen=(type(name)=="number"); if(((typen)and((name~=1)and(name~=2)))or(not typen))then if(not argsfun)then argsfun={};end; argsfun[(typen and name>2) and (name-2) or name]=value; end; end; else parametr=tonumber(parametr) or parametr; if(type(parametr)=="string")then local parametr2=parametry_modul["Odstępy"](parametr); if(parametr2=="true")then parametr=true; elseif(parametr2=="false")then parametr=false; elseif(parametr2=="nil")then parametr=nil; else parametr=tonumber(parametr2) or parametr; end; end; end; return (parametry_modul[funkcja]{[1]=parametr,[2]=argsfun,})and "tak" or nil; end; p["CzyTakCiąg"]=function(...) local frame_parametry={...}; local frame=(#frame_parametry>1)and frame_parametry or frame_parametry[1]; local czy_table=p.TypeTable(frame); if((czy_table and (not frame.getParent)) or (not czy_table))then local PobierzParametr=p.PobierzParametr(frame); local ciag=PobierzParametr("ciąg") or PobierzParametr(1); local parametry=PobierzParametr("parametry") or PobierzParametr(2); local parametry_modul=require("Module:Parametry"); return ciag and p.CzyTak{[1]=(p.TypeString(ciag) and parametry_modul["Odstępy"]{[1]=ciag,[2]="tak",} or ciag),[2]=parametry,} or false; else local args=p.PobierzArgsParametry(frame); return CzyTakSilnik(args,"CzyTakCiąg"); end; end; function p.CzyTak(...) local frame_parametry={...}; local frame=(#frame_parametry>1)and frame_parametry or frame_parametry[1]; local czy_table=p.TypeTable(frame); if((czy_table and (not frame.getParent)) or (not czy_table))then local PobierzParametr=p.PobierzParametr(frame); local zmienna;local parametry; if(czy_table)then local zmienna_temp=PobierzParametr("zmienna") or PobierzParametr(1); zmienna=zmienna_temp or frame; parametry=zmienna_temp and (PobierzParametr("parametry") or PobierzParametr(2)) or nil; else zmienna=frame; parametry=nil; end; if(zmienna~=nil)then if(p.TypeString(zmienna))then if(zmienna~="")then return "tak"; else return nil; end; elseif(p.TypeNumber(zmienna))then if(zmienna~=0)then return "tak"; else return nil; end; elseif(p.TypeBoolean(zmienna))then return (zmienna and "tak" or nil); elseif(p.TypeTable(zmienna))then local parametry_modul=require("Module:Parametry"); return (parametry_modul["CzySąElementyTablicy"](zmienna) and "tak" or nil); elseif(p.TypeFunction(zmienna))then return (zmienna(parametry) and "tak" or nil); else return nil; end; else return nil; end; else local args=p.PobierzArgsParametry(frame); return CzyTakSilnik(args,"CzyTak"); end; end; function p.PobierzFrameEwentualnieParent(frame) return (frame.getParent and (p.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame); end; function p.PobierzArgsParametry(frame, czy_nie_tablica_jako_tablica) local TempFunc=function(frame) local pf=p.PobierzFrameEwentualnieParent(frame); local args=pf.args; if(p.TypeTable(args))then return args; else return nil; end; end; if(not p.TypeNil(frame))then return p.TypeTable(frame) and (TempFunc(frame) or frame) or ((czy_nie_tablica_jako_tablica)and {frame,} or frame); else return {}; end; end; function p.PobierzParametryRamki(frame) local TempFun1=function(tablica) return function(nazwa) return tablica[nazwa]; end; end; local TempFun2=function(wartosc) local tak=true; return function(nazwa) if(tak)then tak=false; return wartosc; end; return nil; end; end; local tablica_parametrow_ramki=p.TypeTable(frame) and (p.TypeTable(frame.args) and TempFun1(frame.args) or TempFun1(frame)) or TempFun2(frame); return function(nazwa) return tablica_parametrow_ramki(nazwa); end; end; function p.PobierzElementNumerowanyZFrameLubTablicy(frame) local tablica_parametrow_funkcji=p.TypeTable(frame[1]) and p.TypeTable(frame[1].args)and frame[1].args or frame; return function(nazwa) local wartosc=tablica_parametrow_funkcji[nazwa]; return wartosc; end; end; function p.PobierzParametr(frame,czy_frame_lub_parent,czy_frame) local __pobierz_parametr_table_args=nil; if(not p.TypeNil(frame))then if(p.TypeTable(frame))then local tak_frame_lub_parent=p.CzyTak(czy_frame_lub_parent); if((not tak_frame_lub_parent)or(not frame.getParent))then local __pobierz_parametr_table_args_temp=p.CzyTak(czy_frame) and frame.args or p.PobierzArgsParametry(frame); __pobierz_parametr_table_args=function(nazwa) return __pobierz_parametr_table_args_temp[nazwa or 1],1; end; elseif(tak_frame_lub_parent)then local pf=(frame.getParent)and frame:getParent() or nil; __pobierz_parametr_table_args=function(nazwa) local wartosc=frame.args[nazwa or 1] or (pf and pf.args[nazwa or 1] or nil); return wartosc,2; end; end; else local tak=true; __pobierz_parametr_table_args=function(nazwa) if(tak)then tak=false; return frame,0; end; return nil,0; end; end; else __pobierz_parametr_table_args=function(nazwa) return nil,0; end; end; return function(nazwa) return __pobierz_parametr_table_args(nazwa); end; end; function p.And(frame) local czy="tak"; local parametry_modul=require("Module:Parametry"); local wartosc_uzyskana=nil; for _,wartosc in ipairs(frame.args)do czy=czy and parametry_modul["CzyTakCiąg"](wartosc); if(not czy)then return nil;end; wartosc_uzyskana=wartosc; end; return czy and wartosc_uzyskana or nil; end; function p.Or(frame) local czy=nil; for _,wartosc in ipairs(frame.args)do czy=czy or p["CzyTakCiąg"](wartosc); if(czy)then return wartosc;end; end; return nil; end; function p.Not(frame) local parametry_modul=require("Module:Parametry"); return (not parametry_modul["CzyTakCiąg"](frame.args[1]))and "tak" or nil; end; function p.Mniejszy(frame) local wyraz1=tonumber(frame.args[1]) or 0; local wyraz2=tonumber(frame.args[2]) or 0; if(wyraz1<wyraz2)then return "tak"; end; return; end; function p.IlePodano(frame) local args=frame.args; local args2=frame:getParent().args; local licznik=0; for _,name in pairs(args)do if(args2[name])then licznik=licznik+1; end; end; return licznik; end; p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter={}; function p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter.__index(t,klucz) local html_modul=require("Module:Html"); klucz=html_modul.DecodeKoduHTMLZnaku(klucz); klucz=mw.ustring.gsub(klucz,"[%s_]+",""); klucz=mw.ustring.lower(klucz); return rawget(t,klucz); end; function p.IteratorPoNumerowanychElementachTablicy(t) local i=1; return function() local v=t[i]; if(v~=nil)then i=i+1;end; return v; end; end; p.IteratorKluczeTabeliAlfabetycznieSortujDoPrzodu=function(tabela,funkcja) local keys={}; for name,_ in next,tabela do table.insert(keys,name); end; table.sort(keys,funkcja); return function(tablica,klucz) if(klucz==nil)then return keys[1];end; for k,_ in ipairs(keys)do if(keys[k]==klucz)then return keys[k+1]; end; end; end; end; function p.Max(...) local frame={...}; local PobierzElement=p.PobierzElementNumerowanyZFrameLubTablicy(frame); local parametr1=tonumber(PobierzElement(1)); local parametr2=tonumber(PobierzElement(2)); return math.max(parametr1,parametr2); end; function p.Min(...) local frame={...}; local PobierzElement=p.PobierzElementNumerowanyZFrameLubTablicy(frame); local parametr1=tonumber(PobierzElement(1)); local parametr2=tonumber(PobierzElement(2)); return math.min(parametr1,parametr2); end; return p; 8a2lo2a003g36qmr054698kg8s5ibox 543828 543819 2026-05-22T06:59:09Z Persino 2851 Anulowano wersję [[Special:Diff/543819|543819]] autorstwa [[Special:Contributions/Persino|Persino]] ([[User talk:Persino|dyskusja]]) 543828 Scribunto text/plain local p={}; p["LiczbaElementówNumerowanychTablicy"]=function(tabela, wliczac,mnoga) local liczba_elementow_ponumerowanych_w_tablicy=0; local czy_puste_wliczac=p.CzyTak(wliczac); local czy_mnoga=p.CzyTak(mnoga); for _1,_2 in ipairs(tabela)do if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1; if((czy_mnoga)and(liczba_elementow_ponumerowanych_w_tablicy>1))then return liczba_elementow_ponumerowanych_w_tablicy;end; end; end; return liczba_elementow_ponumerowanych_w_tablicy; end; p["LiczbaElementówNumerowanychSzablonu"]=function(frame) local parametry_modul=require("Module:Parametry"); return parametry_modul["LiczbaElementówNumerowanychTablicy"](frame:getParent().args,frame.args["niepuste"],frame.args["mnoga"]); end; p["LiczbaElementówNienazwanychTablicy"] = function(tabela,wliczac,mnoga) local czy_puste_wliczac=p.CzyTak(wliczac); local czy_mnoga=p.CzyTak(mnoga); local liczba_elementow_nienazwanych_w_tablicy=0; for _1,_2 in pairs(tabela)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then liczba_elementow_nienazwanych_w_tablicy=liczba_elementow_nienazwanych_w_tablicy+1; if((czy_mnoga)and(liczba_elementow_nienazwanych_w_tablicy>1))then return liczba_elementow_nienazwanych_w_tablicy;end; end; end; end; return liczba_elementow_nienazwanych_w_tablicy; end; p["LiczbaParametrówNienazwanychSzablonu"] = function (frame) return p["LiczbaElementówNienazwanychTablicy"](frame:getParent().args,frame.args["niepuste"],frame.args["mnoga"]) end; p["LiczbaElementówTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); local liczba_elementow_w_tablicy=0; for _1,_2 in pairs(tabela)do if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1; end; end; return liczba_elementow_w_tablicy; end; p["LiczbaElementówNienazwanychZPrzedrostkiemLubNieTablicy"]=function(tabela,przedrostek,wliczac,czy_formy_numerkowe) local czy_puste_wliczac=p.CzyTak(wliczac); local liczba_elementow_w_tablicy=0; local techniczne_modul=require("Module:Techniczne"); local wzor="^"..techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](przedrostek).."(%d+)$"; for _1,_2 in pairs(tabela)do local string_liczba=tonumber(_1) or nil; local czy_liczba=((string_liczba)and(czy_formy_numerkowe or p.TypeNumber(_1))and(string_liczba>0)); local zmienna=czy_liczba and przedrostek.._1 or nil; local element=(czy_liczba and tabela[zmienna] or nil) or (czy_liczba and tabela[_1] or (mw.ustring.match(tostring(_1),wzor) and tabela[_1] or nil) ); if(element)then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(element~="")))then liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1; end; end; end; return liczba_elementow_w_tablicy; end; function p.MaksymalnaLiczbaParametruNienazwanegoSzablonu(frame) return p.MaksymalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]); end; function p.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabela, wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); local liczba_elementow_ponumerowanych_w_tablicy=0; for _1,_2 in pairs(tabela)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then liczba_elementow_ponumerowanych_w_tablicy=math.max(liczba_elementow_ponumerowanych_w_tablicy,_1); end; end; end; return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 0; end; function p.MinimalnaLiczbaParametruNienazwanegoSzablonu(frame) return p.MinimalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]); end; function p.MinimalnaLiczbaParametruNienazwanegoTablicy(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); local liczba_elementow_ponumerowanych_w_tablicy; for _1,_2 in pairs(tabela)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then if(not liczba_elementow_ponumerowanych_w_tablicy)then liczba_elementow_ponumerowanych_w_tablicy=_1; else liczba_elementow_ponumerowanych_w_tablicy=math.min(liczba_elementow_ponumerowanych_w_tablicy,_1); end; end; end; end; return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 1; end; function p.MinimalnyIMaksymalnyNumerParametru(tabela,nazwa_parametru_okreslona, czy_od_zera) local liczba_maksimum=0; local liczba_minimum; for nazwa_parametru,wartosc_parametru in pairs(tabela)do local liczba_z_parametru=mw.ustring.match(nazwa_parametru,"^"..nazwa_parametru_okreslona.."%s(%d+)$") if(liczba_z_parametru)then local liczba=tonumber(liczba_z_parametru) or (czy_od_zera and 0 or 1); liczba=(liczba>0)and liczba or (czy_od_zera and 0 or 1); liczba_maksimum=math.max(liczba_maksimum,liczba); if(not liczba_minimum)then liczba_minimum=liczba; else liczba_minimum=math.min(liczba_minimum,liczba); end; elseif(nazwa_parametru_okreslona==nazwa_parametru)then liczba_maksimum=math.max(liczba_maksimum,(czy_od_zera and 0 or 1)); if(not liczba_minimum)then liczba_minimum=czy_od_zera and 0 or 1; else liczba_minimum=math.min(liczba_minimum,czy_od_zera and 0 or 1); end; end; end; if(not liczba_minimum)then liczba_minimum=1;end; return liczba_minimum,liczba_maksimum; end; p["CzySąParametryNumerowaneSzablonu"] = function(frame) local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNumerowaneTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_sa_elementy_tablicy)then return "tak";end; return; end; p["CzySąElementyNumerowaneTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); for _1,_2 in ipairs(tabela)do if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then return true; end; end; return false; end; p["CzySąParametryNienazwaneSzablonu"] = function(frame) local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNienazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_sa_elementy_tablicy)then return "tak";end; return; end; p["CzySąElementyNienazwaneTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); for _1,_2 in pairs(tabela)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then return true; end; end; end; return false; end; p["CzySąParametryNazwaneSzablonu"] = function(frame) local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_sa_elementy_tablicy)then return "tak";end; return; end; p["CzySąElementyNazwaneTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); for _1,_2 in pairs(tabela)do if(type(_1)~="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then return true; end; end; end; return false; end; p["CzySąParametrySzablonu"] = function(frame) local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_sa_elementy_tablicy)then return "tak";end; return; end; p["CzySąElementyTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); for _1,_2 in pairs(tabela)do if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then return true; end; end; return false; end; p["CzyCoNajwyżejJedenNumerowanyParametrSzablonu"] = function (frame) local parametry_modul=require("Module:Parametry"); local czy_jest_taki_element=parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_jest_taki_element)then return "tak";end; end; p["CzyCoNajwyżejJedenNumerowanyElementTablicy"] = function (args,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); local i=1; local czy=false; for _1,_2 in pairs(args)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then if(_1==1)then czy=true;end; if(i>1)then return false; else i=i+1; end; end; end; end; if((czy)or(i==1))then return true;end; return false; end; p["KopiujTabelęŁańcuchów"]=function(args) local args2={}; local wzor_temp=args["wzór"];local wzor_wszystko=args["wzór wszystko"]; local podstawienie_temp=args.podstawienie;local podstawienie_wszystko=args["podstawienie wszystko"]; local wzor2_temp=args["wzór 2"];local wzor_wszystko_2=args["wzór wszystko 2"]; local przedrostek_temp=args.przedrostek;local przedrostek_wszystko=args["przedrostek wszystko"]; local przyrostek_temp=args.przyrostek;local przyrostek_wszystko=args["przyrostek wszystko"]; for name,value in pairs(args.tabela)do local wzor=wzor_temp and wzor_temp[name] or wzor_wszystko; local podstawienie=wzor and (podstawienie_temp and podstawienie_temp[name] or podstawienie_wszystko) or nil; if(wzor and podstawienie)then value=mw.ustring.gsub(value,wzor,podstawienie);end; local wzor2=wzor2_temp and wzor2_temp[name] or wzor_wszystko_2; if(wzor2)then value=mw.ustring.match(value,wzor2);end; if(value)then local przedrostek=przedrostek_temp and przedrostek_temp[name] or przedrostek_wszystko; local przyrostek=przyrostek_temp and przyrostek_temp[name] or przyrostek_wszystko; args2[name]=(przedrostek or '')..value..(przyrostek or ''); end; end; return args2; end; p["KopiujTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2) local czy_puste_wliczac_1=p.CzyTak(wliczac_1); local czy_puste_wliczac_2=p.CzyTak(wliczac_2); local tabelka2={}; for name,value in pairs(tabelka)do if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then tabelka2[name]=value; end; end; return tabelka2; end; p["KopiujTabelęElementówBezTablicyKluczy"]=function(tabelka,tabelka2,wliczac_1,wliczac_2) local czy_puste_wliczac_1=p.CzyTak(wliczac_1); local czy_puste_wliczac_2=p.CzyTak(wliczac_2); local tabelka3={}; for name,value in pairs(tabelka)do if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then local czy=p.CzyJestTakiKluczTabeli(tabelka2,name); if(not czy)then tabelka3[name]=value; end; end; end; return tabelka3; end; p["KopiujRekurencyjnieTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2) local czy_puste_wliczac_1=p.CzyTak(wliczac_1); local czy_puste_wliczac_2=p.CzyTak(wliczac_2); local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); local kopiuj_metatable=function(value,funkcja,funkcja2) local __metatabelka=getmetatable(value); if((__metatabelka)and(__metatabelka.tablica))then --Dla [[Module:Szablonowe/Potrzebne]] local tabelka_metatable=__metatabelka.tablica(); local __metatabelka2={}; szablonowe_potrzebne_modul.MetaTabelkaSzablonowe(__metatabelka2); local value2={}; setmetatable(value2,__metatabelka2); local tabelka_metatable2=__metatabelka2.tablica(); funkcja2(tabelka_metatable,tabelka_metatable2); funkcja(value2,false); else funkcja(value,true); end; end; local function kopiuj(tabelka,tabelka_nowa) local tabelka2=tabelka_nowa or {}; for name,value in pairs(tabelka)do if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then if(type(value)=="table")then kopiuj_metatable(value,function(value,jak) if(jak)then tabelka2[name]=kopiuj(value); else tabelka2[name]=value; end; end,kopiuj); else tabelka2[name]=value; end; end; end; return tabelka2; end; local tabela_kopiuj={}; kopiuj_metatable(tabelka,function(value,jak) if(jak)then tabela_kopiuj=kopiuj(value); else tabela_kopiuj=value; end; end,kopiuj); return tabela_kopiuj; end; p["NazwanyLiczbą"] = function(frame) local pf=frame:getParent() local numer_parametru=frame.args[1] if(numer_parametru)then numer_parametru=tonumber(numer_parametru); if(numer_parametru and pf.args[numer_parametru])then return "tak" end end; return; end p["NazwanyCiągiem"] = function (frame) local pf=frame:getParent() local klucz_parametru=frame.args[1] if(klucz_parametru)then local klucz_parametru_do_liczby=tonumber(klucz_parametru); if((not klucz_parametru_do_liczby)and(pf.args[klucz_parametru]))then return "tak" end end; return; end; function p.Nazwane(frame) local pf = frame:getParent() for _, nazwa_parametru in ipairs(frame.args)do local wartosc_parametru_nazwanego=pf.args[mw.text.trim(nazwa_parametru)] if(wartosc_parametru_nazwanego)then return "tak" end end return; end function p.Nienazwane(frame) local pf = frame:getParent() for _, wartosc_parametru in ipairs(frame.args)do wartosc_parametru=mw.text.trim(wartosc_parametru) for name, wartosc_parametru2 in pairs(pf.args) do if(type(name)=="number")then if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then return "tak" end end; end end return; end function p.Numerowane(frame) local pf = frame:getParent() for _, wartosc_parametru in ipairs(frame.args)do wartosc_parametru=mw.text.trim(wartosc_parametru) for _, wartosc_parametru2 in ipairs(pf.args) do if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then return "tak" end end end return; end p["Odstępy"] = function(frame) local PobierzParametr=p.PobierzParametr(frame); local nazwa=PobierzParametr(1) or PobierzParametr("nazwa"); local czy=PobierzParametr(2) or PobierzParametr("wewnątrz"); local dolny_myslnik=PobierzParametr(3) or PobierzParametr("dolny-myślnik"); local odstep_spacje=PobierzParametr(4) or PobierzParametr("spacje"); if(not p.CzyTak(nazwa))then return nazwa;end; local m_=(p.CzyTak(odstep_spacje) and "" or "_"); nazwa=mw.ustring.gsub(nazwa,"^[%s"..m_.."]+",""); nazwa=mw.ustring.gsub(nazwa,"[%s"..m_.."]+$","") if(p.CzyTak(czy))then nazwa=mw.ustring.gsub(nazwa,"[%s"..m_.."]+",(p.CzyTak(dolny_myslnik) and "_" or " ")); end; return nazwa; end; function p.DodajElementDoZbioru(tabela,wartosc) if(wartosc==nil)then return; end; if(type(tabela)~="table")then return;end; for _,element_tabeli in pairs(tabela)do if(element_tabeli==wartosc)then return false; end; end; table.insert(tabela,wartosc); return true; end; function p.CzyJestTakiElementNumerowanyTabeli(tabela,wartosc) if(wartosc==nil)then return;end; if(type(tabela)~="table")then return;end; for _, element_tabeli in ipairs(tabela)do if(element_tabeli==wartosc)then return true; end; end; return false; end; function p.CzyJestTakiElementNienazwanyTabeli(tabela,wartosc) if(wartosc==nil)then return;end; if(type(tabela)~="table")then return;end; for name,value in pairs(tabela)do if(type(name)=="number")then if(value==wartosc)then return true; end; end; end; return false; end; function p.CzyJestTakiKluczTabeli(tabela,klucz) if(klucz==nil)then return;end; if(type(tabela)~="table")then return;end; local wartosc=tabela[klucz]; if(wartosc~=nil)then return true;end; return false; end; function p.CzyJestTakiElementTabeli(tabela,klucz,wartosc) if((klucz==nil)or(wartosc==nil))then return;end; if(type(tabela)~="table")then return;end; for __klucz, __wartosc in pairs(tabela)do if((__klucz==klucz)and(__wartosc==wartosc))then return true; end; end; return false; end; p["ŁączDwieTabele"] = function (tabelka1,tabelka2) local parametry_modul=require("Module:Parametry"); return (tabelka2 and parametry_modul["CzySąElementyTablicy"](tabelka2)) and ((tabelka1 and parametry_modul["CzySąElementyTablicy"](tabelka1)) and parametry_modul["ŁączNumerowaneTabele"]{[1]=tabelka1,[2]=tabelka2,} or tabelka2) or tabelka1; end; p["ŁączZbioryElementówNumerowanychDwóchTabel"]=function(tabelka1,tabelka2) local parametry_modul=require("Module:Parametry"); return (tabelka1 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNumerowanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2; end; p["ŁączZbioryElementówNienazwanychDwóchTabel"]=function(tabelka1,tabelka2) local parametry_modul=require("Module:Parametry"); return (tabelka1 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNienazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2; end; p["ŁączZbioryElementówNazwanychDwóchTabel"]=function(tabelka1,tabelka2) local parametry_modul=require("Module:Parametry"); return (tabelka1 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2; end; p["ŁączZbioryNumerowanychElementówNienazwanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNienazwanychElementówNienazwanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNazwanychElementówNienazwanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNumerowanychElementówNumerowanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNienazwanychElementówNumerowanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNazwanychElementówNumerowanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączNumerowaneTabele"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,NazwijElementyNumerowane=true,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączNienazwaneTabele"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,NazwijElementyNumerowane=true,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączTabele"] = function(args,args2) local tabela={}; local par1=(args2.CzyPairsTablic)and pairs or ipairs; local czy_number_nie_tylko_tablic=(not args2.CzyPairsTablic)and true or false; local par2=(args2["CzyPairsElementówTablic"])and pairs or ipairs; local czy_number_nie_tylko_elementow_tablic=(not args2["CzyPairsElementówTablic"])and true or false; local czy_nazwane=(args2.CzyNazwaneElementyTabel)and true or false; local czy_nie_tylko_nazwane=(not args2.CzyTylkoNazwaneElementyTabel)and true or false; local nazwij_elementy_numerowane=(args2.NazwijElementyNumerowane) and true or false; for licznik, args_tabeli in par1(args)do if(((czy_number_nie_tylko_tablic)or(type(licznik)=="number"))and(type(args_tabeli)=="table"))then for name,value in par2(args_tabeli)do if((czy_nie_tylko_nazwane)and((czy_number_nie_tylko_elementow_tablic)or(type(name)=="number")))then if(nazwij_elementy_numerowane)then if(not tabela[name])then tabela[name]=value;end; else table.insert(tabela,value); end; elseif((czy_nazwane)and(czy_nie_tylko_nazwane or ((not czy_nie_tylko_nazwane)and(type(name)~="number"))))then if(not tabela[name])then tabela[name]=value;end; end; end; end; end; return tabela; end; p["UsuńElementyTabeli"]=function(tabelka_1,tabelka_2) if(not tabelka_1)then return nil;end; if(not tabelka_2)then return tabelka_1;end; for name,_ in pairs(tabelka_1)do if(tabelka_2[name]~=nil)then tabelka_1[name]=nil; end; end; return tabelka_1; end; p["TwórzTabelęBezPowtarzającychKluczyTabel"]=function(args) local tabela_poczatkowa=args[1]; local tabela={}; local lens=#args; for name,value in pairs(tabela_poczatkowa)do local yes=false; for i=2,lens,1 do if(args[i][name]~=nil)then yes=true; break; end; end; if(not yes)then tabela[name]=value; end; end; return tabela; end; function p.TypeTable(zmienna) return (type(zmienna)=="table"); end; function p.TypeFunction(zmienna) return (type(zmienna)=="function"); end; function p.TypeString(zmienna) return (type(zmienna)=="string"); end; function p.TypeBoolean(zmienna) return (type(zmienna)=="boolean"); end; function p.TypeNumber(zmienna) return (type(zmienna)=="number"); end; function p.TypeNil(zmienna) return (zmienna==nil); end; local function CzyTakSilnik(args,funkcja) local parametry_modul=require("Module:Parametry"); local parametr=p.CzyTak(args[2]) and require("Module:"..args[2])[args[1]] or args[1]; local argsfun; if(p.CzyTak(args[2]))then for name,value in pairs(args)do local typen=(type(name)=="number"); if(((typen)and((name~=1)and(name~=2)))or(not typen))then if(not argsfun)then argsfun={};end; argsfun[(typen and name>2) and (name-2) or name]=value; end; end; else parametr=tonumber(parametr) or parametr; if(type(parametr)=="string")then local parametr2=parametry_modul["Odstępy"](parametr); if(parametr2=="true")then parametr=true; elseif(parametr2=="false")then parametr=false; elseif(parametr2=="nil")then parametr=nil; else parametr=tonumber(parametr2) or parametr; end; end; end; return (parametry_modul[funkcja]{[1]=parametr,[2]=argsfun,})and "tak" or nil; end; p["CzyTakCiąg"]=function(...) local frame_parametry={...}; local frame=(#frame_parametry>1)and frame_parametry or frame_parametry[1]; local czy_table=p.TypeTable(frame); if((czy_table and (not frame.getParent)) or (not czy_table))then local PobierzParametr=p.PobierzParametr(frame); local ciag=PobierzParametr("ciąg") or PobierzParametr(1); local parametry=PobierzParametr("parametry") or PobierzParametr(2); local parametry_modul=require("Module:Parametry"); return ciag and p.CzyTak{[1]=(p.TypeString(ciag) and parametry_modul["Odstępy"]{[1]=ciag,[2]="tak",} or ciag),[2]=parametry,} or false; else local args=p.PobierzArgsParametry(frame); return CzyTakSilnik(args,"CzyTakCiąg"); end; end; function p.CzyTak(...) local frame_parametry={...}; local frame=(#frame_parametry>1)and frame_parametry or frame_parametry[1]; local czy_table=p.TypeTable(frame); if((czy_table and (not frame.getParent)) or (not czy_table))then local PobierzParametr=p.PobierzParametr(frame); local zmienna;local parametry; if(czy_table)then local zmienna_temp=PobierzParametr("zmienna") or PobierzParametr(1); zmienna=zmienna_temp or frame; parametry=zmienna_temp and (PobierzParametr("parametry") or PobierzParametr(2)) or nil; else zmienna=frame; parametry=nil; end; if(zmienna~=nil)then if(p.TypeString(zmienna))then if(zmienna~="")then return "tak"; else return nil; end; elseif(p.TypeNumber(zmienna))then if(zmienna~=0)then return "tak"; else return nil; end; elseif(p.TypeBoolean(zmienna))then return (zmienna and "tak" or nil); elseif(p.TypeTable(zmienna))then local parametry_modul=require("Module:Parametry"); return (parametry_modul["CzySąElementyTablicy"](zmienna) and "tak" or nil); elseif(p.TypeFunction(zmienna))then return (zmienna(parametry) and "tak" or nil); else return nil; end; else return nil; end; else local args=p.PobierzArgsParametry(frame); return CzyTakSilnik(args,"CzyTak"); end; end; function p.PobierzFrameEwentualnieParent(frame) return (frame.getParent and (p.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame); end; function p.PobierzArgsParametry(frame, czy_nie_tablica_jako_tablica) local TempFunc=function(frame) local pf=p.PobierzFrameEwentualnieParent(frame); local args=pf.args; if(p.TypeTable(args))then return args; else return nil; end; end; if(not p.TypeNil(frame))then return p.TypeTable(frame) and (TempFunc(frame) or frame) or ((czy_nie_tablica_jako_tablica)and {frame,} or frame); else return {}; end; end; function p.PobierzParametryRamki(frame) local TempFun1=function(tablica) return function(nazwa) return tablica[nazwa]; end; end; local TempFun2=function(wartosc) local tak=true; return function(nazwa) if(tak)then tak=false; return wartosc; end; return nil; end; end; local tablica_parametrow_ramki=p.TypeTable(frame) and (p.TypeTable(frame.args) and TempFun1(frame.args) or TempFun1(frame)) or TempFun2(frame); return function(nazwa) return tablica_parametrow_ramki(nazwa); end; end; function p.PobierzElementNumerowanyZFrameLubTablicy(frame) local tablica_parametrow_funkcji=p.TypeTable(frame[1]) and p.TypeTable(frame[1].args)and frame[1].args or frame; return function(nazwa) local wartosc=tablica_parametrow_funkcji[nazwa]; return wartosc; end; end; function p.PobierzParametr(frame,czy_frame_lub_parent,czy_frame) local __pobierz_parametr_table_args=nil; if(not p.TypeNil(frame))then if(p.TypeTable(frame))then local tak_frame_lub_parent=p.CzyTak(czy_frame_lub_parent); if((not tak_frame_lub_parent)or(not frame.getParent))then local __pobierz_parametr_table_args_temp=p.CzyTak(czy_frame) and frame.args or p.PobierzArgsParametry(frame); __pobierz_parametr_table_args=function(nazwa) return __pobierz_parametr_table_args_temp[nazwa or 1],1; end; elseif(tak_frame_lub_parent)then local pf=(frame.getParent)and frame:getParent() or nil; __pobierz_parametr_table_args=function(nazwa) local wartosc=frame.args[nazwa or 1] or (pf and pf.args[nazwa or 1] or nil); return wartosc,2; end; end; else local tak=true; __pobierz_parametr_table_args=function(nazwa) if(tak)then tak=false; return frame,0; end; return nil,0; end; end; else __pobierz_parametr_table_args=function(nazwa) return nil,0; end; end; return function(nazwa) return __pobierz_parametr_table_args(nazwa); end; end; function p.And(frame) local czy="tak"; local parametry_modul=require("Module:Parametry"); local wartosc_uzyskana=nil; for _,wartosc in ipairs(frame.args)do czy=czy and parametry_modul["CzyTakCiąg"](wartosc); if(not czy)then return nil;end; wartosc_uzyskana=wartosc; end; return czy and wartosc_uzyskana or nil; end; function p.Or(frame) local czy=nil; for _,wartosc in ipairs(frame.args)do czy=czy or p["CzyTakCiąg"](wartosc); if(czy)then return wartosc;end; end; return nil; end; function p.Not(frame) local parametry_modul=require("Module:Parametry"); return (not parametry_modul["CzyTakCiąg"](frame.args[1]))and "tak" or nil; end; function p.Mniejszy(frame) local wyraz1=tonumber(frame.args[1]) or 0; local wyraz2=tonumber(frame.args[2]) or 0; if(wyraz1<wyraz2)then return "tak"; end; return; end; function p.IlePodano(frame) local args=frame.args; local args2=frame:getParent().args; local licznik=0; for _,name in pairs(args)do if(args2[name])then licznik=licznik+1; end; end; return licznik; end; p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter={}; function p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter.__index(t,klucz) local html_modul=require("Module:Html"); klucz=html_modul.DecodeKoduHTMLZnaku(klucz); klucz=p["Odstępy"]{[1]=klucz,[2]="tak",}; klucz=mw.ustring.lower(klucz); return rawget(t,klucz); end; function p.IteratorPoNumerowanychElementachTablicy(t) local i=1; return function() local v=t[i]; if(v~=nil)then i=i+1;end; return v; end; end; p.IteratorKluczeTabeliAlfabetycznieSortujDoPrzodu=function(tabela,funkcja) local keys={}; for name,_ in next,tabela do table.insert(keys,name); end; table.sort(keys,funkcja); return function(tablica,klucz) if(klucz==nil)then return keys[1];end; for k,_ in ipairs(keys)do if(keys[k]==klucz)then return keys[k+1]; end; end; end; end; function p.Max(...) local frame={...}; local PobierzElement=p.PobierzElementNumerowanyZFrameLubTablicy(frame); local parametr1=tonumber(PobierzElement(1)); local parametr2=tonumber(PobierzElement(2)); return math.max(parametr1,parametr2); end; function p.Min(...) local frame={...}; local PobierzElement=p.PobierzElementNumerowanyZFrameLubTablicy(frame); local parametr1=tonumber(PobierzElement(1)); local parametr2=tonumber(PobierzElement(2)); return math.min(parametr1,parametr2); end; return p; pk650bksnopcgqvyd1yxk5b1bm0dxx6 Moduł:StronicowyParser/ZbieranieDanychStron 828 55009 543733 543699 2026-05-21T14:03:20Z Persino 2851 543733 Scribunto text/plain local p={}; function p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod) if(lista_dwuelementowa)then local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; if(not tab_obiekt)then tabela_elementow_strony_kodow[nazwa_obiektu]={}; tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; end; local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; if(not uchwyty_bez_numeracji)then tab_obiekt.uchwyty_bez_numeracji={}; uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; end; uchwyty_bez_numeracji[kod]=lista_dwuelementowa; end; end; function p.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod) local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; if(not tab_obiekt)then return nil;end; local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; if(uchwyty_bez_numeracji)then return uchwyty_bez_numeracji[kod]; end; end; function p.RozpatrywanieElementuUchwytuNumeracji(self,kod_uchwytu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); kod_uchwytu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(kod_uchwytu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or kod_uchwytu; local html_modul=require("Module:Html"); kod_uchwytu=html_modul.DecodeHtml(kod_uchwytu,true); if(kod_uchwytu~="")then KtorySzablonMaZwracacKategorie(kod_uchwytu); local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; 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",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; table.insert(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); 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,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local kod_uchwytu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[numer_numeracji]; if(kod_uchwytu)then local lista_dwuelementowa=p.RozpatrywanieElementuUchwytuNumeracji(self,kod_uchwytu,tablica_zmiennych, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return lista_dwuelementowa; end; end; function p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki))then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni_wszystkiego=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron; if(tablica_przestrzeni_wszystkiego)then local tabela_przestrzeni_ksiazek=tablica_przestrzeni_wszystkiego[nazwa_przestrzeni]; if(tabela_przestrzeni_ksiazek)then local tabela_ksiazek=tabela_przestrzeni_ksiazek[nazwa_przestrzeni_ksiazki] if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then --czy_lista_niepusta=true; for _,tab_value1 in ipairs(tab_ksiazki.spis)do if(tab_value1[2])then for _,nazwa_artykulu1 in ipairs(tab_value1[2])do if(nazwa_artykulu1[1]==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",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",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.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie) local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,self.nazwa_modulu_biezaca,true); --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 nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwa_przestrzeni or nazwy_modul["NazwaPrzestrzeni"](nil,tabela_nazw); local nazwa_przestrzeni_ksiazki=nazwa_przestrzeni_ksiazki or nazwy_modul["NazwaPrzestrzeniKsiążki"](nil,tabela_nazw); local nazwa_ksiazki=nazwa_ksiazki or nazwy_modul["NazwaTytułuKsiążki"](nil,tabela_nazw); local nazwa_artykulu=nazwa_artykulu or nazwy_modul["NazwaArtykułuKsiążki"](nil,tabela_nazw); if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end; local tabela_listy_danych_analizy_ksiazki=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false); end; end; function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie) local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not nazwa_przestrzeni)and(not nazwa_jednostki))then return;end; local parametry_modul=require("Module:Parametry"); if((nazwa_jednostki) and (nazwa_jednostki==""))then return;end; local szablonowe_modul=require("Module:Szablonowe"); if((nazwa_jednostki and mw.ustring.match(nazwa_jednostki,szablonowe_modul.NormaWzoruKodowaniaTekstu())) or (nazwa_przestrzeni and mw.ustring.match(nazwa_przestrzeni,szablonowe_modul.NormaWzoruKodowaniaTekstu())) )then return;end; local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe"); local html_modul=require("Module:Html"); if(nazwa_jednostki)then nazwa_jednostki=html_modul.DecodeHtml(nazwa_jednostki,true); end; local tabela_nazw_art={}; local nazwa_jednostki=(nazwa_jednostki and mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1") or nil ) or ksiazkowe_modul["NazwaArtykułu"](nil,tabela_nazw_art); if(nazwa_przestrzeni)then nazwa_przestrzeni=html_modul.DecodeHtml(nazwa_przestrzeni,true); end; local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw_art); local strona=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local techniczne_modul=require("Module:Techniczne"); strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=self.nazwa_modulu_biezaca,}; --strona=ksiazkowe_modul["PEŁNANAZWASTRONY"](strona); local tabela_nazw={}; local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); local nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); local nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and (nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw)) or (nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw))); local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw); if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end; local tabela_listy_danych_analizy_ksiazki=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,nil,czy_szablon_pudelkowy_strony_zbiorczej); end; function p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_aktualna,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_aktualna,}; ---- 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.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna) local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna); local nazwy_modul=require("Module:Nazwy"); 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); 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); 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); else p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu); end; end; function p.GeneralneLinkowanie(self,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,self.nazwa_modulu_biezaca); ---- local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(uchwyt_obiektu))then local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); uchwyt_obiektu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(uchwyt_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or uchwyt_obiektu; local html_modul=require("Module:Html"); uchwyt_obiektu=html_modul.DecodeHtml(uchwyt_obiektu,true); end; ---- local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); ---- if(parametry_modul.CzyTak(uchwyt_obiektu))then nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; elseif(nazwa_ksiazki=="")then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni) or(nazwa_przestrzeni_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu) or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu) or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu))then p.LinkowanieInnychStron(self,nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p.LinkowanieFinalizowaniePrac(self,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul); p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p.LinkowanieFinalizowaniePrac(self,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul) p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,nil); p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu))then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu); end; KtorySzablonMaZwracacKategorie(uchwyt_obiektu); end; function p.LinkowanieFinalizowaniePrac(self,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul) 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",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); end; function p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,__FUNKCJA) 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)then __FUNKCJA(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(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron"))then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron"); else stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy stron dołączanych do stron"); end; end; end; end; function p.LinkowanieInnychStron(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) 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_zmiennych={}; tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,tablica_zmiennych); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end; 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_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; 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","Link"..nazwa_obiektu))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błędy uchwytów korzystanych stron","Link"..nazwa_obiektu); end; p.PusteParametryReferencji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"); end; end; else p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; end); end; function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej) local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_przestrzeni_ksiazki])then tablica_przestrzeni[nazwa_przestrzeni_ksiazki]={};end; local tablica_przestrzeni_ksiazki=tablica_przestrzeni[nazwa_przestrzeni_ksiazki]; if(not tablica_przestrzeni_ksiazki[nazwa_ksiazki])then tablica_przestrzeni_ksiazki[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni_ksiazki[nazwa_ksiazki]; if(not tablica_ksiazki.lista_podstron_woluminu)then tablica_ksiazki.lista_podstron_woluminu={};end; if(nazwa_artykulu)then if(not tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu])then tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu]={};end; local artykul_analizowany=tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu]; return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany; else return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki; end; end; local function __FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if(not czy_artykul_korzystany)then if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu and self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu and self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu))then return 0; else if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true; end; end; else return nil; end; end; if(self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron)then local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; if(tabela_przestrzeni)then local tabela_przestrzeni_ksiazki=tabela_przestrzeni[nazwa_przestrzeni_ksiazki]; if(tabela_przestrzeni_ksiazki)then local tabela_ksiazka=tabela_przestrzeni_ksiazki[nazwa_ksiazki]; if(tabela_ksiazka)then local lista_artykolow=tabela_ksiazka.lista_podstron_woluminu; if(lista_artykolow)then local tabela_artykul=lista_artykolow[nazwa_artykulu]; if(tabela_artykul)then return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni; end; end; end; end; end; else return nil; end; else return nil; end; return true; end; local nazwy_modul=require("Module:Nazwy"); local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local function StronaSubstFunkcja(tabela_artykul,spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if((czy_szablon_pudelkowy_strony_zbiorczej)and(not czy_artykul_korzystany)and(tabela_artykul)and(not tabela_artykul.strona_zbiorcza))then --local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end; tabela_artykul.strona_zbiorcza=stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,spis,nil,TakFun,NieFun,nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; end; if(not wartosc_wyniku)then return wartosc_wyniku; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku; end; ---- local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if((nazwa_przestrzeni~=nazwy_np_modul.Main) and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior) and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_przestrzeni_ksiazki,"^([^/]+)$"))) and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_przestrzeni_ksiazki,"^%s*[Bb]rudnopis/([^/]+)$"))) )then stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; ---- local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local parametry_modul=require("Module:Parametry"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); ---- local tekst_rozwiniety_calego_artykulu_ref=nil; local tablica_analizy_obiektow_strony_dany_modul_ref=nil; local tablica_danych_parametrow_szablonu_strony_ref=nil; ---- local function InneInformacjePrzebneDoAnalizowanejKsiazki() if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki))then if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"])then self.tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"]="tak";end; end; local czy_ksiazka_istnieje_w_tablicy=((tablica_ksiazki)and(tablica_ksiazki.czy_spis_analizowano))and true or false; if(not czy_ksiazka_istnieje_w_tablicy)then tablica_ksiazki.czy_spis_analizowano=true; local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści"); local nazwa_przestrzeni_strona_temp,nazwa_przestrzeni_ksiazki_strona_temp,nazwa_ksiazki_strona_temp; local tabela_artykulow,tabela_licencji_spisu_tresci,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,adres_ksiazki_glownego_spisu_tresci=stronicowyparser_spistresci_modul.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,czy_artykul_korzystany,function(nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona) local tablica_przestrzeni_strona=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni_strona]; if(tablica_przestrzeni_strona)then local tablica_przestrzeni_ksiazki_strona=tablica_przestrzeni_strona[nazwa_przestrzeni_ksiazki_strona]; if(tablica_przestrzeni_ksiazki_strona)then local tablica_ksiazki_strona=tablica_przestrzeni_ksiazki_strona[nazwa_ksiazki_strona]; if(tablica_ksiazki_strona)then if(tablica_ksiazki_strona.spis)then nazwa_przestrzeni_strona_temp,nazwa_przestrzeni_ksiazki_strona_temp,nazwa_ksiazki_strona_temp=nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona; tablica_ksiazki.spis=tablica_ksiazki_strona.spis; tablica_ksiazki.licencja=tablica_ksiazki_strona.licencja; tablica_ksiazki.nazwa_bazowego_spisu=tablica_ksiazki_strona.nazwa_bazowego_spisu; tablica_ksiazki.tab_inne_spisy=tablica_ksiazki_strona.tab_inne_spisy; tablica_ksiazki.dodatkowe_strony_woluminu=tablica_ksiazki_strona.dodatkowe_strony_woluminu; tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy=tablica_ksiazki_strona.adres_woluminu_bazowego_spisu_rzeczy; tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,}; return 1; end; end; end end; end,function(tekst_rozwiniety_calego_artykulu_ref_spis,nazwa_przestrzeni_ref_spis,nazwa_przestrzeni_ksiazki_ref_spis,nazwa_ksiazki_ref_spis,nazwa_artykulu_ref_spis,tablica_analizy_obiektow_strony_dany_modul_ref_spis,tablica_danych_parametrow_szablonu_strony_ref_spis) ---- if((nazwa_przestrzeni==nazwa_przestrzeni_ref_spis)and(nazwa_przestrzeni_ksiazki==nazwa_przestrzeni_ksiazki_ref_spis)and(nazwa_ksiazki==nazwa_ksiazki_ref_spis)and(nazwa_artykulu==nazwa_artykulu_ref_spis))then tekst_rozwiniety_calego_artykulu_ref=tekst_rozwiniety_calego_artykulu_ref_spis; local parametry_modul=require("Module:Parametry"); tablica_analizy_obiektow_strony_dany_modul_ref=parametry_modul["KopiujRekurencyjnieTabelęElementów"](tablica_analizy_obiektow_strony_dany_modul_ref_spis); tablica_danych_parametrow_szablonu_strony_ref=parametry_modul["KopiujRekurencyjnieTabelęElementów"](tablica_danych_parametrow_szablonu_strony_ref_spis); end; ---- end); local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres) tablica_ksiazki.spis=tabela_artykulow; if(czy_artykul_korzystany)then tablica_ksiazki.licencja=tabela_licencji_spisu_tresci; end; tablica_ksiazki.nazwa_bazowego_spisu=nazwa_glownego_spisu; tablica_ksiazki.tab_inne_spisy=tab_inne_spisy; tablica_ksiazki.dodatkowe_strony_woluminu=dodatkowe_artykuly; tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy=czy_podac_adres and adres_ksiazki_glownego_spisu_tresci or nil; end; if(tabela_artykulow==0)then if(czy_artykul_korzystany)then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"korzystana strona główna nie istnieje"); else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"dołączone strony główne nie istnieją",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; elseif(tabela_artykulow)then if(parametry_modul.TypeTable(tabela_artykulow))then if(adres_ksiazki_glownego_spisu_tresci)then __FUNKCJA_SPISU(tablica_ksiazki,true); local tablica_ksiazki_stara=tablica_ksiazki; local artykul,kod_wyniku=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,true); local nazwa_przestrzeni=adres_ksiazki_glownego_spisu_tresci[1]; local nazwa_przestrzeni_ksiazki=adres_ksiazki_glownego_spisu_tresci[2]; local nazwa_ksiazki=adres_ksiazki_glownego_spisu_tresci[3]; if((kod_wyniku==1)or(kod_wyniku==4))then local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); if(not wartosc_wyniku)then return wartosc_wyniku,true; elseif((wartosc_wyniku==0)and(tabela_artykul))then local nazwa_artykulu=artykul; StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,true; end; local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni ,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; elseif(kod_wyniku==2)then local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; elseif(kod_wyniku==3)then local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nil); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; end; else __FUNKCJA_SPISU(tablica_ksiazki,false); end; elseif(tabela_artykulow~=1)then local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku,true; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,true; end; end; else if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak spisów treści do korzystanych książek na ich stronach głównych"))then if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu~=""))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak spisów treści do korzystanych książek na ich stronach głównych"); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"brak spisów treści do dołączonych książek na ich stronach głównych",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; end; end; end; end; end; ---- local wartosc_wyniku,wynik_bledu,artykul_bazowy,kod_wyniku_bazowy=InneInformacjePrzebneDoAnalizowanejKsiazki(); if(wynik_bledu)then return wartosc_wyniku;end; local kod_wyniku_przekierowan=kod_wyniku_bazowy; ---- --if((not tablica_przestrzeni)or(not tablica_przestrzeni_ksiazki)or(not tablica_ksiazki)or(not artykul_analizowany))then -- tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); --end; ---- if(tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy)and((kod_wyniku_bazowy==1)or(kod_wyniku_bazowy==4))then ---- nazwa_przestrzeni=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[1]; nazwa_przestrzeni_ksiazki=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[2]; nazwa_ksiazki=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[3]; nazwa_artykulu=artykul_bazowy; ---- tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki=tablica_ksiazki.referencja_do_nowej_formy_spisu[1],tablica_ksiazki.referencja_do_nowej_formy_spisu[2],tablica_ksiazki.referencja_do_nowej_formy_spisu[3]; end; local tabela_artykulow=tablica_ksiazki.spis; if(tabela_artykulow)then local nazwa_glownego_spisu=tablica_ksiazki.nazwa_bazowego_spisu; local tab_inne_spisy=tablica_ksiazki.tab_inne_spisy; local dodatkowe_artykuly=tablica_ksiazki.dodatkowe_strony_woluminu local artykul,kod_wyniku=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,false); if(kod_wyniku==1)then nazwa_artykulu=artykul; local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku; end; tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); elseif(kod_wyniku==2)then local nazwa_artykulu=artykul; local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; kod_wyniku_przekierowan=kod_wyniku_przekierowan or kod_wyniku; end; local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local PrzekierownieAwaryjne=function() if((not kod_wyniku_przekierowan)or(kod_wyniku_bazowy==4))then --local artykul2,kod_wyniku2=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_modulu); if(strona)then if(strona~=nazwa_modulu)then ---- local tabela_nazw={}; nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw)); nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazwa); local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku; end; tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); nazwa_modulu=strona; else return 0; end; end; end; end; local wynik=PrzekierownieAwaryjne(); if(czy_artykul_korzystany)then self.nazwa_modulu_biezaca=nazwa_modulu; end; if(wynik)then return wynik;end; ---- if(czy_artykul_korzystany)then if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu))then self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni; self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu=nazwa_przestrzeni_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu=nazwa_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu=nazwa_artykulu; end; end; local nazwa_modulu_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and nazwy_modul["NazwaModułu"](self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu) or nazwa_modulu; -- przydzielanie tablicy if(czy_artykul_korzystany)then artykul_analizowany.artykul_biezacy=true; tablica_ksiazki.ksiazka_analizowana=true; end; --koniec --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); if(not tablica_zmiennych)then tablica_zmiennych={};end; if(not tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)then tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2={};end; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); for _,element_w_tablicy_obiekt in pairs(stronicowyparser_obiekty_modul.tablica_obiektowych_form)do local wartosc=element_w_tablicy_obiekt[1]; tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[wartosc]={}; if(czy_artykul_korzystany)then tablica_zmiennych.linkobiekt[wartosc]={};end; end; local function StronaZbiorcza() if(czy_artykul_korzystany)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end; local wynik=stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,tablica_ksiazki.spis,nil,TakFun,NieFun,nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); artykul_analizowany.strona_zbiorcza=(wynik and "tak" or ""); return wynik; end; return nil; end; local strona_zbiorcza=StronaZbiorcza(); local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); ---- local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony; if((not tekst_rozwiniety_calego_artykulu_ref)or(not tablica_analizy_obiektow_strony_dany_modul_ref)or(not tablica_danych_parametrow_szablonu_strony_ref))then tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,nazwa_modulu_aktualna_czy_biezaca,(((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca))and true or nil), nil) else tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=tekst_rozwiniety_calego_artykulu_ref,tablica_analizy_obiektow_strony_dany_modul_ref,tablica_danych_parametrow_szablonu_strony_ref; end; ---- if(not czy_artykul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then return 0;end; end; if(czy_artykul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then if(strona_zbiorcza)then self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; return nil; end; end; local szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); if((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca))then local aktualna_nazwa_modulu=self.tabela_listy_danych_analizy_ksiazki.alternatywna and nazwa_modulu_aktualna_czy_biezaca or nazwy_modul["NazwaModułu"](self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu); local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(self,aktualna_nazwa_modulu); if(tekst)then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst,aktualna_nazwa_modulu); local tablica_danych_parametrow_szablonu_strony={}; for szablon,obiekt,kod in iterator do if(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,aktualna_nazwa_modulu,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if(stronicowyparser_obiekty_modul.strona_start_ze_spisem_rzeczy_strony[nazwa_szablonu])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; return true; elseif(stronicowyparser_obiekty_modul.strona_start[nazwa_szablonu])then self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; local boczne_menu=tabela_parametrow_szablonu["boczne menu"] or ""; local spis_tresci=tabela_parametrow_szablonu["spis treści"] or "TOC"; if((parametry_modul.CzyTak(boczne_menu))or(parametry_modul.CzyTak(spis_tresci)))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return true; end; end); if(wynik)then break;end; end; end; end; end; local uzyskano_w_wyniku_parsowania_wywolanie_szablonu; local analiza_stron_korzystanych_zbiorczych=nil; local stronastart=nil; ---- local tablica_obiekty=stronicowyparser_obiekty_modul.obiekty; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.numerowane_obiekty; local format_elementowy_referencji_obiektowy=stronicowyparser_obiekty_modul.format_elementowy_referencji_obiektowy; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu; local szablony_wykorzystywane_przez_strony_zbiorcze=stronicowyparser_obiekty_modul.szablony_wykorzystywane_przez_strony_zbiorcze; local format_elementowy_obiektowy=stronicowyparser_obiekty_modul.format_elementowy_obiektowy; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.numerowane_obiekty; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_naglowka=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu; ---- local strona_start=stronicowyparser_obiekty_modul.strona_start; local strona_start_ze_spisem_rzeczy_strony=stronicowyparser_obiekty_modul.strona_start_ze_spisem_rzeczy_strony; local strona_start_inne=stronicowyparser_obiekty_modul.strona_start_inne; local szablony_strony_zbiorczej=stronicowyparser_obiekty_modul.strona_zbiorcza; ---- local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); local tabela_elementow_strony_kodow={}; for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod in iterator do local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,uzyskano_w_wyniku_parsowania_wywolanie_szablonu) if(czy_artykul_korzystany)then if(tabela_parametrow_szablonu)then if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then if(strona_start[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; stronastart=true; local boczne_menu=tabela_parametrow_szablonu["boczne menu"] or ""; local spis_tresci=tabela_parametrow_szablonu["spis treści"] or "TOC"; if((parametry_modul.CzyTak(boczne_menu))or(parametry_modul.CzyTak(spis_tresci)))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return; elseif(strona_start_ze_spisem_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; stronastart=true; return; elseif(strona_start_inne[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; stronastart=true; return; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then analiza_stron_korzystanych_zbiorczych=true; local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not parametry_modul.CzyTak(nazwa_prestreni_nazw))and(not parametry_modul.CzyTak(nazwa_jednostki)))then return; end; end; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then analiza_stron_korzystanych_zbiorczych=true; local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not parametry_modul.CzyTak(nazwa_przestrzeni))and(not parametry_modul.CzyTak(nazwa_jednostki)))then return; end; end; end; end; local plik=mw.ustring.match(nazwa_szablonu_wywolania,"^:"); if(plik==nil)then if(tabela_parametrow_szablonu)then if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then local czy_wypowiedzenie=(nazwa_szablonu_wywolania=="Wypowiedzenie"); local czy_linkobiekt; local czy_link; local czy_wypowiedzenie_z_parametrami; local czy_linkobiekt_z_parametrami; if(czy_wypowiedzenie)then czy_linkobiekt=false; czy_link=false; czy_wypowiedzenie_z_parametrami=parametry_modul.CzyTak(tabela_parametrow_szablonu["rodzaj"]); else czy_linkobiekt=(nazwa_szablonu_wywolania=="LinkObiekt"); if(czy_linkobiekt)then czy_link=true; czy_linkobiekt_z_parametrami=parametry_modul.CzyTak(tabela_parametrow_szablonu["typ"]); else czy_link=mw.ustring.match(nazwa_szablonu_wywolania,"^Link") or mw.ustring.match(nazwa_szablonu_wywolania,"^Pobierz"); end; end; if(not czy_link)then local wartosc_elementu;local numer_uchwytu; if(not czy_wypowiedzenie_z_parametrami) then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty[nazwa_szablonu_wywolania]; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; else local rodzaj=tabela_parametrow_szablonu["rodzaj"]; if(rodzaj)then wartosc_elementu=format_elementowy_obiektowy[rodzaj] and rodzaj or nil; if(wartosc_elementu)then numer_uchwytu=tablica_obiekty[5]; end; end; end; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; end; elseif(czy_artykul_korzystany)then if(czy_link)then local wartosc_elementu; if(not czy_linkobiekt_z_parametrami)then wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty[nazwa_szablonu_wywolania]; else local typ=tabela_parametrow_szablonu["typ"]; if(typ)then typ=format_elementowy_referencji_obiektowy[typ] and typ or nil; if(typ)then wartosc_elementu=mw.getContentLanguage():ucfirst(typ); end; end; end; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; else local wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu[nazwa_szablonu_wywolania]; if(wartosc_elementu)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; return; else local wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu[nazwa_szablonu_wywolania]; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; end; end; end; end; end; if(czy_wypowiedzenie)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt:"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artykul_korzystany,tablica_obiekty[5],nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; elseif(stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_wprowadzenia_tekstu[nazwa_szablonu_wywolania])then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_naglowka[nazwa_szablonu_wywolania]; local wartosc_elementu;local numer_uchwytu; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; local lista_dwuelementowa=p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,wartosc_elementu,lista_dwuelementowa,kod); if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return; elseif(stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_tekstu[nazwa_szablonu_wywolania])then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu[nazwa_szablonu_wywolania]; local wartosc_elementu;local numer_uchwytu; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; local lista_dwuelementowa=p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); if(lista_dwuelementowa)then local tekst=tabela_parametrow_szablonu["tekst"] or tabela_parametrow_szablonu["treść"] or tabela_parametrow_szablonu[1]; if(tekst)then tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local frame=mw.getCurrentFrame(); tekst=frame:preprocess(tekst); lista_dwuelementowa[2]=tekst; end; end; return; elseif(czy_artykul_korzystany)then if(czy_linkobiekt)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="LinkObiekt:"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,tablica_zmiennych,tabela_parametrow_szablonu,"Obiekt",nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; else if(stronicowyparser_obiekty_modul.szablony_z_lokalnym_spisem_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; return; elseif(stronicowyparser_obiekty_modul.bez_uchwytow_spis_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or ""; local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or ""; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; return; else local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ""; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ""; local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local uchwyt=nazwa_szablonu_wywolania..":"..nazwa_symulacyjnej_strony; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt; end; end; if((stronicowyparser_obiekty_modul.szablony_kontenerowe[nazwa_szablonu_wywolania]) or(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]) )then if(szablony_wykorzystywane_przez_strony_zbiorcze[nazwa_szablonu_wywolania])then p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,true,KtorySzablonMaZwracacKategorie); else p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,nil,KtorySzablonMaZwracacKategorie); end; return; elseif((strona_zbiorcza)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,true,KtorySzablonMaZwracacKategorie); return; end; end; end; end; end; end; end; end; stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_danych_parametrow_szablonu_strony,AnalizaParametrowSzablonuISzablonu); end; local tablica_danych_nazwy_artykulu=tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu] or {}; tablica_danych_nazwy_artykulu.uchwyty_i_numeracje=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2; if(czy_artykul_korzystany)then if(analiza_stron_korzystanych_zbiorczych)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); end; end; local strona; if(czy_artykul_korzystany)then strona="";else strona=nazwa_modulu;end; local toc; if(((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)) or((not czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)))then ---- local tablica_obiektow_strony_danych_kodow_specjalnych_modul=nil; ---- tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul=szablonowe_modul:KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,false); ---- local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu) if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"powtórka nagłowek w stronie korzystanej"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"powtórka nagłowek w stronie korzystanej"); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"powtórka nagłówek w stronie dołączonej",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; end; local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu) if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"nagłowek w tekście rozdziału w stronie dołączonej",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; end; local function CzyJestTakiProblemJakoElementTablicy() return stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"); end; local nazwa_naglowka=stronicowyparser_obiekty_modul.nazwa_szablonu_wprowadzenia_tekstu; local stronicowyparser_glownafunkcjazbieraniadanych_modul=require("Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron"); local tablica_naglowka_obiekty=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_naglowka]; tablica_naglowka_obiekty.uchwyty_bez_numeracji={}; local toc=stronicowyparser_glownafunkcjazbieraniadanych_modul.SpisRzeczyWedlePodanegoTekstu(self,tekst_rozwiniety_calego_artykulu,strona, czy_artykul_korzystany,nil,tablica_naglowka_obiekty.uchwyty_bez_numeracji, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki, nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_obiektow_strony_danych_kodow_specjalnych_modul,{KtorySzablonMaZwracacKategorieNaglowek,KtorySzablonMaZwracacKategorieTekst,CzyJestTakiProblemJakoElementTablicy},nil,tabela_elementow_strony_kodow); tablica_danych_nazwy_artykulu.TOC=toc; end; StronaSubstFunkcja(tablica_danych_nazwy_artykulu,tablica_ksiazki.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; self.tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki=self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw[nazwa_przestrzeni_ksiazki]; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki[nazwa_ksiazki]; end; return self.tabela_listy_danych_analizy_ksiazki; end; return p; re06o06vp1veznuxcu45xod1z13zypf 543741 543733 2026-05-21T14:37:51Z Persino 2851 543741 Scribunto text/plain local p={}; function p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod) if(lista_dwuelementowa)then local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; if(not tab_obiekt)then tabela_elementow_strony_kodow[nazwa_obiektu]={}; tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; end; local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; if(not uchwyty_bez_numeracji)then tab_obiekt.uchwyty_bez_numeracji={}; uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; end; uchwyty_bez_numeracji[kod]=lista_dwuelementowa; end; end; function p.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod) local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; if(not tab_obiekt)then return nil;end; local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; if(uchwyty_bez_numeracji)then return uchwyty_bez_numeracji[kod]; end; end; function p.RozpatrywanieElementuUchwytuNumeracji(self,kod_uchwytu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); kod_uchwytu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(kod_uchwytu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or kod_uchwytu; local html_modul=require("Module:Html"); kod_uchwytu=html_modul.DecodeHtml(kod_uchwytu,true); if(kod_uchwytu~="")then KtorySzablonMaZwracacKategorie(kod_uchwytu); local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; 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",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; table.insert(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); 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,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local kod_uchwytu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[numer_numeracji]; if(kod_uchwytu)then local lista_dwuelementowa=p.RozpatrywanieElementuUchwytuNumeracji(self,kod_uchwytu,tablica_zmiennych, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return lista_dwuelementowa; end; end; function p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki))then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni_wszystkiego=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron; if(tablica_przestrzeni_wszystkiego)then local tabela_przestrzeni_ksiazek=tablica_przestrzeni_wszystkiego[nazwa_przestrzeni]; if(tabela_przestrzeni_ksiazek)then local tabela_ksiazek=tabela_przestrzeni_ksiazek[nazwa_przestrzeni_ksiazki] if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then --czy_lista_niepusta=true; for _,tab_value1 in ipairs(tab_ksiazki.spis)do if(tab_value1[2])then for _,nazwa_artykulu1 in ipairs(tab_value1[2])do if(nazwa_artykulu1[1]==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",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",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.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie) local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,self.nazwa_modulu_biezaca,true); --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 nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwa_przestrzeni or nazwy_modul["NazwaPrzestrzeni"](nil,tabela_nazw); local nazwa_przestrzeni_ksiazki=nazwa_przestrzeni_ksiazki or nazwy_modul["NazwaPrzestrzeniKsiążki"](nil,tabela_nazw); local nazwa_ksiazki=nazwa_ksiazki or nazwy_modul["NazwaTytułuKsiążki"](nil,tabela_nazw); local nazwa_artykulu=nazwa_artykulu or nazwy_modul["NazwaArtykułuKsiążki"](nil,tabela_nazw); if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end; local tabela_listy_danych_analizy_ksiazki=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false); end; end; function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie) local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not nazwa_przestrzeni)and(not nazwa_jednostki))then return;end; local parametry_modul=require("Module:Parametry"); if((nazwa_jednostki) and (nazwa_jednostki==""))then return;end; local szablonowe_modul=require("Module:Szablonowe"); if((nazwa_jednostki and mw.ustring.match(nazwa_jednostki,szablonowe_modul.NormaWzoruKodowaniaTekstu())) or (nazwa_przestrzeni and mw.ustring.match(nazwa_przestrzeni,szablonowe_modul.NormaWzoruKodowaniaTekstu())) )then return;end; local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe"); local html_modul=require("Module:Html"); if(nazwa_jednostki)then nazwa_jednostki=html_modul.DecodeHtml(nazwa_jednostki,true); end; local tabela_nazw_art={}; local nazwa_jednostki=(nazwa_jednostki and mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1") or nil ) or ksiazkowe_modul["NazwaArtykułu"](nil,tabela_nazw_art); if(nazwa_przestrzeni)then nazwa_przestrzeni=html_modul.DecodeHtml(nazwa_przestrzeni,true); end; local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw_art); local strona=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local techniczne_modul=require("Module:Techniczne"); strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=self.nazwa_modulu_biezaca,}; --strona=ksiazkowe_modul["PEŁNANAZWASTRONY"](strona); local tabela_nazw={}; local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); local nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); local nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and (nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw)) or (nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw))); local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw); if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end; local tabela_listy_danych_analizy_ksiazki=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,nil,czy_szablon_pudelkowy_strony_zbiorczej); end; function p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_aktualna,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_aktualna,}; ---- 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.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna) local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna); local nazwy_modul=require("Module:Nazwy"); 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); 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); 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); else p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu); end; end; function p.GeneralneLinkowanie(self,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,self.nazwa_modulu_biezaca); ---- local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(uchwyt_obiektu))then local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); uchwyt_obiektu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(uchwyt_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or uchwyt_obiektu; local html_modul=require("Module:Html"); uchwyt_obiektu=html_modul.DecodeHtml(uchwyt_obiektu,true); end; ---- local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); ---- if(parametry_modul.CzyTak(uchwyt_obiektu))then nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; elseif(nazwa_ksiazki=="")then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni) or(nazwa_przestrzeni_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu) or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu) or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu))then p.LinkowanieInnychStron(self,nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p.LinkowanieFinalizowaniePrac(self,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul); p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p.LinkowanieFinalizowaniePrac(self,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul) p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,nil); p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu))then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu); end; KtorySzablonMaZwracacKategorie(uchwyt_obiektu); end; function p.LinkowanieFinalizowaniePrac(self,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul) 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",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); end; function p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,__FUNKCJA) 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)then __FUNKCJA(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(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron"))then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron"); else stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy stron dołączanych do stron"); end; end; end; end; function p.LinkowanieInnychStron(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) 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_zmiennych={}; tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,tablica_zmiennych); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end; 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_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; 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","Link"..nazwa_obiektu))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błędy uchwytów korzystanych stron","Link"..nazwa_obiektu); end; p.PusteParametryReferencji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"); end; end; else p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; end); end; function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej) local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_przestrzeni_ksiazki])then tablica_przestrzeni[nazwa_przestrzeni_ksiazki]={};end; local tablica_przestrzeni_ksiazki=tablica_przestrzeni[nazwa_przestrzeni_ksiazki]; if(not tablica_przestrzeni_ksiazki[nazwa_ksiazki])then tablica_przestrzeni_ksiazki[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni_ksiazki[nazwa_ksiazki]; if(not tablica_ksiazki.lista_podstron_woluminu)then tablica_ksiazki.lista_podstron_woluminu={};end; if(nazwa_artykulu)then if(not tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu])then tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu]={};end; local artykul_analizowany=tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu]; return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany; else return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki; end; end; local function __FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if(not czy_artykul_korzystany)then if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu and self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu and self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu))then return 0; else if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true; end; end; else return nil; end; end; if(self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron)then local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; if(tabela_przestrzeni)then local tabela_przestrzeni_ksiazki=tabela_przestrzeni[nazwa_przestrzeni_ksiazki]; if(tabela_przestrzeni_ksiazki)then local tabela_ksiazka=tabela_przestrzeni_ksiazki[nazwa_ksiazki]; if(tabela_ksiazka)then local lista_artykolow=tabela_ksiazka.lista_podstron_woluminu; if(lista_artykolow)then local tabela_artykul=lista_artykolow[nazwa_artykulu]; if(tabela_artykul)then return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni; end; end; end; end; end; else return nil; end; else return nil; end; return true; end; local nazwy_modul=require("Module:Nazwy"); local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local function StronaSubstFunkcja(tabela_artykul,spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if((czy_szablon_pudelkowy_strony_zbiorczej)and(not czy_artykul_korzystany)and(tabela_artykul)and(not tabela_artykul.strona_zbiorcza))then --local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end; tabela_artykul.strona_zbiorcza=stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,spis,nil,TakFun,NieFun,nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; end; if(not wartosc_wyniku)then return wartosc_wyniku; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku; end; ---- local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if((nazwa_przestrzeni~=nazwy_np_modul.Main) and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior) and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_przestrzeni_ksiazki,"^([^/]+)$"))) and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_przestrzeni_ksiazki,"^%s*[Bb]rudnopis/([^/]+)$"))) )then stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; ---- local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local parametry_modul=require("Module:Parametry"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); ---- local tekst_rozwiniety_calego_artykulu_ref=nil; local tablica_analizy_obiektow_strony_dany_modul_ref=nil; local tablica_danych_parametrow_szablonu_strony_ref=nil; ---- local function InneInformacjePrzebneDoAnalizowanejKsiazki() if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki))then if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"])then self.tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"]="tak";end; end; local czy_ksiazka_istnieje_w_tablicy=((tablica_ksiazki)and(tablica_ksiazki.czy_spis_analizowano))and true or false; if(not czy_ksiazka_istnieje_w_tablicy)then tablica_ksiazki.czy_spis_analizowano=true; local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści"); local nazwa_przestrzeni_strona_temp,nazwa_przestrzeni_ksiazki_strona_temp,nazwa_ksiazki_strona_temp; local tabela_artykulow,tabela_licencji_spisu_tresci,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,adres_ksiazki_glownego_spisu_tresci=stronicowyparser_spistresci_modul.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,czy_artykul_korzystany,function(nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona) local tablica_przestrzeni_strona=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni_strona]; if(tablica_przestrzeni_strona)then local tablica_przestrzeni_ksiazki_strona=tablica_przestrzeni_strona[nazwa_przestrzeni_ksiazki_strona]; if(tablica_przestrzeni_ksiazki_strona)then local tablica_ksiazki_strona=tablica_przestrzeni_ksiazki_strona[nazwa_ksiazki_strona]; if(tablica_ksiazki_strona)then if(tablica_ksiazki_strona.spis)then nazwa_przestrzeni_strona_temp,nazwa_przestrzeni_ksiazki_strona_temp,nazwa_ksiazki_strona_temp=nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona; tablica_ksiazki.spis=tablica_ksiazki_strona.spis; tablica_ksiazki.licencja=tablica_ksiazki_strona.licencja; tablica_ksiazki.nazwa_bazowego_spisu=tablica_ksiazki_strona.nazwa_bazowego_spisu; tablica_ksiazki.tab_inne_spisy=tablica_ksiazki_strona.tab_inne_spisy; tablica_ksiazki.dodatkowe_strony_woluminu=tablica_ksiazki_strona.dodatkowe_strony_woluminu; tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy=tablica_ksiazki_strona.adres_woluminu_bazowego_spisu_rzeczy; tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,}; return 1; end; end; end end; end,function(tekst_rozwiniety_calego_artykulu_ref_spis,nazwa_przestrzeni_ref_spis,nazwa_przestrzeni_ksiazki_ref_spis,nazwa_ksiazki_ref_spis,nazwa_artykulu_ref_spis,tablica_analizy_obiektow_strony_dany_modul_ref_spis,tablica_danych_parametrow_szablonu_strony_ref_spis) ---- if((nazwa_przestrzeni==nazwa_przestrzeni_ref_spis)and(nazwa_przestrzeni_ksiazki==nazwa_przestrzeni_ksiazki_ref_spis)and(nazwa_ksiazki==nazwa_ksiazki_ref_spis)and(nazwa_artykulu==nazwa_artykulu_ref_spis))then tekst_rozwiniety_calego_artykulu_ref=tekst_rozwiniety_calego_artykulu_ref_spis; local parametry_modul=require("Module:Parametry"); tablica_analizy_obiektow_strony_dany_modul_ref=parametry_modul["KopiujRekurencyjnieTabelęElementów"](tablica_analizy_obiektow_strony_dany_modul_ref_spis); tablica_danych_parametrow_szablonu_strony_ref=parametry_modul["KopiujRekurencyjnieTabelęElementów"](tablica_danych_parametrow_szablonu_strony_ref_spis); end; ---- end); local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres) tablica_ksiazki.spis=tabela_artykulow; if(czy_artykul_korzystany)then tablica_ksiazki.licencja=tabela_licencji_spisu_tresci; end; tablica_ksiazki.nazwa_bazowego_spisu=nazwa_glownego_spisu; tablica_ksiazki.tab_inne_spisy=tab_inne_spisy; tablica_ksiazki.dodatkowe_strony_woluminu=dodatkowe_artykuly; tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy=czy_podac_adres and adres_ksiazki_glownego_spisu_tresci or nil; end; if(tabela_artykulow==0)then if(czy_artykul_korzystany)then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"korzystana strona główna nie istnieje"); else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"dołączone strony główne nie istnieją",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; elseif(tabela_artykulow)then if(parametry_modul.TypeTable(tabela_artykulow))then if(adres_ksiazki_glownego_spisu_tresci)then __FUNKCJA_SPISU(tablica_ksiazki,true); local tablica_ksiazki_stara=tablica_ksiazki; local artykul,kod_wyniku=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,true); local nazwa_przestrzeni=adres_ksiazki_glownego_spisu_tresci[1]; local nazwa_przestrzeni_ksiazki=adres_ksiazki_glownego_spisu_tresci[2]; local nazwa_ksiazki=adres_ksiazki_glownego_spisu_tresci[3]; if((kod_wyniku==1)or(kod_wyniku==4))then local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); if(not wartosc_wyniku)then return wartosc_wyniku,true; elseif((wartosc_wyniku==0)and(tabela_artykul))then local nazwa_artykulu=artykul; StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,true; end; local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni ,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; elseif(kod_wyniku==2)then local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; elseif(kod_wyniku==3)then local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nil); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; end; else __FUNKCJA_SPISU(tablica_ksiazki,false); end; elseif(tabela_artykulow~=1)then local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku,true; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,true; end; end; else if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak spisów treści do korzystanych książek na ich stronach głównych"))then if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu~=""))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak spisów treści do korzystanych książek na ich stronach głównych"); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"brak spisów treści do dołączonych książek na ich stronach głównych",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; end; end; end; end; end; ---- local wartosc_wyniku,wynik_bledu,artykul_bazowy,kod_wyniku_bazowy=InneInformacjePrzebneDoAnalizowanejKsiazki(); if(wynik_bledu)then return wartosc_wyniku;end; local kod_wyniku_przekierowan=kod_wyniku_bazowy; ---- --if((not tablica_przestrzeni)or(not tablica_przestrzeni_ksiazki)or(not tablica_ksiazki)or(not artykul_analizowany))then -- tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); --end; ---- if(tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy)and((kod_wyniku_bazowy==1)or(kod_wyniku_bazowy==4))then ---- nazwa_przestrzeni=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[1]; nazwa_przestrzeni_ksiazki=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[2]; nazwa_ksiazki=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[3]; nazwa_artykulu=artykul_bazowy; ---- tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki=tablica_ksiazki.referencja_do_nowej_formy_spisu[1],tablica_ksiazki.referencja_do_nowej_formy_spisu[2],tablica_ksiazki.referencja_do_nowej_formy_spisu[3]; end; local tabela_artykulow=tablica_ksiazki.spis; if(tabela_artykulow)then local nazwa_glownego_spisu=tablica_ksiazki.nazwa_bazowego_spisu; local tab_inne_spisy=tablica_ksiazki.tab_inne_spisy; local dodatkowe_artykuly=tablica_ksiazki.dodatkowe_strony_woluminu local artykul,kod_wyniku=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,false); if(kod_wyniku==1)then nazwa_artykulu=artykul; local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku; end; tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); elseif(kod_wyniku==2)then local nazwa_artykulu=artykul; local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; kod_wyniku_przekierowan=kod_wyniku_przekierowan or kod_wyniku; end; local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local PrzekierownieAwaryjne=function() if((not kod_wyniku_przekierowan)or(kod_wyniku_bazowy==4))then --local artykul2,kod_wyniku2=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_modulu); if(strona)then if(strona~=nazwa_modulu)then ---- local tabela_nazw={}; nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw)); nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazwa); local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku; end; tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); nazwa_modulu=strona; else return 0; end; end; end; end; local wynik=PrzekierownieAwaryjne(); if(czy_artykul_korzystany)then self.nazwa_modulu_biezaca=nazwa_modulu; end; if(wynik)then return wynik;end; ---- if(czy_artykul_korzystany)then if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu))then self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni; self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu=nazwa_przestrzeni_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu=nazwa_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu=nazwa_artykulu; end; end; local nazwa_modulu_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and nazwy_modul["NazwaModułu"](self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu) or nazwa_modulu; -- przydzielanie tablicy if(czy_artykul_korzystany)then artykul_analizowany.artykul_biezacy=true; tablica_ksiazki.ksiazka_analizowana=true; end; --koniec --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); if(not tablica_zmiennych)then tablica_zmiennych={};end; if(not tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)then tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2={};end; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); for _,element_w_tablicy_obiekt in pairs(stronicowyparser_obiekty_modul.tablica_obiektowych_form)do local wartosc=element_w_tablicy_obiekt[1]; tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[wartosc]={}; if(czy_artykul_korzystany)then tablica_zmiennych.linkobiekt[wartosc]={};end; end; local function StronaZbiorcza() if(czy_artykul_korzystany)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end; local wynik=stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,tablica_ksiazki.spis,nil,TakFun,NieFun,nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); artykul_analizowany.strona_zbiorcza=(wynik and "tak" or ""); return wynik; end; return nil; end; local strona_zbiorcza=StronaZbiorcza(); local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); ---- local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony; if((not tekst_rozwiniety_calego_artykulu_ref)or(not tablica_analizy_obiektow_strony_dany_modul_ref)or(not tablica_danych_parametrow_szablonu_strony_ref))then tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,nazwa_modulu_aktualna_czy_biezaca,(((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca))and true or nil), nil) else tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=tekst_rozwiniety_calego_artykulu_ref,tablica_analizy_obiektow_strony_dany_modul_ref,tablica_danych_parametrow_szablonu_strony_ref; end; ---- if(not czy_artykul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then return 0;end; end; if(czy_artykul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then if(strona_zbiorcza)then self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; return nil; end; end; local szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); if((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca))then local aktualna_nazwa_modulu=self.tabela_listy_danych_analizy_ksiazki.alternatywna and nazwa_modulu_aktualna_czy_biezaca or nazwy_modul["NazwaModułu"](self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu); local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(self,aktualna_nazwa_modulu); if(tekst)then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst,aktualna_nazwa_modulu); local tablica_danych_parametrow_szablonu_strony={}; for szablon,obiekt,kod in iterator do if(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,aktualna_nazwa_modulu,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if(stronicowyparser_obiekty_modul.strona_start_ze_spisem_rzeczy_strony[nazwa_szablonu])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; return true; elseif(stronicowyparser_obiekty_modul.strona_start[nazwa_szablonu])then self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; local boczne_menu=tabela_parametrow_szablonu["boczne menu"] or ""; local spis_tresci=tabela_parametrow_szablonu["spis treści"] or "TOC"; if((parametry_modul.CzyTak(boczne_menu))or(parametry_modul.CzyTak(spis_tresci)))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return true; end; end); if(wynik)then break;end; end; end; end; end; local uzyskano_w_wyniku_parsowania_wywolanie_szablonu; local analiza_stron_korzystanych_zbiorczych=nil; local stronastart=nil; ---- local tablica_obiekty=stronicowyparser_obiekty_modul.obiekty; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.numerowane_obiekty; local format_elementowy_referencji_obiektowy=stronicowyparser_obiekty_modul.format_elementowy_referencji_obiektowy; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu; local szablony_wykorzystywane_przez_strony_zbiorcze=stronicowyparser_obiekty_modul.szablony_wykorzystywane_przez_strony_zbiorcze; local format_elementowy_obiektowy=stronicowyparser_obiekty_modul.format_elementowy_obiektowy; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.numerowane_obiekty; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_naglowka=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu; ---- local strona_start=stronicowyparser_obiekty_modul.strona_start; local strona_start_ze_spisem_rzeczy_strony=stronicowyparser_obiekty_modul.strona_start_ze_spisem_rzeczy_strony; local strona_start_inne=stronicowyparser_obiekty_modul.strona_start_inne; local szablony_strony_zbiorczej=stronicowyparser_obiekty_modul.strona_zbiorcza; ---- local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); local tabela_elementow_strony_kodow={}; for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod in iterator do local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,uzyskano_w_wyniku_parsowania_wywolanie_szablonu) if(czy_artykul_korzystany)then if(tabela_parametrow_szablonu)then if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then if(strona_start[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; stronastart=true; local boczne_menu=tabela_parametrow_szablonu["boczne menu"] or ""; local spis_tresci=tabela_parametrow_szablonu["spis treści"] or "TOC"; if((parametry_modul.CzyTak(boczne_menu))or(parametry_modul.CzyTak(spis_tresci)))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return; elseif(strona_start_ze_spisem_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; stronastart=true; return; elseif(strona_start_inne[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; stronastart=true; return; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then analiza_stron_korzystanych_zbiorczych=true; local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not parametry_modul.CzyTak(nazwa_prestreni_nazw))and(not parametry_modul.CzyTak(nazwa_jednostki)))then return; end; end; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then analiza_stron_korzystanych_zbiorczych=true; local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not parametry_modul.CzyTak(nazwa_przestrzeni))and(not parametry_modul.CzyTak(nazwa_jednostki)))then return; end; end; end; end; local plik=mw.ustring.match(nazwa_szablonu_wywolania,"^:"); if(plik==nil)then if(tabela_parametrow_szablonu)then if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then local czy_wypowiedzenie=(nazwa_szablonu_wywolania=="Wypowiedzenie"); local czy_linkobiekt; local czy_link;local czy_pobierz; local czy_wypowiedzenie_z_parametrami; local czy_linkobiekt_z_parametrami; if(czy_wypowiedzenie)then czy_linkobiekt=false; czy_link=false; czy_pobierz=false; czy_wypowiedzenie_z_parametrami=parametry_modul.CzyTak(tabela_parametrow_szablonu["rodzaj"]); else czy_linkobiekt=(nazwa_szablonu_wywolania=="LinkObiekt"); if(czy_linkobiekt)then czy_link=true; czy_pobierz=false; czy_linkobiekt_z_parametrami=parametry_modul.CzyTak(tabela_parametrow_szablonu["typ"]); else czy_link=mw.ustring.match(nazwa_szablonu_wywolania,"^Link"); czy_pobierz=(not czy_link) and mw.ustring.match(nazwa_szablonu_wywolania,"^Pobierz") or nil; end; end; if((not czy_link)and(not czy_pobierz))then local wartosc_elementu;local numer_uchwytu; if(not czy_wypowiedzenie_z_parametrami) then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty[nazwa_szablonu_wywolania]; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; else local rodzaj=tabela_parametrow_szablonu["rodzaj"]; if(rodzaj)then wartosc_elementu=format_elementowy_obiektowy[rodzaj] and rodzaj or nil; if(wartosc_elementu)then numer_uchwytu=tablica_obiekty[5]; end; end; end; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; end; elseif(czy_artykul_korzystany)then if(czy_link)then local wartosc_elementu; if(not czy_linkobiekt_z_parametrami)then wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty[nazwa_szablonu_wywolania]; else local typ=tabela_parametrow_szablonu["typ"]; if(typ)then typ=format_elementowy_referencji_obiektowy[typ] and typ or nil; if(typ)then wartosc_elementu=mw.getContentLanguage():ucfirst(typ); end; end; end; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; else local wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu[nazwa_szablonu_wywolania]; if(wartosc_elementu)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; return; end; end; elseif(czy_pobierz)then local wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu[nazwa_szablonu_wywolania]; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; end; end; end; if(czy_wypowiedzenie)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt:"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artykul_korzystany,tablica_obiekty[5],nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; elseif(stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_wprowadzenia_tekstu[nazwa_szablonu_wywolania])then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_naglowka[nazwa_szablonu_wywolania]; local wartosc_elementu;local numer_uchwytu; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; local lista_dwuelementowa=p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,wartosc_elementu,lista_dwuelementowa,kod); if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return; elseif(stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_tekstu[nazwa_szablonu_wywolania])then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu[nazwa_szablonu_wywolania]; local wartosc_elementu;local numer_uchwytu; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; local lista_dwuelementowa=p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); if(lista_dwuelementowa)then local tekst=tabela_parametrow_szablonu["tekst"] or tabela_parametrow_szablonu["treść"] or tabela_parametrow_szablonu[1]; if(tekst)then tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local frame=mw.getCurrentFrame(); tekst=frame:preprocess(tekst); lista_dwuelementowa[2]=tekst; end; end; return; elseif(czy_artykul_korzystany)then if(czy_linkobiekt)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="LinkObiekt:"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,tablica_zmiennych,tabela_parametrow_szablonu,"Obiekt",nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; else if(stronicowyparser_obiekty_modul.szablony_z_lokalnym_spisem_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; return; elseif(stronicowyparser_obiekty_modul.bez_uchwytow_spis_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or ""; local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or ""; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; return; else local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ""; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ""; local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local uchwyt=nazwa_szablonu_wywolania..":"..nazwa_symulacyjnej_strony; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt; end; end; if((stronicowyparser_obiekty_modul.szablony_kontenerowe[nazwa_szablonu_wywolania]) or(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]) )then if(szablony_wykorzystywane_przez_strony_zbiorcze[nazwa_szablonu_wywolania])then p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,true,KtorySzablonMaZwracacKategorie); else p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,nil,KtorySzablonMaZwracacKategorie); end; return; elseif((strona_zbiorcza)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,true,KtorySzablonMaZwracacKategorie); return; end; end; end; end; end; end; end; end; stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_danych_parametrow_szablonu_strony,AnalizaParametrowSzablonuISzablonu); end; local tablica_danych_nazwy_artykulu=tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu] or {}; tablica_danych_nazwy_artykulu.uchwyty_i_numeracje=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2; if(czy_artykul_korzystany)then if(analiza_stron_korzystanych_zbiorczych)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); end; end; local strona; if(czy_artykul_korzystany)then strona="";else strona=nazwa_modulu;end; local toc; if(((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)) or((not czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)))then ---- local tablica_obiektow_strony_danych_kodow_specjalnych_modul=nil; ---- tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul=szablonowe_modul:KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,false); ---- local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu) if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"powtórka nagłowek w stronie korzystanej"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"powtórka nagłowek w stronie korzystanej"); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"powtórka nagłówek w stronie dołączonej",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; end; local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu) if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"nagłowek w tekście rozdziału w stronie dołączonej",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; end; local function CzyJestTakiProblemJakoElementTablicy() return stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"); end; local nazwa_naglowka=stronicowyparser_obiekty_modul.nazwa_szablonu_wprowadzenia_tekstu; local stronicowyparser_glownafunkcjazbieraniadanych_modul=require("Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron"); local tablica_naglowka_obiekty=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_naglowka]; tablica_naglowka_obiekty.uchwyty_bez_numeracji={}; local toc=stronicowyparser_glownafunkcjazbieraniadanych_modul.SpisRzeczyWedlePodanegoTekstu(self,tekst_rozwiniety_calego_artykulu,strona, czy_artykul_korzystany,nil,tablica_naglowka_obiekty.uchwyty_bez_numeracji, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki, nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_obiektow_strony_danych_kodow_specjalnych_modul,{KtorySzablonMaZwracacKategorieNaglowek,KtorySzablonMaZwracacKategorieTekst,CzyJestTakiProblemJakoElementTablicy},nil,tabela_elementow_strony_kodow); tablica_danych_nazwy_artykulu.TOC=toc; end; StronaSubstFunkcja(tablica_danych_nazwy_artykulu,tablica_ksiazki.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; self.tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki=self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw[nazwa_przestrzeni_ksiazki]; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki[nazwa_ksiazki]; end; return self.tabela_listy_danych_analizy_ksiazki; end; return p; 4cetzaagwgdgt3ql5r2w5q1cunwicj1 Szablon:Śródtytuł 10 55016 543779 429585 2026-05-21T22:38:18Z Persino 2851 543779 wikitext text/x-wiki <includeonly><!-- -->{{#invoke:StronicowyParser|AnalizujSzablonemStronicowymArtykuł}}<!-- -->{{#if:{{{bez kategorii stronicowych|}}}||<!-- -->{{#invoke:StronicowyParser|WstawKategorie|{{{uchwyt|{{{1|}}}}}}|Śródtytuł}}<!-- -->}}<!-- -->{{#if:{{{bez dodatkowych sprawdzeń|}}}{{{bez automatu|}}}||<!-- -->{{#invoke:Sprawdź|Parametry | = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s %s do sprawdzenia{{))}} | 1 = txt!;uchwyt | uchwyt = txt!;1 | bez automatu = | bez kategorii stronicowych = }} }}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 7cerj55iporbq0gn1lg4o7a5yyi0ntk Szablon:Śródtytuł/opis 10 55017 543784 530132 2026-05-21T23:29:16Z Persino 2851 /* Opis parametrów */ 543784 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon służy do umieszczania w nagłówkach rozdziałów, by można by było odwołać się do tego rozdziału, za pomocą linków poprzez uchwyt tłumaczony na odwołanie linkowe. == Opis parametrów == ; Parametry szablonu * {{Code|1}} lub {{Code|uchwyt}} - uchwyt do nagłówka rozdziału, jedyne parametry tego szablonu używane zamiennie. ---- Powyższe zmienne o nazwie określonej liczbą naturalną można użyć również bez nazywania parametrów. ---- ; Uwagi * Parametr {{Parametr|bez kategorii stronicowych|tak}}, gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii, (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|bez automatu|tak}}, gdy wartość niepusta, to wyłącza generowanie jakikolwiek kategorii stronicowych i uchwyt wzoru jest dla niego numeracją (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|uchwyt|jakiś uchwyt}} lub {{Parametr|2|jakiś uchwyt}}, to przyjmują wartość niepustą, która jest uchwytem tłumaczonej na tekst danego śródtytułu. == Przykład == ; Przykład &#61;&#61;&#61;&#61; {{s|Śródtytuł|uchwyt}} To jest przykładowy rozdział, by zaprezentować działanie szablonu {{s|s|Śródtytuł}} &#61;&#61;&#61;&#61; ---- ; Wynik ==== {{Śródtytuł|uchwyt}} To jest przykładowy rozdział, by zaprezentować działanie szablonu {{s|Śródtytuł}}==== ---- ; Przykłady działania szablonu {{s|Link{{ROOTPAGENAME}}}} * Oto jest odwołanie do nagłówka rozdziału poprzez szablon: {{s|LinkŚródtytuł|uchwyt}}: ** Oto jest odwołanie do nagłówka rozdziału poprzez szablon: {{LinkŚródtytuł|uchwyt}} * Oto jest odwołanie do nagłówka rozdziału poprzez szablon: {{s|LinkŚródtytuł|uchwyt||Szablon:LinkŚródtytuł}}: ** Oto jest odwołanie do nagłówka rozdziału poprzez szablon: {{LinkŚródtytuł|uchwyt||Szablon:LinkŚródtytuł}} == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Uchwyt nagłówka rozdziału.", "type": "string", "required": true, "aliases": [ "uchwyt" ] } }, "description": "Szablon do odwoływania się do nagłówka rozdziału za pomocą linków poprzez jego uchwyt." } </templatedata> == Zobacz też == * {{s|LinkŚródtytuł}} - szablon wyświetlający link do rozdziału, w danym module lub innym, o danym uchwycie, o tekście samego rozdziału, * {{s|LinkŚródtytułTutaj}} - szablon wyświetlający link do rozdziału, w danym module lub innym, o danym uchwycie, w postaci słowa tutaj. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe kotwic nagłówkowych}} </includeonly> a5koibpo1i4ysxvefri6oxdgku4k7ya 543786 543784 2026-05-21T23:32:07Z Persino 2851 /* Opis parametrów */ 543786 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon służy do umieszczania w nagłówkach rozdziałów, by można by było odwołać się do tego rozdziału, za pomocą linków poprzez uchwyt tłumaczony na odwołanie linkowe. == Opis parametrów == ; Parametry szablonu * {{Code|1}} lub {{Code|uchwyt}} - uchwyt do nagłówka rozdziału, jedyne parametry tego szablonu używane zamiennie. ---- Powyższe zmienne o nazwie określonej liczbą naturalną można użyć również bez nazywania parametrów. ---- ; Uwagi * Parametr {{Parametr|bez kategorii stronicowych|tak}}, gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii, (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|bez automatu|tak}}, gdy wartość niepusta, to wyłącza generowanie jakikolwiek kategorii stronicowych i uchwyt wzoru jest dla niego numeracją (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|uchwyt|jakiś uchwyt}} lub {{Parametr|1|jakiś uchwyt}}, to przyjmują wartość niepustą, która jest uchwytem tłumaczonej na tekst danego śródtytułu. == Przykład == ; Przykład &#61;&#61;&#61;&#61; {{s|Śródtytuł|uchwyt}} To jest przykładowy rozdział, by zaprezentować działanie szablonu {{s|s|Śródtytuł}} &#61;&#61;&#61;&#61; ---- ; Wynik ==== {{Śródtytuł|uchwyt}} To jest przykładowy rozdział, by zaprezentować działanie szablonu {{s|Śródtytuł}}==== ---- ; Przykłady działania szablonu {{s|Link{{ROOTPAGENAME}}}} * Oto jest odwołanie do nagłówka rozdziału poprzez szablon: {{s|LinkŚródtytuł|uchwyt}}: ** Oto jest odwołanie do nagłówka rozdziału poprzez szablon: {{LinkŚródtytuł|uchwyt}} * Oto jest odwołanie do nagłówka rozdziału poprzez szablon: {{s|LinkŚródtytuł|uchwyt||Szablon:LinkŚródtytuł}}: ** Oto jest odwołanie do nagłówka rozdziału poprzez szablon: {{LinkŚródtytuł|uchwyt||Szablon:LinkŚródtytuł}} == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Uchwyt nagłówka rozdziału.", "type": "string", "required": true, "aliases": [ "uchwyt" ] } }, "description": "Szablon do odwoływania się do nagłówka rozdziału za pomocą linków poprzez jego uchwyt." } </templatedata> == Zobacz też == * {{s|LinkŚródtytuł}} - szablon wyświetlający link do rozdziału, w danym module lub innym, o danym uchwycie, o tekście samego rozdziału, * {{s|LinkŚródtytułTutaj}} - szablon wyświetlający link do rozdziału, w danym module lub innym, o danym uchwycie, w postaci słowa tutaj. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe kotwic nagłówkowych}} </includeonly> greb7n3fopzky8qypllg0s58ojcaij7 543790 543786 2026-05-21T23:36:24Z Persino 2851 /* Opis parametrów */ 543790 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon służy do umieszczania w nagłówkach rozdziałów, by można by było odwołać się do tego rozdziału, za pomocą linków poprzez uchwyt tłumaczony na odwołanie linkowe. == Opis parametrów == ; Parametry szablonu * {{Code|1}} lub {{Code|uchwyt}} - uchwyt do nagłówka rozdziału, jedyne parametry tego szablonu używane zamiennie. ---- Powyższe zmienne o nazwie określonej liczbą naturalną można użyć również bez nazywania parametrów. ---- ; Uwagi * Parametr {{Parametr|bez kategorii stronicowych|tak}}, gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii, (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|bez automatu|tak}}, gdy wartość niepusta, to wyłącza generowanie jakikolwiek kategorii stronicowych i uchwyt wzoru jest dla niego numeracją (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|uchwyt|jakiś uchwyt}} lub {{Parametr|1|jakiś uchwyt}}, to przyjmują wartość niepustą, która jest uchwytem tłumaczonej na tekst danego śródtytułu, chociaż szablon ten niczego nie wyświetla. == Przykład == ; Przykład &#61;&#61;&#61;&#61; {{s|Śródtytuł|uchwyt}} To jest przykładowy rozdział, by zaprezentować działanie szablonu {{s|s|Śródtytuł}} &#61;&#61;&#61;&#61; ---- ; Wynik ==== {{Śródtytuł|uchwyt}} To jest przykładowy rozdział, by zaprezentować działanie szablonu {{s|Śródtytuł}}==== ---- ; Przykłady działania szablonu {{s|Link{{ROOTPAGENAME}}}} * Oto jest odwołanie do nagłówka rozdziału poprzez szablon: {{s|LinkŚródtytuł|uchwyt}}: ** Oto jest odwołanie do nagłówka rozdziału poprzez szablon: {{LinkŚródtytuł|uchwyt}} * Oto jest odwołanie do nagłówka rozdziału poprzez szablon: {{s|LinkŚródtytuł|uchwyt||Szablon:LinkŚródtytuł}}: ** Oto jest odwołanie do nagłówka rozdziału poprzez szablon: {{LinkŚródtytuł|uchwyt||Szablon:LinkŚródtytuł}} == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Uchwyt nagłówka rozdziału.", "type": "string", "required": true, "aliases": [ "uchwyt" ] } }, "description": "Szablon do odwoływania się do nagłówka rozdziału za pomocą linków poprzez jego uchwyt." } </templatedata> == Zobacz też == * {{s|LinkŚródtytuł}} - szablon wyświetlający link do rozdziału, w danym module lub innym, o danym uchwycie, o tekście samego rozdziału, * {{s|LinkŚródtytułTutaj}} - szablon wyświetlający link do rozdziału, w danym module lub innym, o danym uchwycie, w postaci słowa tutaj. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe kotwic nagłówkowych}} </includeonly> dbs5y6fhwlec1jn89xr84ubnj82x7fi 543791 543790 2026-05-21T23:38:05Z Persino 2851 /* Opis parametrów */ 543791 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon służy do umieszczania w nagłówkach rozdziałów, by można by było odwołać się do tego rozdziału, za pomocą linków poprzez uchwyt tłumaczony na odwołanie linkowe. == Opis parametrów == ; Parametry szablonu * {{Code|1}} lub {{Code|uchwyt}} - uchwyt do nagłówka rozdziału, jedyne parametry tego szablonu używane zamiennie. ---- Powyższe zmienne o nazwie określonej liczbą naturalną można użyć również bez nazywania parametrów. ---- ; Uwagi * Parametr {{Parametr|bez kategorii stronicowych|tak}}, gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii, (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|bez automatu|tak}}, gdy wartość niepusta, to wyłącza generowanie jakikolwiek kategorii stronicowych (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|uchwyt|jakiś uchwyt}} lub {{Parametr|1|jakiś uchwyt}}, to przyjmują wartość niepustą, która jest uchwytem tłumaczonej na tekst danego śródtytułu, chociaż szablon ten niczego nie wyświetla. == Przykład == ; Przykład &#61;&#61;&#61;&#61; {{s|Śródtytuł|uchwyt}} To jest przykładowy rozdział, by zaprezentować działanie szablonu {{s|s|Śródtytuł}} &#61;&#61;&#61;&#61; ---- ; Wynik ==== {{Śródtytuł|uchwyt}} To jest przykładowy rozdział, by zaprezentować działanie szablonu {{s|Śródtytuł}}==== ---- ; Przykłady działania szablonu {{s|Link{{ROOTPAGENAME}}}} * Oto jest odwołanie do nagłówka rozdziału poprzez szablon: {{s|LinkŚródtytuł|uchwyt}}: ** Oto jest odwołanie do nagłówka rozdziału poprzez szablon: {{LinkŚródtytuł|uchwyt}} * Oto jest odwołanie do nagłówka rozdziału poprzez szablon: {{s|LinkŚródtytuł|uchwyt||Szablon:LinkŚródtytuł}}: ** Oto jest odwołanie do nagłówka rozdziału poprzez szablon: {{LinkŚródtytuł|uchwyt||Szablon:LinkŚródtytuł}} == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Uchwyt nagłówka rozdziału.", "type": "string", "required": true, "aliases": [ "uchwyt" ] } }, "description": "Szablon do odwoływania się do nagłówka rozdziału za pomocą linków poprzez jego uchwyt." } </templatedata> == Zobacz też == * {{s|LinkŚródtytuł}} - szablon wyświetlający link do rozdziału, w danym module lub innym, o danym uchwycie, o tekście samego rozdziału, * {{s|LinkŚródtytułTutaj}} - szablon wyświetlający link do rozdziału, w danym module lub innym, o danym uchwycie, w postaci słowa tutaj. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe kotwic nagłówkowych}} </includeonly> ex3j3jhgc4f0iil2oep9fapgnby3klt Szablon:LinkŚródtytuł/silnik 10 55019 543780 543713 2026-05-21T22:40:44Z Persino 2851 543780 wikitext text/x-wiki <includeonly>{{#ifeq:{{#invoke:StronicowyParser|formatowanie}}|tak|<templatestyles src="Szablon:StronaStart/styles.css" />}}{{#invoke:StronicowyParser|NumerŚródtytułu | {{#ifeq:{{{nazwa książki|{{{3|}}}}}}|{{{nazwa książki|{{{3}}}}}}|nazwa książki|void1}} = {{{nazwa książki|{{{3|}}}}}} | {{#ifeq:{{{nazwa artykułu|{{{2|}}}}}}|{{{nazwa artykułu|{{{2}}}}}}|nazwa artykułu|void2}} = {{{nazwa artykułu|{{{2|}}}}}} | uchwyt = {{{uchwyt|{{{1|}}}}}} | nazwa szablonu = {{{nazwa szablonu|LinkŚródtytuł}}} | klasa = {{#if:{{#invoke:StronicowyParser|formatowanie}}|fonty_rodzina_sans fonty_linknagłówek}} | styl = {{Jeśli niepuste|{{{czcionka|}}}|przed lewy=font:|po lewy=;}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{rozmiar czcionki|}}}|przed lewy=font-size:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{wysokość linii czcionki|}}}|przed lewy=line-height:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{rodzina czcionki|}}}|przed lewy=font-family:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{wariant czcionki|}}}|przed lewy=font-variant:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{rozciągnięcie czcionki|}}}|przed lewy=font-stretch:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{waga czcionki|}}}|przed lewy=font-weight:|po lewy=;}}}}{{#if:{{{czcionka|}}}||{{Jeśli niepuste|{{{styl czcionki|}}}|przed lewy=font-style:|po lewy=;}}}} | bez automatu = {{{bez automatu|}}} }}<!-- -->{{#if:{{{bez kategorii stronicowych|}}}{{{bez automatu|}}}||{{#invoke:StronicowyParser|WstawKategorie|{{{uchwyt|{{{1|}}}}}}|{{{nazwa szablonu|LinkŚródtytuł}}}}}}}<!-- -->{{#if:{{{bez dodatkowych sprawdzeń|}}}||<!-- -->{{#invoke:Sprawdź|Parametry | =problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s %s do sprawdzenia{{))}} | 1 = txt!;uchwyt | uchwyt = txt!;1 | 2 = ;nazwa artykułu | nazwa artykułu = ;2 | 3 = ;nazwa książki | nazwa książki = ;3 | czcionka = | rozmiar czcionki = | wysokość linii czcionki = | rodzina czcionki = | wariant czcionki = | rozciągnięcie czcionki = | waga czcionki = | styl czcionki = | bez automatu = | bez kategorii stronicowych = }}}}</includeonly><noinclude>{{Dokumentacja|zawartość=To jest szablon pomocniczy szablonów:{{s|LinkŚródtytuł}} i {{s|LinkŚródtytułTutaj}}.}}{{Kategoria|Szablony - silniki}}</noinclude> s92axscz4enc3ks1o9q1h4zr4h1t8fx Szablon:LinkŚródtytuł/opis 10 55020 543785 530133 2026-05-21T23:31:23Z Persino 2851 /* Użycie */ 543785 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Instrukcja obsługi == Szablon służy do odwoływania się do nagłówków rozdziałów, w których jest umieszczony szablon {{s|Śródtytuł}} poprzez ten szablon, wtedy jest wyświetlany link o nazwie {{#switch:{{ROOTPAGENAME}}|LinkŚródtytuł=tego rozdziału|LinkŚródtytułTutaj=tutaj}} odnoszący się do niego. == Użycie == Będziemy tutaj wypisywali zmienne szablonu {{s|{{ROOTPAGENAME}}}}. ---- ; Zmienne w wywołaniu podstawowym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu, bez adresu książki, (opcjonalny). ; Dodatkowe opcje * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- ; Zmienne w wywołaniu pełnym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu (opcjonalny), * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ; Podstawowe skompensowane opcje dotyczące czcionek * {{Code|czcionka}} = (rozmiar, wysokość linii, rodzina, wariant, rozciągnięcie, waga i styl) czcionki (opcjonalny). ; Dalsze nieskompensowane opcje dotyczące czcionek * {{Code|rozmiar czcionki}} = rozmiar czcionki linku (opcjonalny, domyślnie ustawione przez przeglądarkę lub za pomocą stylów), * {{Code|wysokość linii czcionki}} = wysokość linii wiersza czcionki linku (opcjonalny, domyślnie ustawione przez przeglądarkę lub za pomocą stylów), * {{Code|rodzina czcionki}} = rodzina czcionki linku (opcjonalny, domyślnie ustawione przez przeglądarkę lub za pomocą stylów), * {{Code|wariant czcionki}} = wariant czcionki linku (opcjonalny, domyślnie ustawione przez przeglądarkę lub za pomocą stylów), * {{Code|rozciągnięcie czcionki}} = rozciągnięcie czcionki linku (opcjonalny, domyślnie ustawione przez przeglądarkę lub za pomocą stylów), * {{Code|waga czcionki}} = waga czcionki linku (opcjonalny, domyślnie ustawione przez przeglądarkę lub za pomocą stylów), * {{Code|styl czcionki}} = styl czcionki linku (opcjonalny, domyślnie ustawione przez przeglądarkę lub za pomocą stylów). ---- Powyższe zmienne o nazwie określonej liczbą naturalną można użyć również bez nazywania parametrów. ---- ; Uwagi * Parametr {{Parametr|bez kategorii stronicowych|tak}}, gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii, (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|bez automatu|tak}}, gdy wartość niepusta, to wyłącza generowanie jakikolwiek kategorii stronicowych i uchwyt wzoru jest dla niego numeracją (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|uchwyt|jakiś uchwyt}} lub {{Parametr|2|jakiś uchwyt}}, to przyjmują wartość niepustą, która jest uchwytem tłumaczonej na link do danego śródtytułu, który jest wyświetlany w wyniku wywołania tego szablonu. == Przykład == ; Przykład działania szablonu {{s|Śródtytuł}} &#61;&#61;&#61;&#61; {{s|Śródtytuł|uchwyt}} To jest przykładowy rozdział, by zaprezentować działanie szablonu {{s|s|LinkŚródtytuł}} i {{s|s|LinkŚródtytułTutaj}} poprzez {{s|s|Śródtytuł|uchwyt}} &#61;&#61;&#61;&#61; ---- ; Wynik ==== {{Śródtytuł|uchwyt}} To jest przykładowy rozdział, by zaprezentować działanie szablonu {{s|LinkŚródtytuł}} i {{s|LinkŚródtytułTutaj}} poprzez {{s|Śródtytuł|uchwyt}}==== ---- ; Przykład pierwszy działania szablonu {{s|{{ROOTPAGENAME}}}} * Oto jest odwołanie do nagłówka rozdziału poprzez szablon: {{s|{{ROOTPAGENAME}}|uchwyt}}: ; Wynik * Oto jest odwołanie do rozdziału (Patrz: {{ {{ROOTPAGENAME}}|uchwyt}}) ---- ; Przykład drugi działania szablonu {{s|{{ROOTPAGENAME}}}} * Oto jest odwołanie do nagłówka rozdziału poprzez szablon: {{s|{{ROOTPAGENAME}}|uchwyt||Szablon:Śródtytuł}}: ; Wynik * Oto jest odwołanie do nagłówka rozdziału poprzez szablon: (Patrz: {{ {{ROOTPAGENAME}}|uchwyt||Szablon:Śródtytuł}}) == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "uchwyt": { "aliases": [ "1" ], "description": "Uchwyt obiektu.", "type": "string", "required": true }, "nazwa artykułu": { "aliases": [ "2" ], "description": "Nazwa artykułu.", "type": "wiki-page-name", "suggested": true }, "nazwa książki": { "aliases": [ "3" ], "description": "Nazwa książki", "type": "wiki-page-name", "suggested": true }, "skrót": { "aliases": [ "4" ], "description": "Skrót książki.", "type": "string" }, "łącznik": { "aliases": [ "5" ], "description": "Łącznik pomiędzy skrótem siążki, a numerem obiektu.", "type": "string" }, "czcionka": { "description": "Styl czcionki linku.", "type": "string" }, "wysokość linii czcionki": { "description": "Wysokość linii wiersza czcionki linku.", "type": "string" }, "rodzina czcionki": { "description": "Rodzina czcionki linku.", "type": "string" }, "wariant czcionki": { "description": "Wariant czcionki linku.", "type": "string" }, "rozciągnięcie czcionki": { "description": "Rozciągnięcie czcionki linku.", "type": "string" }, "waga czcionki": { "description": "Waga czcionki linku.", "type": "string" }, "styl czcionki": { "description": "Styl czcionki linku.", "type": "string" }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" }, "bez automatu": { "description": "Wartość niepusta, tzn. wyłączone, czyli np.: tak, i włączone, gdy wartość pusta, tłumaczenie uchwytu na numer wzoru.", "type": "string" }, "rozmiar czcionki": { "description": "Rozmiar czcionki linku.", "type": "string" } }, "paramOrder": [ "uchwyt", "nazwa artykułu", "nazwa książki", "skrót", "łącznik", "czcionka", "rozmiar czcionki", "wysokość linii czcionki", "rodzina czcionki", "wariant czcionki", "rozciągnięcie czcionki", "waga czcionki", "styl czcionki", "bez kategorii", "bez automatu" ], "description": "Szablon tworzy linki do różnego rodzaju obiektów na stronie podręczników." } </templatedata> ==Zobacz też== ; Szablony nagłówków * {{s|Śródtytuł}} - szablon umieszczany w nagłówkach rozdziałów na ich początku, {{#switch:{{ROOTPAGENAME}} |LinkŚródtytułTutaj = * {{s|LinkŚródtytuł}} - szablon wyświetlający link do rozdziału, w danym module lub innym, o danym uchwycie, o tekście samego rozdziału, |LinkŚródtytuł = * {{s|LinkŚródtytułTutaj}} - szablon wyświetlający link do rozdziału, w danym module lub innym, o danym uchwycie, w postaci słowa tutaj, }} ; Szablony linków sekcji * {{s|Sekcja referencyjna}} - linki wewnętrzne tylko wewnątrz-podręcznikowe do obiektu na tej samej stronie lub innej. ---- {{Szablony linków wewnątrz- i między-serwisowych}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony stronicowe kotwic nagłówkowych | Szablony linków stronicowych }} </includeonly> 48xw36nm6ffrvfe0aet41hycptucyk8 543787 543785 2026-05-21T23:32:36Z Persino 2851 /* Użycie */ 543787 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Instrukcja obsługi == Szablon służy do odwoływania się do nagłówków rozdziałów, w których jest umieszczony szablon {{s|Śródtytuł}} poprzez ten szablon, wtedy jest wyświetlany link o nazwie {{#switch:{{ROOTPAGENAME}}|LinkŚródtytuł=tego rozdziału|LinkŚródtytułTutaj=tutaj}} odnoszący się do niego. == Użycie == Będziemy tutaj wypisywali zmienne szablonu {{s|{{ROOTPAGENAME}}}}. ---- ; Zmienne w wywołaniu podstawowym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu, bez adresu książki, (opcjonalny). ; Dodatkowe opcje * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- ; Zmienne w wywołaniu pełnym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu (opcjonalny), * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ; Podstawowe skompensowane opcje dotyczące czcionek * {{Code|czcionka}} = (rozmiar, wysokość linii, rodzina, wariant, rozciągnięcie, waga i styl) czcionki (opcjonalny). ; Dalsze nieskompensowane opcje dotyczące czcionek * {{Code|rozmiar czcionki}} = rozmiar czcionki linku (opcjonalny, domyślnie ustawione przez przeglądarkę lub za pomocą stylów), * {{Code|wysokość linii czcionki}} = wysokość linii wiersza czcionki linku (opcjonalny, domyślnie ustawione przez przeglądarkę lub za pomocą stylów), * {{Code|rodzina czcionki}} = rodzina czcionki linku (opcjonalny, domyślnie ustawione przez przeglądarkę lub za pomocą stylów), * {{Code|wariant czcionki}} = wariant czcionki linku (opcjonalny, domyślnie ustawione przez przeglądarkę lub za pomocą stylów), * {{Code|rozciągnięcie czcionki}} = rozciągnięcie czcionki linku (opcjonalny, domyślnie ustawione przez przeglądarkę lub za pomocą stylów), * {{Code|waga czcionki}} = waga czcionki linku (opcjonalny, domyślnie ustawione przez przeglądarkę lub za pomocą stylów), * {{Code|styl czcionki}} = styl czcionki linku (opcjonalny, domyślnie ustawione przez przeglądarkę lub za pomocą stylów). ---- Powyższe zmienne o nazwie określonej liczbą naturalną można użyć również bez nazywania parametrów. ---- ; Uwagi * Parametr {{Parametr|bez kategorii stronicowych|tak}}, gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii, (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|bez automatu|tak}}, gdy wartość niepusta, to wyłącza generowanie jakikolwiek kategorii stronicowych i uchwyt wzoru jest dla niego numeracją (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|uchwyt|jakiś uchwyt}} lub {{Parametr|1|jakiś uchwyt}}, to przyjmują wartość niepustą, która jest uchwytem tłumaczonej na link do danego śródtytułu, który jest wyświetlany w wyniku wywołania tego szablonu. == Przykład == ; Przykład działania szablonu {{s|Śródtytuł}} &#61;&#61;&#61;&#61; {{s|Śródtytuł|uchwyt}} To jest przykładowy rozdział, by zaprezentować działanie szablonu {{s|s|LinkŚródtytuł}} i {{s|s|LinkŚródtytułTutaj}} poprzez {{s|s|Śródtytuł|uchwyt}} &#61;&#61;&#61;&#61; ---- ; Wynik ==== {{Śródtytuł|uchwyt}} To jest przykładowy rozdział, by zaprezentować działanie szablonu {{s|LinkŚródtytuł}} i {{s|LinkŚródtytułTutaj}} poprzez {{s|Śródtytuł|uchwyt}}==== ---- ; Przykład pierwszy działania szablonu {{s|{{ROOTPAGENAME}}}} * Oto jest odwołanie do nagłówka rozdziału poprzez szablon: {{s|{{ROOTPAGENAME}}|uchwyt}}: ; Wynik * Oto jest odwołanie do rozdziału (Patrz: {{ {{ROOTPAGENAME}}|uchwyt}}) ---- ; Przykład drugi działania szablonu {{s|{{ROOTPAGENAME}}}} * Oto jest odwołanie do nagłówka rozdziału poprzez szablon: {{s|{{ROOTPAGENAME}}|uchwyt||Szablon:Śródtytuł}}: ; Wynik * Oto jest odwołanie do nagłówka rozdziału poprzez szablon: (Patrz: {{ {{ROOTPAGENAME}}|uchwyt||Szablon:Śródtytuł}}) == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "uchwyt": { "aliases": [ "1" ], "description": "Uchwyt obiektu.", "type": "string", "required": true }, "nazwa artykułu": { "aliases": [ "2" ], "description": "Nazwa artykułu.", "type": "wiki-page-name", "suggested": true }, "nazwa książki": { "aliases": [ "3" ], "description": "Nazwa książki", "type": "wiki-page-name", "suggested": true }, "skrót": { "aliases": [ "4" ], "description": "Skrót książki.", "type": "string" }, "łącznik": { "aliases": [ "5" ], "description": "Łącznik pomiędzy skrótem siążki, a numerem obiektu.", "type": "string" }, "czcionka": { "description": "Styl czcionki linku.", "type": "string" }, "wysokość linii czcionki": { "description": "Wysokość linii wiersza czcionki linku.", "type": "string" }, "rodzina czcionki": { "description": "Rodzina czcionki linku.", "type": "string" }, "wariant czcionki": { "description": "Wariant czcionki linku.", "type": "string" }, "rozciągnięcie czcionki": { "description": "Rozciągnięcie czcionki linku.", "type": "string" }, "waga czcionki": { "description": "Waga czcionki linku.", "type": "string" }, "styl czcionki": { "description": "Styl czcionki linku.", "type": "string" }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" }, "bez automatu": { "description": "Wartość niepusta, tzn. wyłączone, czyli np.: tak, i włączone, gdy wartość pusta, tłumaczenie uchwytu na numer wzoru.", "type": "string" }, "rozmiar czcionki": { "description": "Rozmiar czcionki linku.", "type": "string" } }, "paramOrder": [ "uchwyt", "nazwa artykułu", "nazwa książki", "skrót", "łącznik", "czcionka", "rozmiar czcionki", "wysokość linii czcionki", "rodzina czcionki", "wariant czcionki", "rozciągnięcie czcionki", "waga czcionki", "styl czcionki", "bez kategorii", "bez automatu" ], "description": "Szablon tworzy linki do różnego rodzaju obiektów na stronie podręczników." } </templatedata> ==Zobacz też== ; Szablony nagłówków * {{s|Śródtytuł}} - szablon umieszczany w nagłówkach rozdziałów na ich początku, {{#switch:{{ROOTPAGENAME}} |LinkŚródtytułTutaj = * {{s|LinkŚródtytuł}} - szablon wyświetlający link do rozdziału, w danym module lub innym, o danym uchwycie, o tekście samego rozdziału, |LinkŚródtytuł = * {{s|LinkŚródtytułTutaj}} - szablon wyświetlający link do rozdziału, w danym module lub innym, o danym uchwycie, w postaci słowa tutaj, }} ; Szablony linków sekcji * {{s|Sekcja referencyjna}} - linki wewnętrzne tylko wewnątrz-podręcznikowe do obiektu na tej samej stronie lub innej. ---- {{Szablony linków wewnątrz- i między-serwisowych}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony stronicowe kotwic nagłówkowych | Szablony linków stronicowych }} </includeonly> 40ra4hkeytyu2szptm0k2z4uxe7hbd5 543792 543787 2026-05-21T23:40:28Z Persino 2851 /* Użycie */ 543792 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Instrukcja obsługi == Szablon służy do odwoływania się do nagłówków rozdziałów, w których jest umieszczony szablon {{s|Śródtytuł}} poprzez ten szablon, wtedy jest wyświetlany link o nazwie {{#switch:{{ROOTPAGENAME}}|LinkŚródtytuł=tego rozdziału|LinkŚródtytułTutaj=tutaj}} odnoszący się do niego. == Użycie == Będziemy tutaj wypisywali zmienne szablonu {{s|{{ROOTPAGENAME}}}}. ---- ; Zmienne w wywołaniu podstawowym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu, bez adresu książki, (opcjonalny). ; Dodatkowe opcje * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- ; Zmienne w wywołaniu pełnym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu (opcjonalny), * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ; Podstawowe skompensowane opcje dotyczące czcionek * {{Code|czcionka}} = (rozmiar, wysokość linii, rodzina, wariant, rozciągnięcie, waga i styl) czcionki (opcjonalny). ; Dalsze nieskompensowane opcje dotyczące czcionek * {{Code|rozmiar czcionki}} = rozmiar czcionki linku (opcjonalny, domyślnie ustawione przez przeglądarkę lub za pomocą stylów), * {{Code|wysokość linii czcionki}} = wysokość linii wiersza czcionki linku (opcjonalny, domyślnie ustawione przez przeglądarkę lub za pomocą stylów), * {{Code|rodzina czcionki}} = rodzina czcionki linku (opcjonalny, domyślnie ustawione przez przeglądarkę lub za pomocą stylów), * {{Code|wariant czcionki}} = wariant czcionki linku (opcjonalny, domyślnie ustawione przez przeglądarkę lub za pomocą stylów), * {{Code|rozciągnięcie czcionki}} = rozciągnięcie czcionki linku (opcjonalny, domyślnie ustawione przez przeglądarkę lub za pomocą stylów), * {{Code|waga czcionki}} = waga czcionki linku (opcjonalny, domyślnie ustawione przez przeglądarkę lub za pomocą stylów), * {{Code|styl czcionki}} = styl czcionki linku (opcjonalny, domyślnie ustawione przez przeglądarkę lub za pomocą stylów). ---- Powyższe zmienne o nazwie określonej liczbą naturalną można użyć również bez nazywania parametrów. ---- ; Uwagi * Parametr {{Parametr|bez kategorii stronicowych|tak}}, gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii, (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|bez automatu|tak}}, gdy wartość niepusta, to wyłącza generowanie jakikolwiek kategorii stronicowych i uchwyt śródtytułu jest wtedy powtarzany (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|uchwyt|jakiś uchwyt}} lub {{Parametr|1|jakiś uchwyt}}, to przyjmują wartość niepustą, która jest uchwytem tłumaczonej na link do danego śródtytułu, który jest wyświetlany w wyniku wywołania tego szablonu. == Przykład == ; Przykład działania szablonu {{s|Śródtytuł}} &#61;&#61;&#61;&#61; {{s|Śródtytuł|uchwyt}} To jest przykładowy rozdział, by zaprezentować działanie szablonu {{s|s|LinkŚródtytuł}} i {{s|s|LinkŚródtytułTutaj}} poprzez {{s|s|Śródtytuł|uchwyt}} &#61;&#61;&#61;&#61; ---- ; Wynik ==== {{Śródtytuł|uchwyt}} To jest przykładowy rozdział, by zaprezentować działanie szablonu {{s|LinkŚródtytuł}} i {{s|LinkŚródtytułTutaj}} poprzez {{s|Śródtytuł|uchwyt}}==== ---- ; Przykład pierwszy działania szablonu {{s|{{ROOTPAGENAME}}}} * Oto jest odwołanie do nagłówka rozdziału poprzez szablon: {{s|{{ROOTPAGENAME}}|uchwyt}}: ; Wynik * Oto jest odwołanie do rozdziału (Patrz: {{ {{ROOTPAGENAME}}|uchwyt}}) ---- ; Przykład drugi działania szablonu {{s|{{ROOTPAGENAME}}}} * Oto jest odwołanie do nagłówka rozdziału poprzez szablon: {{s|{{ROOTPAGENAME}}|uchwyt||Szablon:Śródtytuł}}: ; Wynik * Oto jest odwołanie do nagłówka rozdziału poprzez szablon: (Patrz: {{ {{ROOTPAGENAME}}|uchwyt||Szablon:Śródtytuł}}) == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "uchwyt": { "aliases": [ "1" ], "description": "Uchwyt obiektu.", "type": "string", "required": true }, "nazwa artykułu": { "aliases": [ "2" ], "description": "Nazwa artykułu.", "type": "wiki-page-name", "suggested": true }, "nazwa książki": { "aliases": [ "3" ], "description": "Nazwa książki", "type": "wiki-page-name", "suggested": true }, "skrót": { "aliases": [ "4" ], "description": "Skrót książki.", "type": "string" }, "łącznik": { "aliases": [ "5" ], "description": "Łącznik pomiędzy skrótem siążki, a numerem obiektu.", "type": "string" }, "czcionka": { "description": "Styl czcionki linku.", "type": "string" }, "wysokość linii czcionki": { "description": "Wysokość linii wiersza czcionki linku.", "type": "string" }, "rodzina czcionki": { "description": "Rodzina czcionki linku.", "type": "string" }, "wariant czcionki": { "description": "Wariant czcionki linku.", "type": "string" }, "rozciągnięcie czcionki": { "description": "Rozciągnięcie czcionki linku.", "type": "string" }, "waga czcionki": { "description": "Waga czcionki linku.", "type": "string" }, "styl czcionki": { "description": "Styl czcionki linku.", "type": "string" }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" }, "bez automatu": { "description": "Wartość niepusta, tzn. wyłączone, czyli np.: tak, i włączone, gdy wartość pusta, tłumaczenie uchwytu na numer wzoru.", "type": "string" }, "rozmiar czcionki": { "description": "Rozmiar czcionki linku.", "type": "string" } }, "paramOrder": [ "uchwyt", "nazwa artykułu", "nazwa książki", "skrót", "łącznik", "czcionka", "rozmiar czcionki", "wysokość linii czcionki", "rodzina czcionki", "wariant czcionki", "rozciągnięcie czcionki", "waga czcionki", "styl czcionki", "bez kategorii", "bez automatu" ], "description": "Szablon tworzy linki do różnego rodzaju obiektów na stronie podręczników." } </templatedata> ==Zobacz też== ; Szablony nagłówków * {{s|Śródtytuł}} - szablon umieszczany w nagłówkach rozdziałów na ich początku, {{#switch:{{ROOTPAGENAME}} |LinkŚródtytułTutaj = * {{s|LinkŚródtytuł}} - szablon wyświetlający link do rozdziału, w danym module lub innym, o danym uchwycie, o tekście samego rozdziału, |LinkŚródtytuł = * {{s|LinkŚródtytułTutaj}} - szablon wyświetlający link do rozdziału, w danym module lub innym, o danym uchwycie, w postaci słowa tutaj, }} ; Szablony linków sekcji * {{s|Sekcja referencyjna}} - linki wewnętrzne tylko wewnątrz-podręcznikowe do obiektu na tej samej stronie lub innej. ---- {{Szablony linków wewnątrz- i między-serwisowych}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony stronicowe kotwic nagłówkowych | Szablony linków stronicowych }} </includeonly> cb2ay21r8enm77bqcn8dzns8ifa2l4u Moduł:StronicowyParser/Kategorie 828 58542 543795 543191 2026-05-22T00:09:30Z Persino 2851 543795 Scribunto text/plain local p={}; function p.WstawKategorie(frame) local parametry_modul=require("Module:Parametry"); local pf=frame:getParent(); local bez_kategorii=frame.args["bez kategorii"] or pf.args["bez kategorii"]; bez_kategorii=parametry_modul.CzyTak(bez_kategorii); if(bez_kategorii)then return nil;end; local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych; if(not tabela_listy_danych_analizy_ksiazki.problemy)then return nil;end; if(not tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then return nil;end; local nazwa_szablonu_rodzica=frame.args[2] or pf.args["nazwa szablonu rodzica"] or require("Module:Szablonowe").NazwaSzablonu(pf:getTitle()); local kod_uchwytu=frame.args[1]; if(not kod_uchwytu)then return nil;end; local html_modul=require("Module:Html"); kod_uchwytu=html_modul.DecodeHtml(frame.args[1],true); local ktory_szablon_stronicowy_ma_zwracac_kategorie1=nazwa_szablonu_rodzica..":"..kod_uchwytu; local ktory_szablon_stronicowy_ma_zwracac_kategorie2=tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie; if(ktory_szablon_stronicowy_ma_zwracac_kategorie1==ktory_szablon_stronicowy_ma_zwracac_kategorie2)then ----- local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local nazwa_przestrzeni_nazw_strony=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_przestrzeni_nazw_ksiazki_strony=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; local nazwa_ksiazki_strony=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); ----- mw.log("+++++++++++++++++++++++++++++++++++++++") mw.log("Udało się zwrócić dla sygnatury szablonu: "..ktory_szablon_stronicowy_ma_zwracac_kategorie1..".") local parametry_modul=require("Module:Parametry"); local strony_z_wielkiej_litery,strony_z_malej_litery; if(nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)then strony_z_wielkiej_litery="Artykuły"; strony_z_malej_litery="artykułów"; elseif(nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)then strony_z_wielkiej_litery="Artykuły dla dzieci,"; strony_z_malej_litery="artykułów dla dzieci"; elseif((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User)and(mw.ustring.match(nazwa_przestrzeni_nazw_ksiazki_strony,"^([^/]+)$")))then strony_z_wielkiej_litery="Strony użytkowników,"; strony_z_malej_litery="stron użytkowników"; elseif((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks)and(mw.ustring.match(nazwa_przestrzeni_nazw_ksiazki_strony,"^%s*[Bb]rudnopis/([^/]+)$")))then strony_z_wielkiej_litery="Strony brudnopisu projektu,"; strony_z_malej_litery="stron brudnopisu projektu"; else strony_z_wielkiej_litery="Strony niepodręcznikowe"; strony_z_malej_litery="stron niepodręcznikowych"; end; ---- local function Czy_jest_taki_element_w_tabeli_problemow(element, tablica_nazwy_ksiazki) local tablica_element=tablica_nazwy_ksiazki[element]; if(tablica_element)then return true;end; return false; end; local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); local self={}; self.tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki; ---- local tabela_kategorii={}; local latki_modul=require("Module:Łatki"); ---- if(tabela_listy_danych_analizy_ksiazki.problemy["problemy książkowe"])then for nazwa_przestrzeni,tablica_przestrzeni in pairs(tabela_listy_danych_analizy_ksiazki.problemy["problemy książkowe"])do for nazwa_przestrzeni_ksiazki,tablica_nazwy_przestrzeni_ksiazki in pairs(tablica_przestrzeni) do for nazwa_ksiazki, tablica_nazwy_ksiazki in pairs(tablica_nazwy_przestrzeni_ksiazki)do local tablica_bledy=tablica_nazwy_ksiazki["błędy uchwytów dołączonych stron"]; if(tablica_bledy)then for _,element_w_podtablicy_kategorii_bledow in pairs(stronicowyparser_obiekty_modul.tablica_obiektowych_form)do local wartosc_elementu_pierwszego=element_w_podtablicy_kategorii_bledow[1]; local tablica_bledy=tablica_bledy[wartosc_elementu_pierwszego]; if(tablica_bledy)then ---- if((nazwa_przestrzeni==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)and(nazwa_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_woluminu))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z dołączonymi innymi stronami, w książkach, "..latki_modul.Z(element_w_podtablicy_kategorii_bledow[6]).." "..element_w_podtablicy_kategorii_bledow[6]..((mw.ustring.match(element_w_podtablicy_kategorii_bledow[6],"[%s_]+"))and ", " or " ").."ze złymi uchwytami]]"); else parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z dołączonymi ".. ((nazwa_przestrzeni==nazwy_np_modul.Main)and "artykułami, " or((nazwa_przestrzeni==nazwy_np_modul.Wikijunior)and "artykułami dla dzieci, " or (((nazwa_przestrzeni==nazwy_np_modul.User)and(mw.ustring.match(nazwa_przestrzeni_ksiazki,"^([^/]+)$"))) and "stronami użytkowników, " or (((nazwa_przestrzeni==nazwy_np_modul.Wikibooks)and(mw.ustring.match(nazwa_przestrzeni_ksiazki,"^%s*[Bb]rudnopis/([^/]+)$"))) and "stronami brudnopisu projektu, " or "stronami niepodręcznikowymi, ")))).."w innych książkach, "..latki_modul.Z(element_w_podtablicy_kategorii_bledow[6]).." "..element_w_podtablicy_kategorii_bledow[6]..((mw.ustring.match(element_w_podtablicy_kategorii_bledow[6],"[%s_]+"))and ", " or " ").."ze złymi uchwytami]]"); end; end; end; end; ---- local tablica_bledy=tablica_nazwy_ksiazki["brak spisów treści do dołączonych stron"]; if(tablica_bledy)then local czy_pomijaj=Czy_jest_taki_element_w_tabeli_problemow("brak spisów treści do dołączonych książek na ich stronach głównych", tablica_nazwy_ksiazki) or Czy_jest_taki_element_w_tabeli_problemow("dołączone strony główne nie istnieją", tablica_nazwy_ksiazki); if(not czy_pomijaj)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Brakujące spisy treści, dołączonych do "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and "stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu" or "stron niepodręcznikowych"))))..", "..(((nazwa_przestrzeni==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)and(nazwa_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)) and "stron w książkach" or (((nazwa_przestrzeni==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci," or ((nazwa_przestrzeni==nazwy_np_modul.User) and "stron użytkowników," or ((nazwa_przestrzeni==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu," or "stron")))).." w innych książkach")).."]]"); end; end; ---- local tablica_bledy=tablica_nazwy_ksiazki["brak spisów treści do dołączonych książek na ich stronach głównych"]; if(tablica_bledy)then local czy_pomijaj=Czy_jest_taki_element_w_tabeli_problemow("doloczone_strony_glowne_nie_istnieja", tablica_nazwy_ksiazki) or((nazwa_przestrzeni==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni) and(nazwa_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)); if(not czy_pomijaj)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Brak spisu treści, dołączonych do "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and "stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu" or "stron niepodręcznikowych"))))..", do książek"..((nazwa_przestrzeni==nazwy_np_modul.Main)and "" or((nazwa_przestrzeni==nazwy_np_modul.Wikijunior)and " dla dzieci" or ((nazwa_przestrzeni==nazwy_np_modul.User) and " użytkowników" or ((nazwa_przestrzeni==nazwy_np_modul.Wikibooks) and " brudnopisu projektu" or " innych")))).."]]"); end; end; ----- local tablica_bledy=tablica_nazwy_ksiazki["dołączone strony główne nie istnieją"]; if(tablica_bledy)then local czy_ta_sama_ksiazka=((nazwa_przestrzeni==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)and(nazwa_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)); if(not czy_ta_sama_ksiazka)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Nieistniejące strony główne, dołączonych do "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and "stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu" or "stron niepodręcznikowych"))))..", książek"..((nazwa_przestrzeni==nazwy_np_modul.Main)and "" or((nazwa_przestrzeni==nazwy_np_modul.Wikijunior)and " dla dzieci" or ((nazwa_przestrzeni==nazwy_np_modul.User) and " użytkowników" or ((nazwa_przestrzeni==nazwy_np_modul.Wikibooks) and " brudnopisu projektu" or " innych")))).."]]"); end; ----- end; local function Dodaj_kategorie_naglowkuj(kategoria_bledu,czesc_nazwy_kategorii) local tablica_bledy=tablica_nazwy_ksiazki[kategoria_bledu]; if(tablica_bledy)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..":"..strony_z_wielkiej_litery.." z dołączonymi " ..( (nazwa_przestrzeni==nazwy_np_modul.Main) and "artykułami" or ((nazwa_przestrzeni==nazwy_np_modul.Wikijunior) and "artykułami dla dzieci," or (((nazwa_przestrzeni==nazwy_np_modul.User)and(mw.ustring.match(nazwa_przestrzeni_ksiazki,"^([^/]+)$"))) and "stronami użytkowników," or (((nazwa_przestrzeni==nazwy_np_modul.Wikibooks)and(mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/([^/]+)$"))) and "stronami brudnopisu projektu," or "stronami niepodręcznikowymi" ) ) ) ) .." "..czesc_nazwy_kategorii.."]]"); end; end; Dodaj_kategorie_naglowkuj("powtórka nagłówek w stronie dołączonej","z wielokrotnymi użyciami szablonu nagłówka w jednym nagłówku"); Dodaj_kategorie_naglowkuj("nagłowek w tekście rozdziału w stronie dołączonej","z użyciami szablonu nagłówka w tekstach rozdziałów"); end; end; end; end; ---- for _,element_w_podtablicy_kategorii_bledow in pairs(stronicowyparser_obiekty_modul.tablica_obiektowych_form)do local wartosc_elementu_pierwszego=element_w_podtablicy_kategorii_bledow[1]; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",wartosc_elementu_pierwszego))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." "..latki_modul.Z(element_w_podtablicy_kategorii_bledow[6]).." "..element_w_podtablicy_kategorii_bledow[6]..((mw.ustring.match(element_w_podtablicy_kategorii_bledow[6],"[%s_]+"))and "," or "").." ze złymi uchwytami]]"); end; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błędy uchwytów korzystanych stron","Link"..wartosc_elementu_pierwszego))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." ze złymi uchwytami do "..element_w_podtablicy_kategorii_bledow[7].."]]"); end; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",wartosc_elementu_pierwszego,1))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z pustymi uchwytami w odnośnikach do "..element_w_podtablicy_kategorii_bledow[7].."]]"); end; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",wartosc_elementu_pierwszego,2))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z pustymi nazwami artykułów w odnośnikach do "..element_w_podtablicy_kategorii_bledow[7].."]]"); end; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",wartosc_elementu_pierwszego,3))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z pustymi nazwami książek w odnośnikach do "..element_w_podtablicy_kategorii_bledow[7].."]]"); end; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak uchwytu",wartosc_elementu_pierwszego))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z odnośnikami, z brakiem uchwytu, do "..element_w_podtablicy_kategorii_bledow[7].."]]"); end; end; if((tabela_listy_danych_analizy_ksiazki.problemy["brak spisu treści do korzystanych stron"])and((not tabela_listy_danych_analizy_ksiazki.problemy["brak spisów treści do korzystanych książek na ich stronach głównych"])and(not tabela_listy_danych_analizy_ksiazki.problemy["korzystana strona główna nie istnieje"])))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Brakujące spisy treści, do korzystanych "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and " artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and " artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and " stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and " stron brudnopisu projektu" or "stron"))))..", w książkach]]"); end; local function Dodaj_kategorie_naglowkuj(zmienna_korzystane,czesc_nazwy_kategorii) if(tabela_listy_danych_analizy_ksiazki.problemy[zmienna_korzystane])then if(tabela_listy_danych_analizy_ksiazki.problemy[zmienna_korzystane]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." "..czesc_nazwy_kategorii.."]]"); end; end; end; Dodaj_kategorie_naglowkuj("powtórka nagłowek w stronie korzystanej","z wielokrotnymi użyciami szablonu nagłówka w jednym nagłówku") Dodaj_kategorie_naglowkuj("nagłówek w tekście rozdziału w stronie korzystanej","z użyciami szablonu nagłówka w tekstach rozdziałów") if(tabela_listy_danych_analizy_ksiazki.problemy["nieprawidłowe nazwy korzystanych stron"])then if(tabela_listy_danych_analizy_ksiazki.problemy["nieprawidłowe nazwy korzystanych stron"]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z nieprawidłowymi nazwami korzystanych stron]]"); end; end; if(tabela_listy_danych_analizy_ksiazki.problemy["nieprawidłowe nazwy stron dołączanych do stron"])then if(tabela_listy_danych_analizy_ksiazki.problemy["nieprawidłowe nazwy stron dołączanych do stron"]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z nieprawidłowymi nazwami dołączonych stron]]"); end; end; if(tabela_listy_danych_analizy_ksiazki.problemy["strona nie istnieje"])then if(tabela_listy_danych_analizy_ksiazki.problemy["strona nie istnieje"]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z dołączonymi nieistniejącymi stronami]]"); end; end; if(tabela_listy_danych_analizy_ksiazki.problemy["błąd wewnętrzny modułu lua stronicowego parsera"])then if(tabela_listy_danych_analizy_ksiazki.problemy["błąd wewnętrzny modułu lua stronicowego parsera"]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z błędami wewnętrznymi skryptów]]"); end; end; if(tabela_listy_danych_analizy_ksiazki.problemy["niedozwolone znaki w spisach treści"])then if(tabela_listy_danych_analizy_ksiazki.problemy["niedozwolone znaki w spisach treści"]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..":Nazwy "..strony_z_malej_litery..", w spisach treści zawierają niedozwolone znaki]]"); end; end; if((tabela_listy_danych_analizy_ksiazki.problemy["brak spisów treści do korzystanych książek na ich stronach głównych"])and(not tabela_listy_danych_analizy_ksiazki.problemy["korzystana strona główna nie istnieje"]))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Brak spisu treści, korzystanych "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and "stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu" or "stron"))))..", do książek]]"); end; if(tabela_listy_danych_analizy_ksiazki.problemy["korzystana strona główna nie istnieje"])then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Nieistniejące strony główne, korzystanych "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and "stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu" or "stron"))))..", książek]]"); end; return table.concat(tabela_kategorii,""); end; end; return p; 320tt94di15wkdjfd4eaoynhy0e2b3x 543799 543795 2026-05-22T01:09:46Z Persino 2851 543799 Scribunto text/plain local p={}; function p.WstawKategorie(frame) local parametry_modul=require("Module:Parametry"); local pf=frame:getParent(); local bez_kategorii=(frame.args["bez kategorii"] or frame.args["dokumentacja"]) or (pf.args["bez kategorii"] or pf.args["dokumentacja"]); bez_kategorii=parametry_modul.CzyTak(bez_kategorii); if(bez_kategorii)then return nil;end; local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych; if(not tabela_listy_danych_analizy_ksiazki.problemy)then return nil;end; if(not tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then return nil;end; local nazwa_szablonu_rodzica=frame.args[2] or pf.args["nazwa szablonu rodzica"] or require("Module:Szablonowe").NazwaSzablonu(pf:getTitle()); local kod_uchwytu=frame.args[1]; if(not kod_uchwytu)then return nil;end; local html_modul=require("Module:Html"); kod_uchwytu=html_modul.DecodeHtml(frame.args[1],true); local ktory_szablon_stronicowy_ma_zwracac_kategorie1=nazwa_szablonu_rodzica..":"..kod_uchwytu; local ktory_szablon_stronicowy_ma_zwracac_kategorie2=tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie; if(ktory_szablon_stronicowy_ma_zwracac_kategorie1==ktory_szablon_stronicowy_ma_zwracac_kategorie2)then ----- local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local nazwa_przestrzeni_nazw_strony=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_przestrzeni_nazw_ksiazki_strony=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; local nazwa_ksiazki_strony=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); ----- mw.log("+++++++++++++++++++++++++++++++++++++++") mw.log("Udało się zwrócić dla sygnatury szablonu: "..ktory_szablon_stronicowy_ma_zwracac_kategorie1..".") local parametry_modul=require("Module:Parametry"); local strony_z_wielkiej_litery,strony_z_malej_litery; if(nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)then strony_z_wielkiej_litery="Artykuły"; strony_z_malej_litery="artykułów"; elseif(nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)then strony_z_wielkiej_litery="Artykuły dla dzieci,"; strony_z_malej_litery="artykułów dla dzieci"; elseif((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User)and(mw.ustring.match(nazwa_przestrzeni_nazw_ksiazki_strony,"^([^/]+)$")))then strony_z_wielkiej_litery="Strony użytkowników,"; strony_z_malej_litery="stron użytkowników"; elseif((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks)and(mw.ustring.match(nazwa_przestrzeni_nazw_ksiazki_strony,"^%s*[Bb]rudnopis/([^/]+)$")))then strony_z_wielkiej_litery="Strony brudnopisu projektu,"; strony_z_malej_litery="stron brudnopisu projektu"; else strony_z_wielkiej_litery="Strony niepodręcznikowe"; strony_z_malej_litery="stron niepodręcznikowych"; end; ---- local function Czy_jest_taki_element_w_tabeli_problemow(element, tablica_nazwy_ksiazki) local tablica_element=tablica_nazwy_ksiazki[element]; if(tablica_element)then return true;end; return false; end; local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); local self={}; self.tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki; ---- local tabela_kategorii={}; local latki_modul=require("Module:Łatki"); ---- if(tabela_listy_danych_analizy_ksiazki.problemy["problemy książkowe"])then for nazwa_przestrzeni,tablica_przestrzeni in pairs(tabela_listy_danych_analizy_ksiazki.problemy["problemy książkowe"])do for nazwa_przestrzeni_ksiazki,tablica_nazwy_przestrzeni_ksiazki in pairs(tablica_przestrzeni) do for nazwa_ksiazki, tablica_nazwy_ksiazki in pairs(tablica_nazwy_przestrzeni_ksiazki)do local tablica_bledy=tablica_nazwy_ksiazki["błędy uchwytów dołączonych stron"]; if(tablica_bledy)then for _,element_w_podtablicy_kategorii_bledow in pairs(stronicowyparser_obiekty_modul.tablica_obiektowych_form)do local wartosc_elementu_pierwszego=element_w_podtablicy_kategorii_bledow[1]; local tablica_bledy=tablica_bledy[wartosc_elementu_pierwszego]; if(tablica_bledy)then ---- if((nazwa_przestrzeni==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)and(nazwa_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_woluminu))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z dołączonymi innymi stronami, w książkach, "..latki_modul.Z(element_w_podtablicy_kategorii_bledow[6]).." "..element_w_podtablicy_kategorii_bledow[6]..((mw.ustring.match(element_w_podtablicy_kategorii_bledow[6],"[%s_]+"))and ", " or " ").."ze złymi uchwytami]]"); else parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z dołączonymi ".. ((nazwa_przestrzeni==nazwy_np_modul.Main)and "artykułami, " or((nazwa_przestrzeni==nazwy_np_modul.Wikijunior)and "artykułami dla dzieci, " or (((nazwa_przestrzeni==nazwy_np_modul.User)and(mw.ustring.match(nazwa_przestrzeni_ksiazki,"^([^/]+)$"))) and "stronami użytkowników, " or (((nazwa_przestrzeni==nazwy_np_modul.Wikibooks)and(mw.ustring.match(nazwa_przestrzeni_ksiazki,"^%s*[Bb]rudnopis/([^/]+)$"))) and "stronami brudnopisu projektu, " or "stronami niepodręcznikowymi, ")))).."w innych książkach, "..latki_modul.Z(element_w_podtablicy_kategorii_bledow[6]).." "..element_w_podtablicy_kategorii_bledow[6]..((mw.ustring.match(element_w_podtablicy_kategorii_bledow[6],"[%s_]+"))and ", " or " ").."ze złymi uchwytami]]"); end; end; end; end; ---- local tablica_bledy=tablica_nazwy_ksiazki["brak spisów treści do dołączonych stron"]; if(tablica_bledy)then local czy_pomijaj=Czy_jest_taki_element_w_tabeli_problemow("brak spisów treści do dołączonych książek na ich stronach głównych", tablica_nazwy_ksiazki) or Czy_jest_taki_element_w_tabeli_problemow("dołączone strony główne nie istnieją", tablica_nazwy_ksiazki); if(not czy_pomijaj)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Brakujące spisy treści, dołączonych do "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and "stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu" or "stron niepodręcznikowych"))))..", "..(((nazwa_przestrzeni==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)and(nazwa_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)) and "stron w książkach" or (((nazwa_przestrzeni==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci," or ((nazwa_przestrzeni==nazwy_np_modul.User) and "stron użytkowników," or ((nazwa_przestrzeni==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu," or "stron")))).." w innych książkach")).."]]"); end; end; ---- local tablica_bledy=tablica_nazwy_ksiazki["brak spisów treści do dołączonych książek na ich stronach głównych"]; if(tablica_bledy)then local czy_pomijaj=Czy_jest_taki_element_w_tabeli_problemow("doloczone_strony_glowne_nie_istnieja", tablica_nazwy_ksiazki) or((nazwa_przestrzeni==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni) and(nazwa_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)); if(not czy_pomijaj)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Brak spisu treści, dołączonych do "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and "stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu" or "stron niepodręcznikowych"))))..", do książek"..((nazwa_przestrzeni==nazwy_np_modul.Main)and "" or((nazwa_przestrzeni==nazwy_np_modul.Wikijunior)and " dla dzieci" or ((nazwa_przestrzeni==nazwy_np_modul.User) and " użytkowników" or ((nazwa_przestrzeni==nazwy_np_modul.Wikibooks) and " brudnopisu projektu" or " innych")))).."]]"); end; end; ----- local tablica_bledy=tablica_nazwy_ksiazki["dołączone strony główne nie istnieją"]; if(tablica_bledy)then local czy_ta_sama_ksiazka=((nazwa_przestrzeni==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)and(nazwa_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)); if(not czy_ta_sama_ksiazka)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Nieistniejące strony główne, dołączonych do "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and "stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu" or "stron niepodręcznikowych"))))..", książek"..((nazwa_przestrzeni==nazwy_np_modul.Main)and "" or((nazwa_przestrzeni==nazwy_np_modul.Wikijunior)and " dla dzieci" or ((nazwa_przestrzeni==nazwy_np_modul.User) and " użytkowników" or ((nazwa_przestrzeni==nazwy_np_modul.Wikibooks) and " brudnopisu projektu" or " innych")))).."]]"); end; ----- end; local function Dodaj_kategorie_naglowkuj(kategoria_bledu,czesc_nazwy_kategorii) local tablica_bledy=tablica_nazwy_ksiazki[kategoria_bledu]; if(tablica_bledy)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..":"..strony_z_wielkiej_litery.." z dołączonymi " ..( (nazwa_przestrzeni==nazwy_np_modul.Main) and "artykułami" or ((nazwa_przestrzeni==nazwy_np_modul.Wikijunior) and "artykułami dla dzieci," or (((nazwa_przestrzeni==nazwy_np_modul.User)and(mw.ustring.match(nazwa_przestrzeni_ksiazki,"^([^/]+)$"))) and "stronami użytkowników," or (((nazwa_przestrzeni==nazwy_np_modul.Wikibooks)and(mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/([^/]+)$"))) and "stronami brudnopisu projektu," or "stronami niepodręcznikowymi" ) ) ) ) .." "..czesc_nazwy_kategorii.."]]"); end; end; Dodaj_kategorie_naglowkuj("powtórka nagłówek w stronie dołączonej","z wielokrotnymi użyciami szablonu nagłówka w jednym nagłówku"); Dodaj_kategorie_naglowkuj("nagłowek w tekście rozdziału w stronie dołączonej","z użyciami szablonu nagłówka w tekstach rozdziałów"); end; end; end; end; ---- for _,element_w_podtablicy_kategorii_bledow in pairs(stronicowyparser_obiekty_modul.tablica_obiektowych_form)do local wartosc_elementu_pierwszego=element_w_podtablicy_kategorii_bledow[1]; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",wartosc_elementu_pierwszego))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." "..latki_modul.Z(element_w_podtablicy_kategorii_bledow[6]).." "..element_w_podtablicy_kategorii_bledow[6]..((mw.ustring.match(element_w_podtablicy_kategorii_bledow[6],"[%s_]+"))and "," or "").." ze złymi uchwytami]]"); end; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błędy uchwytów korzystanych stron","Link"..wartosc_elementu_pierwszego))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." ze złymi uchwytami do "..element_w_podtablicy_kategorii_bledow[7].."]]"); end; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",wartosc_elementu_pierwszego,1))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z pustymi uchwytami w odnośnikach do "..element_w_podtablicy_kategorii_bledow[7].."]]"); end; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",wartosc_elementu_pierwszego,2))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z pustymi nazwami artykułów w odnośnikach do "..element_w_podtablicy_kategorii_bledow[7].."]]"); end; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",wartosc_elementu_pierwszego,3))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z pustymi nazwami książek w odnośnikach do "..element_w_podtablicy_kategorii_bledow[7].."]]"); end; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak uchwytu",wartosc_elementu_pierwszego))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z odnośnikami, z brakiem uchwytu, do "..element_w_podtablicy_kategorii_bledow[7].."]]"); end; end; if((tabela_listy_danych_analizy_ksiazki.problemy["brak spisu treści do korzystanych stron"])and((not tabela_listy_danych_analizy_ksiazki.problemy["brak spisów treści do korzystanych książek na ich stronach głównych"])and(not tabela_listy_danych_analizy_ksiazki.problemy["korzystana strona główna nie istnieje"])))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Brakujące spisy treści, do korzystanych "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and " artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and " artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and " stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and " stron brudnopisu projektu" or "stron"))))..", w książkach]]"); end; local function Dodaj_kategorie_naglowkuj(zmienna_korzystane,czesc_nazwy_kategorii) if(tabela_listy_danych_analizy_ksiazki.problemy[zmienna_korzystane])then if(tabela_listy_danych_analizy_ksiazki.problemy[zmienna_korzystane]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." "..czesc_nazwy_kategorii.."]]"); end; end; end; Dodaj_kategorie_naglowkuj("powtórka nagłowek w stronie korzystanej","z wielokrotnymi użyciami szablonu nagłówka w jednym nagłówku") Dodaj_kategorie_naglowkuj("nagłówek w tekście rozdziału w stronie korzystanej","z użyciami szablonu nagłówka w tekstach rozdziałów") if(tabela_listy_danych_analizy_ksiazki.problemy["nieprawidłowe nazwy korzystanych stron"])then if(tabela_listy_danych_analizy_ksiazki.problemy["nieprawidłowe nazwy korzystanych stron"]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z nieprawidłowymi nazwami korzystanych stron]]"); end; end; if(tabela_listy_danych_analizy_ksiazki.problemy["nieprawidłowe nazwy stron dołączanych do stron"])then if(tabela_listy_danych_analizy_ksiazki.problemy["nieprawidłowe nazwy stron dołączanych do stron"]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z nieprawidłowymi nazwami dołączonych stron]]"); end; end; if(tabela_listy_danych_analizy_ksiazki.problemy["strona nie istnieje"])then if(tabela_listy_danych_analizy_ksiazki.problemy["strona nie istnieje"]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z dołączonymi nieistniejącymi stronami]]"); end; end; if(tabela_listy_danych_analizy_ksiazki.problemy["błąd wewnętrzny modułu lua stronicowego parsera"])then if(tabela_listy_danych_analizy_ksiazki.problemy["błąd wewnętrzny modułu lua stronicowego parsera"]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z błędami wewnętrznymi skryptów]]"); end; end; if(tabela_listy_danych_analizy_ksiazki.problemy["niedozwolone znaki w spisach treści"])then if(tabela_listy_danych_analizy_ksiazki.problemy["niedozwolone znaki w spisach treści"]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..":Nazwy "..strony_z_malej_litery..", w spisach treści zawierają niedozwolone znaki]]"); end; end; if((tabela_listy_danych_analizy_ksiazki.problemy["brak spisów treści do korzystanych książek na ich stronach głównych"])and(not tabela_listy_danych_analizy_ksiazki.problemy["korzystana strona główna nie istnieje"]))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Brak spisu treści, korzystanych "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and "stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu" or "stron"))))..", do książek]]"); end; if(tabela_listy_danych_analizy_ksiazki.problemy["korzystana strona główna nie istnieje"])then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Nieistniejące strony główne, korzystanych "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and "stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu" or "stron"))))..", książek]]"); end; return table.concat(tabela_kategorii,""); end; end; return p; nq0n60qg381vjioxvs6ceyk0vi4nc10 543836 543799 2026-05-22T08:57:07Z Persino 2851 543836 Scribunto text/plain local p={}; function p.InformacjeKategorie() local parametry_modul=require("Module:Parametry"); local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych; if(not tabela_listy_danych_analizy_ksiazki.problemy)then return nil;end; if(not tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then return nil;end; ----- local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local nazwa_przestrzeni_nazw_strony=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_przestrzeni_nazw_ksiazki_strony=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; local nazwa_ksiazki_strony=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); ----- local parametry_modul=require("Module:Parametry"); local strony_z_wielkiej_litery,strony_z_malej_litery; if(nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)then strony_z_wielkiej_litery="Artykuły"; strony_z_malej_litery="artykułów"; elseif(nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)then strony_z_wielkiej_litery="Artykuły dla dzieci,"; strony_z_malej_litery="artykułów dla dzieci"; elseif((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User)and(mw.ustring.match(nazwa_przestrzeni_nazw_ksiazki_strony,"^([^/]+)$")))then strony_z_wielkiej_litery="Strony użytkowników,"; strony_z_malej_litery="stron użytkowników"; elseif((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks)and(mw.ustring.match(nazwa_przestrzeni_nazw_ksiazki_strony,"^%s*[Bb]rudnopis/([^/]+)$")))then strony_z_wielkiej_litery="Strony brudnopisu projektu,"; strony_z_malej_litery="stron brudnopisu projektu"; else strony_z_wielkiej_litery="Strony niepodręcznikowe"; strony_z_malej_litery="stron niepodręcznikowych"; end; ---- local function Czy_jest_taki_element_w_tabeli_problemow(element, tablica_nazwy_ksiazki) local tablica_element=tablica_nazwy_ksiazki[element]; if(tablica_element)then return true;end; return false; end; local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); local self={}; self.tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki; ---- local tabela_kategorii={}; local latki_modul=require("Module:Łatki"); ---- if(tabela_listy_danych_analizy_ksiazki.problemy["problemy książkowe"])then for nazwa_przestrzeni,tablica_przestrzeni in pairs(tabela_listy_danych_analizy_ksiazki.problemy["problemy książkowe"])do for nazwa_przestrzeni_ksiazki,tablica_nazwy_przestrzeni_ksiazki in pairs(tablica_przestrzeni) do for nazwa_ksiazki, tablica_nazwy_ksiazki in pairs(tablica_nazwy_przestrzeni_ksiazki)do local tablica_bledy=tablica_nazwy_ksiazki["błędy uchwytów dołączonych stron"]; if(tablica_bledy)then for _,element_w_podtablicy_kategorii_bledow in pairs(stronicowyparser_obiekty_modul.tablica_obiektowych_form)do local wartosc_elementu_pierwszego=element_w_podtablicy_kategorii_bledow[1]; local tablica_bledy=tablica_bledy[wartosc_elementu_pierwszego]; if(tablica_bledy)then ---- if((nazwa_przestrzeni==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)and(nazwa_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_woluminu))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z dołączonymi innymi stronami, w książkach, "..latki_modul.Z(element_w_podtablicy_kategorii_bledow[6]).." "..element_w_podtablicy_kategorii_bledow[6]..((mw.ustring.match(element_w_podtablicy_kategorii_bledow[6],"[%s_]+"))and ", " or " ").."ze złymi uchwytami]]"); else parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z dołączonymi ".. ((nazwa_przestrzeni==nazwy_np_modul.Main)and "artykułami, " or((nazwa_przestrzeni==nazwy_np_modul.Wikijunior)and "artykułami dla dzieci, " or (((nazwa_przestrzeni==nazwy_np_modul.User)and(mw.ustring.match(nazwa_przestrzeni_ksiazki,"^([^/]+)$"))) and "stronami użytkowników, " or (((nazwa_przestrzeni==nazwy_np_modul.Wikibooks)and(mw.ustring.match(nazwa_przestrzeni_ksiazki,"^%s*[Bb]rudnopis/([^/]+)$"))) and "stronami brudnopisu projektu, " or "stronami niepodręcznikowymi, ")))).."w innych książkach, "..latki_modul.Z(element_w_podtablicy_kategorii_bledow[6]).." "..element_w_podtablicy_kategorii_bledow[6]..((mw.ustring.match(element_w_podtablicy_kategorii_bledow[6],"[%s_]+"))and ", " or " ").."ze złymi uchwytami]]"); end; end; end; end; ---- local tablica_bledy=tablica_nazwy_ksiazki["brak spisów treści do dołączonych stron"]; if(tablica_bledy)then local czy_pomijaj=Czy_jest_taki_element_w_tabeli_problemow("brak spisów treści do dołączonych książek na ich stronach głównych", tablica_nazwy_ksiazki) or Czy_jest_taki_element_w_tabeli_problemow("dołączone strony główne nie istnieją", tablica_nazwy_ksiazki); if(not czy_pomijaj)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Brakujące spisy treści, dołączonych do "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and "stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu" or "stron niepodręcznikowych"))))..", "..(((nazwa_przestrzeni==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)and(nazwa_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)) and "stron w książkach" or (((nazwa_przestrzeni==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci," or ((nazwa_przestrzeni==nazwy_np_modul.User) and "stron użytkowników," or ((nazwa_przestrzeni==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu," or "stron")))).." w innych książkach")).."]]"); end; end; ---- local tablica_bledy=tablica_nazwy_ksiazki["brak spisów treści do dołączonych książek na ich stronach głównych"]; if(tablica_bledy)then local czy_pomijaj=Czy_jest_taki_element_w_tabeli_problemow("doloczone_strony_glowne_nie_istnieja", tablica_nazwy_ksiazki) or((nazwa_przestrzeni==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni) and(nazwa_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)); if(not czy_pomijaj)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Brak spisu treści, dołączonych do "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and "stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu" or "stron niepodręcznikowych"))))..", do książek"..((nazwa_przestrzeni==nazwy_np_modul.Main)and "" or((nazwa_przestrzeni==nazwy_np_modul.Wikijunior)and " dla dzieci" or ((nazwa_przestrzeni==nazwy_np_modul.User) and " użytkowników" or ((nazwa_przestrzeni==nazwy_np_modul.Wikibooks) and " brudnopisu projektu" or " innych")))).."]]"); end; end; ----- local tablica_bledy=tablica_nazwy_ksiazki["dołączone strony główne nie istnieją"]; if(tablica_bledy)then local czy_ta_sama_ksiazka=((nazwa_przestrzeni==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)and(nazwa_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)); if(not czy_ta_sama_ksiazka)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Nieistniejące strony główne, dołączonych do "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and "stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu" or "stron niepodręcznikowych"))))..", książek"..((nazwa_przestrzeni==nazwy_np_modul.Main)and "" or((nazwa_przestrzeni==nazwy_np_modul.Wikijunior)and " dla dzieci" or ((nazwa_przestrzeni==nazwy_np_modul.User) and " użytkowników" or ((nazwa_przestrzeni==nazwy_np_modul.Wikibooks) and " brudnopisu projektu" or " innych")))).."]]"); end; ----- end; local function Dodaj_kategorie_naglowkuj(kategoria_bledu,czesc_nazwy_kategorii) local tablica_bledy=tablica_nazwy_ksiazki[kategoria_bledu]; if(tablica_bledy)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..":"..strony_z_wielkiej_litery.." z dołączonymi " ..( (nazwa_przestrzeni==nazwy_np_modul.Main) and "artykułami" or ((nazwa_przestrzeni==nazwy_np_modul.Wikijunior) and "artykułami dla dzieci," or (((nazwa_przestrzeni==nazwy_np_modul.User)and(mw.ustring.match(nazwa_przestrzeni_ksiazki,"^([^/]+)$"))) and "stronami użytkowników," or (((nazwa_przestrzeni==nazwy_np_modul.Wikibooks)and(mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/([^/]+)$"))) and "stronami brudnopisu projektu," or "stronami niepodręcznikowymi" ) ) ) ) .." "..czesc_nazwy_kategorii.."]]"); end; end; Dodaj_kategorie_naglowkuj("powtórka nagłówek w stronie dołączonej","z wielokrotnymi użyciami szablonu nagłówka w jednym nagłówku"); Dodaj_kategorie_naglowkuj("nagłowek w tekście rozdziału w stronie dołączonej","z użyciami szablonu nagłówka w tekstach rozdziałów"); end; end; end; end; ---- for _,element_w_podtablicy_kategorii_bledow in pairs(stronicowyparser_obiekty_modul.tablica_obiektowych_form)do local wartosc_elementu_pierwszego=element_w_podtablicy_kategorii_bledow[1]; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",wartosc_elementu_pierwszego))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." "..latki_modul.Z(element_w_podtablicy_kategorii_bledow[6]).." "..element_w_podtablicy_kategorii_bledow[6]..((mw.ustring.match(element_w_podtablicy_kategorii_bledow[6],"[%s_]+"))and "," or "").." ze złymi uchwytami]]"); end; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błędy uchwytów korzystanych stron","Link"..wartosc_elementu_pierwszego))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." ze złymi uchwytami do "..element_w_podtablicy_kategorii_bledow[7].."]]"); end; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",wartosc_elementu_pierwszego,1))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z pustymi uchwytami w odnośnikach do "..element_w_podtablicy_kategorii_bledow[7].."]]"); end; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",wartosc_elementu_pierwszego,2))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z pustymi nazwami artykułów w odnośnikach do "..element_w_podtablicy_kategorii_bledow[7].."]]"); end; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",wartosc_elementu_pierwszego,3))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z pustymi nazwami książek w odnośnikach do "..element_w_podtablicy_kategorii_bledow[7].."]]"); end; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak uchwytu",wartosc_elementu_pierwszego))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z odnośnikami, z brakiem uchwytu, do "..element_w_podtablicy_kategorii_bledow[7].."]]"); end; end; if((tabela_listy_danych_analizy_ksiazki.problemy["brak spisu treści do korzystanych stron"])and((not tabela_listy_danych_analizy_ksiazki.problemy["brak spisów treści do korzystanych książek na ich stronach głównych"])and(not tabela_listy_danych_analizy_ksiazki.problemy["korzystana strona główna nie istnieje"])))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Brakujące spisy treści, do korzystanych "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and " artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and " artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and " stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and " stron brudnopisu projektu" or "stron"))))..", w książkach]]"); end; local function Dodaj_kategorie_naglowkuj(zmienna_korzystane,czesc_nazwy_kategorii) if(tabela_listy_danych_analizy_ksiazki.problemy[zmienna_korzystane])then if(tabela_listy_danych_analizy_ksiazki.problemy[zmienna_korzystane]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." "..czesc_nazwy_kategorii.."]]"); end; end; end; Dodaj_kategorie_naglowkuj("powtórka nagłowek w stronie korzystanej","z wielokrotnymi użyciami szablonu nagłówka w jednym nagłówku") Dodaj_kategorie_naglowkuj("nagłówek w tekście rozdziału w stronie korzystanej","z użyciami szablonu nagłówka w tekstach rozdziałów") if(tabela_listy_danych_analizy_ksiazki.problemy["nieprawidłowe nazwy korzystanych stron"])then if(tabela_listy_danych_analizy_ksiazki.problemy["nieprawidłowe nazwy korzystanych stron"]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z nieprawidłowymi nazwami korzystanych stron]]"); end; end; if(tabela_listy_danych_analizy_ksiazki.problemy["nieprawidłowe nazwy stron dołączanych do stron"])then if(tabela_listy_danych_analizy_ksiazki.problemy["nieprawidłowe nazwy stron dołączanych do stron"]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z nieprawidłowymi nazwami dołączonych stron]]"); end; end; if(tabela_listy_danych_analizy_ksiazki.problemy["strona nie istnieje"])then if(tabela_listy_danych_analizy_ksiazki.problemy["strona nie istnieje"]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z dołączonymi nieistniejącymi stronami]]"); end; end; if(tabela_listy_danych_analizy_ksiazki.problemy["błąd wewnętrzny modułu lua stronicowego parsera"])then if(tabela_listy_danych_analizy_ksiazki.problemy["błąd wewnętrzny modułu lua stronicowego parsera"]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z błędami wewnętrznymi skryptów]]"); end; end; if(tabela_listy_danych_analizy_ksiazki.problemy["niedozwolone znaki w spisach treści"])then if(tabela_listy_danych_analizy_ksiazki.problemy["niedozwolone znaki w spisach treści"]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..":Nazwy "..strony_z_malej_litery..", w spisach treści zawierają niedozwolone znaki]]"); end; end; if((tabela_listy_danych_analizy_ksiazki.problemy["brak spisów treści do korzystanych książek na ich stronach głównych"])and(not tabela_listy_danych_analizy_ksiazki.problemy["korzystana strona główna nie istnieje"]))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Brak spisu treści, korzystanych "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and "stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu" or "stron"))))..", do książek]]"); end; if(tabela_listy_danych_analizy_ksiazki.problemy["korzystana strona główna nie istnieje"])then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Nieistniejące strony główne, korzystanych "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and "stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu" or "stron"))))..", książek]]"); end; return table.concat(tabela_kategorii,""); end; function p.WstawKategorie(frame) local parametry_modul=require("Module:Parametry"); local pf=frame:getParent(); local bez_kategorii=(frame.args["bez kategorii"] or frame.args["dokumentacja"]) or (pf.args["bez kategorii"] or pf.args["dokumentacja"]); bez_kategorii=parametry_modul.CzyTak(bez_kategorii); if(bez_kategorii)then return nil;end; local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych; if(not tabela_listy_danych_analizy_ksiazki.problemy)then return nil;end; if(not tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then return nil;end; local nazwa_szablonu_rodzica=frame.args[2] or pf.args["nazwa szablonu rodzica"] or require("Module:Szablonowe").NazwaSzablonu(pf:getTitle()); local kod_uchwytu=frame.args[1]; if(not kod_uchwytu)then return nil;end; local html_modul=require("Module:Html"); kod_uchwytu=html_modul.DecodeHtml(frame.args[1],true); local ktory_szablon_stronicowy_ma_zwracac_kategorie1=nazwa_szablonu_rodzica..":"..kod_uchwytu; local ktory_szablon_stronicowy_ma_zwracac_kategorie2=tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie; if(ktory_szablon_stronicowy_ma_zwracac_kategorie1==ktory_szablon_stronicowy_ma_zwracac_kategorie2)then local stronicowyparser_informacjekategorie_modul=mw.loadData("Module:StronicowyParser/InformacjeKategorie"); local informacje_o_kategoriach_stronicowego_parsera=stronicowyparser_informacjekategorie_modul.informacje_o_kategoriach_stronicowego_parsera; return informacje_o_kategoriach_stronicowego_parsera; end; end; return p; 1j46may4l28k5k6w8af3spunqjb0ajr 543837 543836 2026-05-22T09:14:17Z Persino 2851 543837 Scribunto text/plain local p={}; function p.InformacjeKategorie() local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych; if(not tabela_listy_danych_analizy_ksiazki.problemy)then return nil;end; if(not tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then return nil;end; ----- local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local nazwa_przestrzeni_nazw_strony=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_przestrzeni_nazw_ksiazki_strony=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; local nazwa_ksiazki_strony=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); ----- local parametry_modul=require("Module:Parametry"); local strony_z_wielkiej_litery,strony_z_malej_litery; if(nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)then strony_z_wielkiej_litery="Artykuły"; strony_z_malej_litery="artykułów"; elseif(nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)then strony_z_wielkiej_litery="Artykuły dla dzieci,"; strony_z_malej_litery="artykułów dla dzieci"; elseif((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User)and(mw.ustring.match(nazwa_przestrzeni_nazw_ksiazki_strony,"^([^/]+)$")))then strony_z_wielkiej_litery="Strony użytkowników,"; strony_z_malej_litery="stron użytkowników"; elseif((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks)and(mw.ustring.match(nazwa_przestrzeni_nazw_ksiazki_strony,"^%s*[Bb]rudnopis/([^/]+)$")))then strony_z_wielkiej_litery="Strony brudnopisu projektu,"; strony_z_malej_litery="stron brudnopisu projektu"; else strony_z_wielkiej_litery="Strony niepodręcznikowe"; strony_z_malej_litery="stron niepodręcznikowych"; end; ---- local function Czy_jest_taki_element_w_tabeli_problemow(element, tablica_nazwy_ksiazki) local tablica_element=tablica_nazwy_ksiazki[element]; if(tablica_element)then return true;end; return false; end; local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); local self={}; self.tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki; ---- local tabela_kategorii={}; local latki_modul=require("Module:Łatki"); ---- if(tabela_listy_danych_analizy_ksiazki.problemy["problemy książkowe"])then for nazwa_przestrzeni,tablica_przestrzeni in pairs(tabela_listy_danych_analizy_ksiazki.problemy["problemy książkowe"])do for nazwa_przestrzeni_ksiazki,tablica_nazwy_przestrzeni_ksiazki in pairs(tablica_przestrzeni) do for nazwa_ksiazki, tablica_nazwy_ksiazki in pairs(tablica_nazwy_przestrzeni_ksiazki)do local tablica_bledy=tablica_nazwy_ksiazki["błędy uchwytów dołączonych stron"]; if(tablica_bledy)then for _,element_w_podtablicy_kategorii_bledow in pairs(stronicowyparser_obiekty_modul.tablica_obiektowych_form)do local wartosc_elementu_pierwszego=element_w_podtablicy_kategorii_bledow[1]; local tablica_bledy=tablica_bledy[wartosc_elementu_pierwszego]; if(tablica_bledy)then ---- if((nazwa_przestrzeni==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)and(nazwa_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_woluminu))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z dołączonymi innymi stronami, w książkach, "..latki_modul.Z(element_w_podtablicy_kategorii_bledow[6]).." "..element_w_podtablicy_kategorii_bledow[6]..((mw.ustring.match(element_w_podtablicy_kategorii_bledow[6],"[%s_]+"))and ", " or " ").."ze złymi uchwytami]]"); else parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z dołączonymi ".. ((nazwa_przestrzeni==nazwy_np_modul.Main)and "artykułami, " or((nazwa_przestrzeni==nazwy_np_modul.Wikijunior)and "artykułami dla dzieci, " or (((nazwa_przestrzeni==nazwy_np_modul.User)and(mw.ustring.match(nazwa_przestrzeni_ksiazki,"^([^/]+)$"))) and "stronami użytkowników, " or (((nazwa_przestrzeni==nazwy_np_modul.Wikibooks)and(mw.ustring.match(nazwa_przestrzeni_ksiazki,"^%s*[Bb]rudnopis/([^/]+)$"))) and "stronami brudnopisu projektu, " or "stronami niepodręcznikowymi, ")))).."w innych książkach, "..latki_modul.Z(element_w_podtablicy_kategorii_bledow[6]).." "..element_w_podtablicy_kategorii_bledow[6]..((mw.ustring.match(element_w_podtablicy_kategorii_bledow[6],"[%s_]+"))and ", " or " ").."ze złymi uchwytami]]"); end; end; end; end; ---- local tablica_bledy=tablica_nazwy_ksiazki["brak spisów treści do dołączonych stron"]; if(tablica_bledy)then local czy_pomijaj=Czy_jest_taki_element_w_tabeli_problemow("brak spisów treści do dołączonych książek na ich stronach głównych", tablica_nazwy_ksiazki) or Czy_jest_taki_element_w_tabeli_problemow("dołączone strony główne nie istnieją", tablica_nazwy_ksiazki); if(not czy_pomijaj)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Brakujące spisy treści, dołączonych do "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and "stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu" or "stron niepodręcznikowych"))))..", "..(((nazwa_przestrzeni==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)and(nazwa_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)) and "stron w książkach" or (((nazwa_przestrzeni==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci," or ((nazwa_przestrzeni==nazwy_np_modul.User) and "stron użytkowników," or ((nazwa_przestrzeni==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu," or "stron")))).." w innych książkach")).."]]"); end; end; ---- local tablica_bledy=tablica_nazwy_ksiazki["brak spisów treści do dołączonych książek na ich stronach głównych"]; if(tablica_bledy)then local czy_pomijaj=Czy_jest_taki_element_w_tabeli_problemow("doloczone_strony_glowne_nie_istnieja", tablica_nazwy_ksiazki) or((nazwa_przestrzeni==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni) and(nazwa_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)); if(not czy_pomijaj)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Brak spisu treści, dołączonych do "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and "stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu" or "stron niepodręcznikowych"))))..", do książek"..((nazwa_przestrzeni==nazwy_np_modul.Main)and "" or((nazwa_przestrzeni==nazwy_np_modul.Wikijunior)and " dla dzieci" or ((nazwa_przestrzeni==nazwy_np_modul.User) and " użytkowników" or ((nazwa_przestrzeni==nazwy_np_modul.Wikibooks) and " brudnopisu projektu" or " innych")))).."]]"); end; end; ----- local tablica_bledy=tablica_nazwy_ksiazki["dołączone strony główne nie istnieją"]; if(tablica_bledy)then local czy_ta_sama_ksiazka=((nazwa_przestrzeni==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)and(nazwa_ksiazki==tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)); if(not czy_ta_sama_ksiazka)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Nieistniejące strony główne, dołączonych do "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and "stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu" or "stron niepodręcznikowych"))))..", książek"..((nazwa_przestrzeni==nazwy_np_modul.Main)and "" or((nazwa_przestrzeni==nazwy_np_modul.Wikijunior)and " dla dzieci" or ((nazwa_przestrzeni==nazwy_np_modul.User) and " użytkowników" or ((nazwa_przestrzeni==nazwy_np_modul.Wikibooks) and " brudnopisu projektu" or " innych")))).."]]"); end; ----- end; local function Dodaj_kategorie_naglowkuj(kategoria_bledu,czesc_nazwy_kategorii) local tablica_bledy=tablica_nazwy_ksiazki[kategoria_bledu]; if(tablica_bledy)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..":"..strony_z_wielkiej_litery.." z dołączonymi " ..( (nazwa_przestrzeni==nazwy_np_modul.Main) and "artykułami" or ((nazwa_przestrzeni==nazwy_np_modul.Wikijunior) and "artykułami dla dzieci," or (((nazwa_przestrzeni==nazwy_np_modul.User)and(mw.ustring.match(nazwa_przestrzeni_ksiazki,"^([^/]+)$"))) and "stronami użytkowników," or (((nazwa_przestrzeni==nazwy_np_modul.Wikibooks)and(mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/([^/]+)$"))) and "stronami brudnopisu projektu," or "stronami niepodręcznikowymi" ) ) ) ) .." "..czesc_nazwy_kategorii.."]]"); end; end; Dodaj_kategorie_naglowkuj("powtórka nagłówek w stronie dołączonej","z wielokrotnymi użyciami szablonu nagłówka w jednym nagłówku"); Dodaj_kategorie_naglowkuj("nagłowek w tekście rozdziału w stronie dołączonej","z użyciami szablonu nagłówka w tekstach rozdziałów"); end; end; end; end; ---- for _,element_w_podtablicy_kategorii_bledow in pairs(stronicowyparser_obiekty_modul.tablica_obiektowych_form)do local wartosc_elementu_pierwszego=element_w_podtablicy_kategorii_bledow[1]; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",wartosc_elementu_pierwszego))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." "..latki_modul.Z(element_w_podtablicy_kategorii_bledow[6]).." "..element_w_podtablicy_kategorii_bledow[6]..((mw.ustring.match(element_w_podtablicy_kategorii_bledow[6],"[%s_]+"))and "," or "").." ze złymi uchwytami]]"); end; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błędy uchwytów korzystanych stron","Link"..wartosc_elementu_pierwszego))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." ze złymi uchwytami do "..element_w_podtablicy_kategorii_bledow[7].."]]"); end; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",wartosc_elementu_pierwszego,1))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z pustymi uchwytami w odnośnikach do "..element_w_podtablicy_kategorii_bledow[7].."]]"); end; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",wartosc_elementu_pierwszego,2))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z pustymi nazwami artykułów w odnośnikach do "..element_w_podtablicy_kategorii_bledow[7].."]]"); end; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",wartosc_elementu_pierwszego,3))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z pustymi nazwami książek w odnośnikach do "..element_w_podtablicy_kategorii_bledow[7].."]]"); end; if(stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak uchwytu",wartosc_elementu_pierwszego))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z odnośnikami, z brakiem uchwytu, do "..element_w_podtablicy_kategorii_bledow[7].."]]"); end; end; if((tabela_listy_danych_analizy_ksiazki.problemy["brak spisu treści do korzystanych stron"])and((not tabela_listy_danych_analizy_ksiazki.problemy["brak spisów treści do korzystanych książek na ich stronach głównych"])and(not tabela_listy_danych_analizy_ksiazki.problemy["korzystana strona główna nie istnieje"])))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Brakujące spisy treści, do korzystanych "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and " artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and " artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and " stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and " stron brudnopisu projektu" or "stron"))))..", w książkach]]"); end; local function Dodaj_kategorie_naglowkuj(zmienna_korzystane,czesc_nazwy_kategorii) if(tabela_listy_danych_analizy_ksiazki.problemy[zmienna_korzystane])then if(tabela_listy_danych_analizy_ksiazki.problemy[zmienna_korzystane]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." "..czesc_nazwy_kategorii.."]]"); end; end; end; Dodaj_kategorie_naglowkuj("powtórka nagłowek w stronie korzystanej","z wielokrotnymi użyciami szablonu nagłówka w jednym nagłówku") Dodaj_kategorie_naglowkuj("nagłówek w tekście rozdziału w stronie korzystanej","z użyciami szablonu nagłówka w tekstach rozdziałów") if(tabela_listy_danych_analizy_ksiazki.problemy["nieprawidłowe nazwy korzystanych stron"])then if(tabela_listy_danych_analizy_ksiazki.problemy["nieprawidłowe nazwy korzystanych stron"]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z nieprawidłowymi nazwami korzystanych stron]]"); end; end; if(tabela_listy_danych_analizy_ksiazki.problemy["nieprawidłowe nazwy stron dołączanych do stron"])then if(tabela_listy_danych_analizy_ksiazki.problemy["nieprawidłowe nazwy stron dołączanych do stron"]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z nieprawidłowymi nazwami dołączonych stron]]"); end; end; if(tabela_listy_danych_analizy_ksiazki.problemy["strona nie istnieje"])then if(tabela_listy_danych_analizy_ksiazki.problemy["strona nie istnieje"]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z dołączonymi nieistniejącymi stronami]]"); end; end; if(tabela_listy_danych_analizy_ksiazki.problemy["błąd wewnętrzny modułu lua stronicowego parsera"])then if(tabela_listy_danych_analizy_ksiazki.problemy["błąd wewnętrzny modułu lua stronicowego parsera"]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": "..strony_z_wielkiej_litery.." z błędami wewnętrznymi skryptów]]"); end; end; if(tabela_listy_danych_analizy_ksiazki.problemy["niedozwolone znaki w spisach treści"])then if(tabela_listy_danych_analizy_ksiazki.problemy["niedozwolone znaki w spisach treści"]==0)then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..":Nazwy "..strony_z_malej_litery..", w spisach treści zawierają niedozwolone znaki]]"); end; end; if((tabela_listy_danych_analizy_ksiazki.problemy["brak spisów treści do korzystanych książek na ich stronach głównych"])and(not tabela_listy_danych_analizy_ksiazki.problemy["korzystana strona główna nie istnieje"]))then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Brak spisu treści, korzystanych "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and "stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu" or "stron"))))..", do książek]]"); end; if(tabela_listy_danych_analizy_ksiazki.problemy["korzystana strona główna nie istnieje"])then parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..nazwy_np_modul.Category..": Nieistniejące strony główne, korzystanych "..((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "artykułów" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User) and "stron użytkowników" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks) and "stron brudnopisu projektu" or "stron"))))..", książek]]"); end; return table.concat(tabela_kategorii,""); end; function p.WstawKategorie(frame) local parametry_modul=require("Module:Parametry"); local pf=frame:getParent(); local bez_kategorii=(frame.args["bez kategorii"] or frame.args["dokumentacja"]) or (pf.args["bez kategorii"] or pf.args["dokumentacja"]); bez_kategorii=parametry_modul.CzyTak(bez_kategorii); if(bez_kategorii)then return nil;end; local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych; if(not tabela_listy_danych_analizy_ksiazki.problemy)then return nil;end; if(not tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then return nil;end; local nazwa_szablonu_rodzica=frame.args[2] or pf.args["nazwa szablonu rodzica"] or require("Module:Szablonowe").NazwaSzablonu(pf:getTitle()); local kod_uchwytu=frame.args[1]; if(not kod_uchwytu)then return nil;end; local html_modul=require("Module:Html"); kod_uchwytu=html_modul.DecodeHtml(frame.args[1],true); local ktory_szablon_stronicowy_ma_zwracac_kategorie1=nazwa_szablonu_rodzica..":"..kod_uchwytu; local ktory_szablon_stronicowy_ma_zwracac_kategorie2=tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie; if(ktory_szablon_stronicowy_ma_zwracac_kategorie1==ktory_szablon_stronicowy_ma_zwracac_kategorie2)then local stronicowyparser_informacjekategorie_modul=mw.loadData("Module:StronicowyParser/InformacjeKategorie"); local informacje_o_kategoriach_stronicowego_parsera=stronicowyparser_informacjekategorie_modul.informacje_o_kategoriach_stronicowego_parsera; return informacje_o_kategoriach_stronicowego_parsera; end; end; return p; d9geqbwfck3n8gjgmvju207l78tgvnj Pruski/Lekcja11 0 61046 543768 542487 2026-05-21T21:45:22Z Aklbmd164 37133 /* ēn */ 543768 wikitext text/x-wiki '''<big>Lakciōni 11</big>''' == Przyimki == Przyimki w języku pruskim łączą się najczęściej z rzeczownikami i zaimkami w bierniku i celowniku. Na dzisiejszej lekcji poznamy część z nich i nauczymy się, z jakimi przypadkami się ich używa. == ēn == Przyimek ''ēn'' łączy się z rzeczownikiem lub zaimkiem w celowniku, jeśli ma znaczenie '''''w''''' i oznacza sytuację statyczną, np.: * As asma '''en''' buttu – Jestem w domu. * Mes buwinnimai '''en''' Prūsai – Mieszkamy w Prusach. * As skaitāwuns artīkelin '''en''' awīzei – Przeczytałem artykuł w gazecie. lub z biernikiem, jeśli ma znaczenie '''''do''''' i oznacza sytuację dynamiczną, np.: * As ēima '''en''' skūlin – Idę do szkoły. * Mes jāmai '''en''' mīstan – Jedziemy do miasta. i '''''w''''', ale w sensie czasowym, np.: * Tāns neikaūja '''en''' naktin – On spaceruje w nocy. * Tenēi ni dīlai '''en''' ketwirtikan – Oni nie pracują w czwartek. Czasami przyimek ''ēn'' w znaczeniu ''w'' łączy się z biernikiem, np. ''As druwēi en Dēiwan'' – ''Wierzę w Boga''. <br> Ważne: Kiedy mówimy np. o osobach, np. ''Dzwonię do ciebie'', ''Idę do babci'' zamiast konstrukcji z ''ēn'' używa się celownika, np. ''As telafōni ti'', albo przyimka ''prēi'', np. ''As ēima prei annin''. <br> Uwaga! Jeśli przyimek ''ēn'' łączy się ze słowem, które ma więcej niż jedną sylabę, wtedy wyraz ''ēn'' traci akcent. == ezze == Przyimek ''ezze'' łączy się z rzeczownikiem lub zaimkiem w celowniku, jeśli ma znaczenie '''''od''''', np.: * As pagaūwa stan '''ezze''' tenessei – Dostałem to od niej. * As ni bēi stwen '''ezze''' mettu – Nie byłem tam od roku. lub z biernikiem, jeśli ma znaczenie '''''o''''', np.: * As mīriwuns '''ezze''' tin – Myślałem o tobie. * Tenā prasīwusi '''ezze''' šan mērgan – Pytała o tą dziewczynę. Przyimek ''ezze'' występuje również w konstrukcjach ze stroną bierną w znaczeniu ''przez'' i występuje ze słowem w celowniku, np. ''Pēismen pastāi peisātan '''ezze''' mērgai'' – ''List został napisany '''przez''' dziewczynę''. == prēi == Przyimek '''prēi''' łączy się z biernikiem i ma cztery znaczenia: * '''''przy''''', np. As stalāi '''prei''' stallin – Stoję przy stole. * '''''nad''''', np. Mes sīndimai '''prei''' azzaran – Siedzimy nad jeziorem. * '''''do''''', np. Tenā gūbi '''prei''' dīlin – Poszła do pracy. * '''''u''''', np. As wīrst īduns pussideinan '''prei''' annin – Zjem obiad u babci. Podobnie jak przyimek ''ēn'' traci akcent w połączeniu ze słowami, które mają więcej niż jedną sylabę. == pēr == Przyimek '''pēr''' również łączy się z biernikiem i ma trzy znaczenia: * '''''za''''', np. Sakninsads ast '''per''' buttan – Ogród jest za domem. * '''''dla''''', np. Šī dajā ast '''pēr''' tin – Ten prezent jest dla ciebie. * '''''na''''', np. '''Per''' brōkastin as īma pautinnin – Na śniadanie jem jajecznicę. Podobnie jak przyimki ''ēn'' i ''prēi'' traci akcent w połączeniu ze słowami, które mają więcej niż jedną sylabę. <br> Słowo ''pēr'' jest używane także jako odpowiednik polskiego ''za'', ''zbyt'', np. ''Tu assei '''per''' māldan'' – ''Jesteś za młody''. == pa == Przyimek '''pa''' łączy się z celownikiem w znaczeniu '''''pod''''', np.: * Sunnis ast '''pa''' stallu – Pies jest pod stołem. lub z biernikiem w znaczeniu '''''po''''', np.: * '''Pa''' bitasīdin as ēima bigātwei – Po kolacji idę biegać. == sēn == Przyimek '''sēn''' łączy się z biernikiem w znaczeniu '''''z''''' (kimś, czymś), np. * As ēima '''sen''' mamman en kāupabutan – Idę z mamą do sklepu. Przyimek ''sēn'' traci akcent w połączeniach z wyrazami, które mają więcej niż jedną sylabę. <br> Za pomocą przyimka ''sēn'' można także wyrażać konstrukcje, których w języku polskim odpowiednikiem byłoby słowo w narzędniku, np.: * Tāns jāt '''sen''' welsipēdan. – On jedzie rowerem. * Malnīkai spīlai '''sen''' spīlispagaptins. – Dzieci bawią się zabawkami. == Inne przyimki == Używane z biernikiem: * '''iz''' – '''z''' (skądś), np. As asma '''iz''' Pōlin – Jestem z Polski. * '''na''' – '''na''', np. Lāiskas lānza '''na''' stallin – Książka leży na stole. * '''sirzdau''' – '''między, pomiędzy''', np. Sastā ast '''sirzdau''' buttan be garrins – Ławka jest pomiędzy domem a drzewami. * '''kīrsa''' – '''nad''', np. Bildin kabba '''kīrsa''' laztan – Obraz wisi nad łóżkiem. * '''šlāit''' – '''bez''', np. As jāja '''šlāit''' tennan – Pojechałam bez niej. * '''pagār''' – '''obok''', '''przy''', np. Peisāistals ast '''pagār''' laztan – Biurko jest obok łóżka. * '''ēr''' – '''do''' (w znaczeniu czasowym), np. As turri segītun stan '''ēr''' wisasīdin – Muszę to zrobić do wtorku. * '''pra''' – '''przez''', np. Wags engūbi '''pra''' langstan – Złodziej wszedł przez okno. * '''pirzdau''' – '''przed''', np. Kweitēi aūga '''pirzdau''' buttan – Przed domem rosną kwiaty. Słowo ''pirzdau'' jest używane także w konstrukcjach takich jak np. '''''pirzdau''' septinnins mettans'' (siedem lat '''temu''') <br> Używając pruskiego przyimka ''na'' trzeba pamiętać, że używa się go głównie w kontekście fizycznym, np. ''na stallin'' i nie zawsze odpowiada polskiemu ''na'', np.: * Na obiad jem rybę – Per pussideinan as īma zukkan. * Nie mam na to czasu – As ni turri kērdan pēr stan. * Ona patrzy na mnie – Tenā dirēi ēn min. Pruskiego przyimka ''pra'' nie należy mylić z polskim ''przez'' np. w zdaniu ''To wszystko przez ciebie'', które tłumaczy się jako ''Sta wis ast twāise paggan'' (dopełniacz + paggan), co dosłownie znaczy ''To wszystko z twojego powodu''. Inne przykłady tej konstrukcji to np.: * Tāns aulaūwa rākas paggan – On zmarł na raka. * Tāns raudāwuns deiwūtiskwas paggan – On płakał ze szczęścia. W słowniku http://prusaspira.org/wirdeins przy niektórych czasownikach jest podane z jakim przyimkiem i przypadkiem się łączą, np. w haśle [http://prusaspira.org/wirdeins?akc=Iz&tap=W&bila=3&wirds=druw%C4%ABtwei druwītwei] n69gjhdvddqddt5lbxb9ph3nrrr13mf 543769 543768 2026-05-21T21:46:18Z Aklbmd164 37133 /* pēr */ 543769 wikitext text/x-wiki '''<big>Lakciōni 11</big>''' == Przyimki == Przyimki w języku pruskim łączą się najczęściej z rzeczownikami i zaimkami w bierniku i celowniku. Na dzisiejszej lekcji poznamy część z nich i nauczymy się, z jakimi przypadkami się ich używa. == ēn == Przyimek ''ēn'' łączy się z rzeczownikiem lub zaimkiem w celowniku, jeśli ma znaczenie '''''w''''' i oznacza sytuację statyczną, np.: * As asma '''en''' buttu – Jestem w domu. * Mes buwinnimai '''en''' Prūsai – Mieszkamy w Prusach. * As skaitāwuns artīkelin '''en''' awīzei – Przeczytałem artykuł w gazecie. lub z biernikiem, jeśli ma znaczenie '''''do''''' i oznacza sytuację dynamiczną, np.: * As ēima '''en''' skūlin – Idę do szkoły. * Mes jāmai '''en''' mīstan – Jedziemy do miasta. i '''''w''''', ale w sensie czasowym, np.: * Tāns neikaūja '''en''' naktin – On spaceruje w nocy. * Tenēi ni dīlai '''en''' ketwirtikan – Oni nie pracują w czwartek. Czasami przyimek ''ēn'' w znaczeniu ''w'' łączy się z biernikiem, np. ''As druwēi en Dēiwan'' – ''Wierzę w Boga''. <br> Ważne: Kiedy mówimy np. o osobach, np. ''Dzwonię do ciebie'', ''Idę do babci'' zamiast konstrukcji z ''ēn'' używa się celownika, np. ''As telafōni ti'', albo przyimka ''prēi'', np. ''As ēima prei annin''. <br> Uwaga! Jeśli przyimek ''ēn'' łączy się ze słowem, które ma więcej niż jedną sylabę, wtedy wyraz ''ēn'' traci akcent. == ezze == Przyimek ''ezze'' łączy się z rzeczownikiem lub zaimkiem w celowniku, jeśli ma znaczenie '''''od''''', np.: * As pagaūwa stan '''ezze''' tenessei – Dostałem to od niej. * As ni bēi stwen '''ezze''' mettu – Nie byłem tam od roku. lub z biernikiem, jeśli ma znaczenie '''''o''''', np.: * As mīriwuns '''ezze''' tin – Myślałem o tobie. * Tenā prasīwusi '''ezze''' šan mērgan – Pytała o tą dziewczynę. Przyimek ''ezze'' występuje również w konstrukcjach ze stroną bierną w znaczeniu ''przez'' i występuje ze słowem w celowniku, np. ''Pēismen pastāi peisātan '''ezze''' mērgai'' – ''List został napisany '''przez''' dziewczynę''. == prēi == Przyimek '''prēi''' łączy się z biernikiem i ma cztery znaczenia: * '''''przy''''', np. As stalāi '''prei''' stallin – Stoję przy stole. * '''''nad''''', np. Mes sīndimai '''prei''' azzaran – Siedzimy nad jeziorem. * '''''do''''', np. Tenā gūbi '''prei''' dīlin – Poszła do pracy. * '''''u''''', np. As wīrst īduns pussideinan '''prei''' annin – Zjem obiad u babci. Podobnie jak przyimek ''ēn'' traci akcent w połączeniu ze słowami, które mają więcej niż jedną sylabę. == pēr == Przyimek '''pēr''' również łączy się z biernikiem i ma trzy znaczenia: * '''''za''''', np. Sakninsads ast '''per''' buttan – Ogród jest za domem. * '''''dla''''', np. Šī dajā ast '''pēr''' tin – Ten prezent jest dla ciebie. * '''''na''''', np. '''Per''' brōkastin as īma pautinnin – Na śniadanie jem jajecznicę. Podobnie jak przyimki ''ēn'' i ''prēi'' traci akcent w połączeniu ze słowami, które mają więcej niż jedną sylabę. <br> Słowo ''pēr'' jest używane także jako odpowiednik polskiego ''za'', ''zbyt'', np. ''Tu assei '''per''' māldan'' – ''Jesteś za młody''. == pa == Przyimek '''pa''' łączy się z celownikiem w znaczeniu '''''pod''''', np.: * Sunnis ast '''pa''' stallu – Pies jest pod stołem. lub z biernikiem w znaczeniu '''''po''''', np.: * '''Pa''' bitasīdin as ēima bigātwei – Po kolacji idę biegać. == sēn == Przyimek '''sēn''' łączy się z biernikiem w znaczeniu '''''z''''' (kimś, czymś), np. * As ēima '''sen''' mamman en kāupabutan – Idę z mamą do sklepu. Przyimek ''sēn'' traci akcent w połączeniach z wyrazami, które mają więcej niż jedną sylabę. <br> Za pomocą przyimka ''sēn'' można także wyrażać konstrukcje, których w języku polskim odpowiednikiem byłoby słowo w narzędniku, np.: * Tāns jāt '''sen''' welsipēdan. – On jedzie rowerem. * Malnīkai spīlai '''sen''' spīlispagaptins. – Dzieci bawią się zabawkami. == Inne przyimki == Używane z biernikiem: * '''iz''' – '''z''' (skądś), np. As asma '''iz''' Pōlin – Jestem z Polski. * '''na''' – '''na''', np. Lāiskas lānza '''na''' stallin – Książka leży na stole. * '''sirzdau''' – '''między, pomiędzy''', np. Sastā ast '''sirzdau''' buttan be garrins – Ławka jest pomiędzy domem a drzewami. * '''kīrsa''' – '''nad''', np. Bildin kabba '''kīrsa''' laztan – Obraz wisi nad łóżkiem. * '''šlāit''' – '''bez''', np. As jāja '''šlāit''' tennan – Pojechałam bez niej. * '''pagār''' – '''obok''', '''przy''', np. Peisāistals ast '''pagār''' laztan – Biurko jest obok łóżka. * '''ēr''' – '''do''' (w znaczeniu czasowym), np. As turri segītun stan '''ēr''' wisasīdin – Muszę to zrobić do wtorku. * '''pra''' – '''przez''', np. Wags engūbi '''pra''' langstan – Złodziej wszedł przez okno. * '''pirzdau''' – '''przed''', np. Kweitēi aūga '''pirzdau''' buttan – Przed domem rosną kwiaty. Słowo ''pirzdau'' jest używane także w konstrukcjach takich jak np. '''''pirzdau''' septinnins mettans'' (siedem lat '''temu''') <br> Używając pruskiego przyimka ''na'' trzeba pamiętać, że używa się go głównie w kontekście fizycznym, np. ''na stallin'' i nie zawsze odpowiada polskiemu ''na'', np.: * Na obiad jem rybę – Per pussideinan as īma zukkan. * Nie mam na to czasu – As ni turri kērdan pēr stan. * Ona patrzy na mnie – Tenā dirēi ēn min. Pruskiego przyimka ''pra'' nie należy mylić z polskim ''przez'' np. w zdaniu ''To wszystko przez ciebie'', które tłumaczy się jako ''Sta wis ast twāise paggan'' (dopełniacz + paggan), co dosłownie znaczy ''To wszystko z twojego powodu''. Inne przykłady tej konstrukcji to np.: * Tāns aulaūwa rākas paggan – On zmarł na raka. * Tāns raudāwuns deiwūtiskwas paggan – On płakał ze szczęścia. W słowniku http://prusaspira.org/wirdeins przy niektórych czasownikach jest podane z jakim przyimkiem i przypadkiem się łączą, np. w haśle [http://prusaspira.org/wirdeins?akc=Iz&tap=W&bila=3&wirds=druw%C4%ABtwei druwītwei] r591mvlrbduqosj9isuhpgqw3mtop3k 543770 543769 2026-05-21T21:46:39Z Aklbmd164 37133 /* sēn */ 543770 wikitext text/x-wiki '''<big>Lakciōni 11</big>''' == Przyimki == Przyimki w języku pruskim łączą się najczęściej z rzeczownikami i zaimkami w bierniku i celowniku. Na dzisiejszej lekcji poznamy część z nich i nauczymy się, z jakimi przypadkami się ich używa. == ēn == Przyimek ''ēn'' łączy się z rzeczownikiem lub zaimkiem w celowniku, jeśli ma znaczenie '''''w''''' i oznacza sytuację statyczną, np.: * As asma '''en''' buttu – Jestem w domu. * Mes buwinnimai '''en''' Prūsai – Mieszkamy w Prusach. * As skaitāwuns artīkelin '''en''' awīzei – Przeczytałem artykuł w gazecie. lub z biernikiem, jeśli ma znaczenie '''''do''''' i oznacza sytuację dynamiczną, np.: * As ēima '''en''' skūlin – Idę do szkoły. * Mes jāmai '''en''' mīstan – Jedziemy do miasta. i '''''w''''', ale w sensie czasowym, np.: * Tāns neikaūja '''en''' naktin – On spaceruje w nocy. * Tenēi ni dīlai '''en''' ketwirtikan – Oni nie pracują w czwartek. Czasami przyimek ''ēn'' w znaczeniu ''w'' łączy się z biernikiem, np. ''As druwēi en Dēiwan'' – ''Wierzę w Boga''. <br> Ważne: Kiedy mówimy np. o osobach, np. ''Dzwonię do ciebie'', ''Idę do babci'' zamiast konstrukcji z ''ēn'' używa się celownika, np. ''As telafōni ti'', albo przyimka ''prēi'', np. ''As ēima prei annin''. <br> Uwaga! Jeśli przyimek ''ēn'' łączy się ze słowem, które ma więcej niż jedną sylabę, wtedy wyraz ''ēn'' traci akcent. == ezze == Przyimek ''ezze'' łączy się z rzeczownikiem lub zaimkiem w celowniku, jeśli ma znaczenie '''''od''''', np.: * As pagaūwa stan '''ezze''' tenessei – Dostałem to od niej. * As ni bēi stwen '''ezze''' mettu – Nie byłem tam od roku. lub z biernikiem, jeśli ma znaczenie '''''o''''', np.: * As mīriwuns '''ezze''' tin – Myślałem o tobie. * Tenā prasīwusi '''ezze''' šan mērgan – Pytała o tą dziewczynę. Przyimek ''ezze'' występuje również w konstrukcjach ze stroną bierną w znaczeniu ''przez'' i występuje ze słowem w celowniku, np. ''Pēismen pastāi peisātan '''ezze''' mērgai'' – ''List został napisany '''przez''' dziewczynę''. == prēi == Przyimek '''prēi''' łączy się z biernikiem i ma cztery znaczenia: * '''''przy''''', np. As stalāi '''prei''' stallin – Stoję przy stole. * '''''nad''''', np. Mes sīndimai '''prei''' azzaran – Siedzimy nad jeziorem. * '''''do''''', np. Tenā gūbi '''prei''' dīlin – Poszła do pracy. * '''''u''''', np. As wīrst īduns pussideinan '''prei''' annin – Zjem obiad u babci. Podobnie jak przyimek ''ēn'' traci akcent w połączeniu ze słowami, które mają więcej niż jedną sylabę. == pēr == Przyimek '''pēr''' również łączy się z biernikiem i ma trzy znaczenia: * '''''za''''', np. Sakninsads ast '''per''' buttan – Ogród jest za domem. * '''''dla''''', np. Šī dajā ast '''pēr''' tin – Ten prezent jest dla ciebie. * '''''na''''', np. '''Per''' brōkastin as īma pautinnin – Na śniadanie jem jajecznicę. Podobnie jak przyimki ''ēn'' i ''prēi'' traci akcent w połączeniu ze słowami, które mają więcej niż jedną sylabę. <br> Słowo ''pēr'' jest używane także jako odpowiednik polskiego ''za'', ''zbyt'', np. ''Tu assei '''per''' māldan'' – ''Jesteś za młody''. == pa == Przyimek '''pa''' łączy się z celownikiem w znaczeniu '''''pod''''', np.: * Sunnis ast '''pa''' stallu – Pies jest pod stołem. lub z biernikiem w znaczeniu '''''po''''', np.: * '''Pa''' bitasīdin as ēima bigātwei – Po kolacji idę biegać. == sēn == Przyimek '''sēn''' łączy się z biernikiem w znaczeniu '''''z''''' (kimś, czymś), np. * As ēima '''sen''' mamman en kāupabutan – Idę z mamą do sklepu. Przyimek ''sēn'' traci akcent w połączeniach z wyrazami, które mają więcej niż jedną sylabę. <br> Za pomocą przyimka ''sēn'' można także wyrażać konstrukcje, których w języku polskim odpowiednikiem byłoby słowo w narzędniku, np.: * Tāns jāt '''sen''' welsipēdan. – On jedzie rowerem. * Malnīkai spīlai '''sen''' spīlispagaptins. – Dzieci bawią się zabawkami. == Inne przyimki == Używane z biernikiem: * '''iz''' – '''z''' (skądś), np. As asma '''iz''' Pōlin – Jestem z Polski. * '''na''' – '''na''', np. Lāiskas lānza '''na''' stallin – Książka leży na stole. * '''sirzdau''' – '''między, pomiędzy''', np. Sastā ast '''sirzdau''' buttan be garrins – Ławka jest pomiędzy domem a drzewami. * '''kīrsa''' – '''nad''', np. Bildin kabba '''kīrsa''' laztan – Obraz wisi nad łóżkiem. * '''šlāit''' – '''bez''', np. As jāja '''šlāit''' tennan – Pojechałam bez niej. * '''pagār''' – '''obok''', '''przy''', np. Peisāistals ast '''pagār''' laztan – Biurko jest obok łóżka. * '''ēr''' – '''do''' (w znaczeniu czasowym), np. As turri segītun stan '''ēr''' wisasīdin – Muszę to zrobić do wtorku. * '''pra''' – '''przez''', np. Wags engūbi '''pra''' langstan – Złodziej wszedł przez okno. * '''pirzdau''' – '''przed''', np. Kweitēi aūga '''pirzdau''' buttan – Przed domem rosną kwiaty. Słowo ''pirzdau'' jest używane także w konstrukcjach takich jak np. '''''pirzdau''' septinnins mettans'' (siedem lat '''temu''') <br> Używając pruskiego przyimka ''na'' trzeba pamiętać, że używa się go głównie w kontekście fizycznym, np. ''na stallin'' i nie zawsze odpowiada polskiemu ''na'', np.: * Na obiad jem rybę – Per pussideinan as īma zukkan. * Nie mam na to czasu – As ni turri kērdan pēr stan. * Ona patrzy na mnie – Tenā dirēi ēn min. Pruskiego przyimka ''pra'' nie należy mylić z polskim ''przez'' np. w zdaniu ''To wszystko przez ciebie'', które tłumaczy się jako ''Sta wis ast twāise paggan'' (dopełniacz + paggan), co dosłownie znaczy ''To wszystko z twojego powodu''. Inne przykłady tej konstrukcji to np.: * Tāns aulaūwa rākas paggan – On zmarł na raka. * Tāns raudāwuns deiwūtiskwas paggan – On płakał ze szczęścia. W słowniku http://prusaspira.org/wirdeins przy niektórych czasownikach jest podane z jakim przyimkiem i przypadkiem się łączą, np. w haśle [http://prusaspira.org/wirdeins?akc=Iz&tap=W&bila=3&wirds=druw%C4%ABtwei druwītwei] q4wc644kel7tiav4nujez9sk8bnswu9 543771 543770 2026-05-21T21:47:49Z Aklbmd164 37133 /* Inne przyimki */ 543771 wikitext text/x-wiki '''<big>Lakciōni 11</big>''' == Przyimki == Przyimki w języku pruskim łączą się najczęściej z rzeczownikami i zaimkami w bierniku i celowniku. Na dzisiejszej lekcji poznamy część z nich i nauczymy się, z jakimi przypadkami się ich używa. == ēn == Przyimek ''ēn'' łączy się z rzeczownikiem lub zaimkiem w celowniku, jeśli ma znaczenie '''''w''''' i oznacza sytuację statyczną, np.: * As asma '''en''' buttu – Jestem w domu. * Mes buwinnimai '''en''' Prūsai – Mieszkamy w Prusach. * As skaitāwuns artīkelin '''en''' awīzei – Przeczytałem artykuł w gazecie. lub z biernikiem, jeśli ma znaczenie '''''do''''' i oznacza sytuację dynamiczną, np.: * As ēima '''en''' skūlin – Idę do szkoły. * Mes jāmai '''en''' mīstan – Jedziemy do miasta. i '''''w''''', ale w sensie czasowym, np.: * Tāns neikaūja '''en''' naktin – On spaceruje w nocy. * Tenēi ni dīlai '''en''' ketwirtikan – Oni nie pracują w czwartek. Czasami przyimek ''ēn'' w znaczeniu ''w'' łączy się z biernikiem, np. ''As druwēi en Dēiwan'' – ''Wierzę w Boga''. <br> Ważne: Kiedy mówimy np. o osobach, np. ''Dzwonię do ciebie'', ''Idę do babci'' zamiast konstrukcji z ''ēn'' używa się celownika, np. ''As telafōni ti'', albo przyimka ''prēi'', np. ''As ēima prei annin''. <br> Uwaga! Jeśli przyimek ''ēn'' łączy się ze słowem, które ma więcej niż jedną sylabę, wtedy wyraz ''ēn'' traci akcent. == ezze == Przyimek ''ezze'' łączy się z rzeczownikiem lub zaimkiem w celowniku, jeśli ma znaczenie '''''od''''', np.: * As pagaūwa stan '''ezze''' tenessei – Dostałem to od niej. * As ni bēi stwen '''ezze''' mettu – Nie byłem tam od roku. lub z biernikiem, jeśli ma znaczenie '''''o''''', np.: * As mīriwuns '''ezze''' tin – Myślałem o tobie. * Tenā prasīwusi '''ezze''' šan mērgan – Pytała o tą dziewczynę. Przyimek ''ezze'' występuje również w konstrukcjach ze stroną bierną w znaczeniu ''przez'' i występuje ze słowem w celowniku, np. ''Pēismen pastāi peisātan '''ezze''' mērgai'' – ''List został napisany '''przez''' dziewczynę''. == prēi == Przyimek '''prēi''' łączy się z biernikiem i ma cztery znaczenia: * '''''przy''''', np. As stalāi '''prei''' stallin – Stoję przy stole. * '''''nad''''', np. Mes sīndimai '''prei''' azzaran – Siedzimy nad jeziorem. * '''''do''''', np. Tenā gūbi '''prei''' dīlin – Poszła do pracy. * '''''u''''', np. As wīrst īduns pussideinan '''prei''' annin – Zjem obiad u babci. Podobnie jak przyimek ''ēn'' traci akcent w połączeniu ze słowami, które mają więcej niż jedną sylabę. == pēr == Przyimek '''pēr''' również łączy się z biernikiem i ma trzy znaczenia: * '''''za''''', np. Sakninsads ast '''per''' buttan – Ogród jest za domem. * '''''dla''''', np. Šī dajā ast '''pēr''' tin – Ten prezent jest dla ciebie. * '''''na''''', np. '''Per''' brōkastin as īma pautinnin – Na śniadanie jem jajecznicę. Podobnie jak przyimki ''ēn'' i ''prēi'' traci akcent w połączeniu ze słowami, które mają więcej niż jedną sylabę. <br> Słowo ''pēr'' jest używane także jako odpowiednik polskiego ''za'', ''zbyt'', np. ''Tu assei '''per''' māldan'' – ''Jesteś za młody''. == pa == Przyimek '''pa''' łączy się z celownikiem w znaczeniu '''''pod''''', np.: * Sunnis ast '''pa''' stallu – Pies jest pod stołem. lub z biernikiem w znaczeniu '''''po''''', np.: * '''Pa''' bitasīdin as ēima bigātwei – Po kolacji idę biegać. == sēn == Przyimek '''sēn''' łączy się z biernikiem w znaczeniu '''''z''''' (kimś, czymś), np. * As ēima '''sen''' mamman en kāupabutan – Idę z mamą do sklepu. Przyimek ''sēn'' traci akcent w połączeniach z wyrazami, które mają więcej niż jedną sylabę. <br> Za pomocą przyimka ''sēn'' można także wyrażać konstrukcje, których w języku polskim odpowiednikiem byłoby słowo w narzędniku, np.: * Tāns jāt '''sen''' welsipēdan. – On jedzie rowerem. * Malnīkai spīlai '''sen''' spīlispagaptins. – Dzieci bawią się zabawkami. == Inne przyimki == Używane z biernikiem: * '''iz''' – '''z''' (skądś), np. As asma '''iz''' Pōlin – Jestem z Polski. * '''na''' – '''na''', np. Lāiskas lānza '''na''' stallin – Książka leży na stole. * '''sirzdau''' – '''między, pomiędzy''', np. Sastā ast '''sirzdau''' buttan be garrins – Ławka jest pomiędzy domem a drzewami. * '''kīrsa''' – '''nad''', np. Bildin kabba '''kīrsa''' laztan – Obraz wisi nad łóżkiem. * '''šlāit''' – '''bez''', np. As jāja '''šlāit''' tennan – Pojechałam bez niej. * '''pagār''' – '''obok''', '''przy''', np. Peisāistals ast '''pagār''' laztan – Biurko jest obok łóżka. * '''ēr''' – '''do''' (w znaczeniu czasowym), np. As turri segītun stan '''ēr''' wisasīdin – Muszę to zrobić do wtorku. * '''pra''' – '''przez''', np. Wags engūbi '''pra''' langstan – Złodziej wszedł przez okno. * '''pirzdau''' – '''przed''', np. Kweitēi aūga '''pirzdau''' buttan – Przed domem rosną kwiaty. Słowo ''pirzdau'' jest używane także w konstrukcjach takich jak np. '''''pirzdau''' septinnins mettans'' (siedem lat '''temu''') <br> Używając pruskiego przyimka ''na'' trzeba pamiętać, że używa się go głównie w kontekście fizycznym, np. ''na stallin'' i nie zawsze odpowiada polskiemu ''na'', np.: * Na obiad jem rybę – '''Per''' pussideinan as īma zukkan. * Nie mam na to czasu – As ni turri kērdan '''pēr''' stan. * Ona patrzy na mnie – Tenā dirēi '''ēn''' min. Pruskiego przyimka ''pra'' nie należy mylić z polskim ''przez'' np. w zdaniu ''To wszystko przez ciebie'', które tłumaczy się jako ''Sta wis ast twāise paggan'' (dopełniacz + paggan), co dosłownie znaczy ''To wszystko z twojego powodu''. Inne przykłady tej konstrukcji to np.: * Tāns aulaūwa rākas paggan – On zmarł na raka. * Tāns raudāwuns deiwūtiskwas paggan – On płakał ze szczęścia. W słowniku http://prusaspira.org/wirdeins przy niektórych czasownikach jest podane z jakim przyimkiem i przypadkiem się łączą, np. w haśle [http://prusaspira.org/wirdeins?akc=Iz&tap=W&bila=3&wirds=druw%C4%ABtwei druwītwei] 1j806evnpmv037m87sduusey9xgddor Pruski/Lekcja12 0 61047 543750 543583 2026-05-21T20:02:05Z Aklbmd164 37133 /* Tworzenie słów określających rzeczownik */ 543750 wikitext text/x-wiki '''<big>Lakciōni 12</big>''' == Īdis – Jedzenie == === Wēišai – Owoce === <gallery> File:Red Apple.jpg|'''ābli''', '''wūbli''' <52> – jabłko File:Bowl of Blueberries (Unsplash).jpg|'''agā''' <46> – jagoda File:Pineapple in garden.jpg|'''ānanasi''' <52> – ananas File:Sonhar-com-laranja.jpg|'''appelzini''' <52> – pomarańcza File:Banana (white background).jpg|'''banāni''' <52> – banan File:Lemon-Whole-Split.jpg|'''citrōni''' <52> – cytryna File:Pomegranate03 edit.jpg|'''granātasabli''' <52> – granat File:Raspberries05.jpg|'''kamisteni''' <52> – malina File:Kiwi aka.jpg|'''kīwi''' <52> – kiwi File:Coconuts - single and cracked open.jpg|'''kōkusi''' <52> – kokos File:Pear in tree 0465.jpg|'''krāušas''' <50> – gruszka (''plurale tantum'', występuje tylko w l. mnogiej) File:Madarines white bg.jpg|'''mandarīni''' <52> – mandarynka File:Autumn Red peaches.jpg|'''pīrziks''' <32> – brzoskwinia File:Garden strawberry (Fragaria × ananassa).jpg|'''prasseli''' <52> – truskawka File:Damson plum fruit.jpg|'''sliwaītas''' <45> – śliwka (''plurale tantum'') File:Starr-130830-0485-Citrullus lanatus-in half-Hawea Pl Olinda-Maui (25166802001).jpg|'''undasmelōni''' <52> – arbuz File:Table grapes on white.jpg|'''wīnega''' <45> – winogrono File:02024 May Duke Cherry, Beskids mts.jpg|'''wisnaītas''' <45> – wiśnia (''plurale tantum'') </gallery> === Saknis – Warzywa === <gallery> File:Phaseolus vulgaris white beans, witte boon.jpg|'''babba''' <45> – fasola File:Broccoli and cross section edit.jpg|'''brukōlis''' <40> – brokuł File:Potato var. Linda HC1.JPG|'''bulwi''' <52> – ziemniak File:Carrots.JPG|'''burkans''' <32> – marchewka File:CourgettesInBowl.JPG|'''cukīni''' <52> – cukinia File:Cucumber from Denmark.jpg|'''gurki''' <52> – ogórek File:Pisum sativum Горох лущильний - зелений горошок.jpg|'''kekkers''' <33> – groszek File:CabbageBG.JPG|'''kumstas''' <32> – kapusta File:Chou-fleur 02.jpg|'''kweitākumstas''' <32> – kalafior File:Corn 001.jpg|'''majjiss''' <32> – kukurydza File:Red capsicum and cross section.jpg|'''paprika''' <45> – papryka File:Beets-Bundle.jpg|'''rūnkeli''' <50> – burak File:Kropsla herfst.jpg|'''salāts''' <32> – sałata File:Onions.jpg|'''sippeli''' <52> – cebula File:Bright red tomato and cross section02.jpg|'''tōmati''' <52> – pomidor </gallery> === Pūwjai – Napoje === <gallery> File:Cup of tea isolated on white background - Petr Kratochvil (cropped).jpg|'''tējs''' <32> – herbata File:Milk glass.jpg|'''daddan''' <35> – mleko File:Orange juice (3249410157).jpg|'''saks''' <36> – sok File:Glass Half Full bw 1.JPG|'''undan''' <35> – woda File:Drinking glass 00118.gif|'''gazītan undan''' <35> – woda gazowana File:Cup of coffee (Serbian cuisine, Grand kava).jpg|'''kafējs''' <32> – kawa File:Bottle, Wine (Italiano Spumante) (48709467566).jpg|'''wīns''' <32> – wino File:Red Wine Glass.jpg|'''wūrmiwins''' <32> – czerwone wino File:White Wine Glas.jpg|'''gaīlawins''' <32> – białe wino File:NCI Visuals Food Beer.jpg|'''pīws''' <32> – piwo </gallery> === Mēnsa, daddas prōduktai, zirnis prōduktai, preigardāi – Mięso, nabiał, produkty zbożowe, przyprawy === <gallery> File:Red Meat.jpg|'''mēnsa''' <45> – mięso File:Breakfast Ham (53273608095).jpg|'''kūmpis''' <40> – szynka File:Podwawelska ..jpg|'''lāitin''' <37> – kiełbasa File:Nc cheese.jpg|'''sūris''' <40> – ser żółty File:Творог.jpg|'''glumzdi''' <52> – twaróg File:2023 Masło w maselniczce.jpg|'''anktan''' <35> – masło File:Turkish strained yogurt.jpg|'''jōgurts''' <32> – jogurt File:Steamed Buckwheat on a plate.jpg|'''puttera''' <45> – kasza File:Mjøl.jpg|'''miltan''' <35> – mąka File:HK food ingredient texture of Alberto Poiatti Italian brand 直通粉 penne rigate yellow September 2021 SS2 02.jpg|'''nūdelis''' <52> → makaron (''plurale tantum'') File:Anadama bread (1).jpg|'''geīts''' <58> – chleb File:13-08-31-Kochtreffen-Wien-RalfR-N3S 7849-024.jpg|'''traskeīlis''' <40> – bułka File:Fancy raw mixed nuts macro.jpg|'''reīss''' <36> – orzech File:Eierdoosmet10eierengevuld2010.jpg|'''pāuts''' <32> – jajko File:Salt shaker on white background.jpg|'''sāls''' <60> – sól File:Black Pepper IMG 4866.jpg|'''pippars''' <32> – pieprz File:Heinz Tomato Ketchup (51266256693).jpg|'''ketšups''' <32> – keczup File:Zaanse mayonaise.jpg|'''majōnezi''' <52> – majonez File:Los Gallitos - October 31 2022 - Sarah Stierch 03.jpg|'''pamārka''' <45> – sos </gallery> === Īdas – Potrawy === <gallery> File:0003 kotlet schabowy 2013, photo by Silar.JPG|'''karmenādi''' <52> – kotlet File:Plated grilled fish (cropped).jpg|'''zuks''' <32> – ryba File:Scrambed eggs.jpg|'''pautinni''' <52> – jajecznica File:Egg Sandwich.jpg|'''geītka''' <45> – kanapka File:French fries (6211716064).jpg|'''frittis''' <52> – frytki (''plurale tantum'') File:Pizza napoletana.jpg|'''picca''' <45> – pizza File:Swedish pancakes.jpg|'''kalsā''' <46> – naleśnik, blin File:Zupa ogórkowa - 2024.05.29.jpg|'''zuppi''' <52> – zupa File:Rosół - 2024.11.03.jpg|'''jūsi''' <52> – rosół, bulion File:Vegetable salad, Christmas Eve dinner in Brisbane, Australia, 2023.jpg|'''mišmašs''' <32> – sałatka jarzynowa </gallery> === Saldiskāi – Słodycze === <gallery> File:Sugar-485057.jpg|'''cukkeris''' <40> – cukier File:MielCristalizada.jpg|'''meddu''' <44> – miód File:Mermelada de frutlla.jpeg|'''kōnfitiri''', '''marmelādi''' <52> – konfitura, marmolada, dżem File:Piece of chocolate cake on a white plate decorated with chocolate sauce.jpg|'''lūgis''' <40> – ciasto File:2020-07-26 16 25 26 A sample of Grandma's Mini Chocolate Chip cookies in the Dulles section of Sterling, Loudoun County, Virginia.jpg|'''kepinnis''' <52> – ciastka, herbatniki (''plurale tantum'') File:Strawberry ice cream cone (5076899310).jpg|'''ladāi''' <36> – lody File:Green and Black's dark chocolate bar 2.jpg|'''šokōladi''' <52> – czekolada File:2023 Cukierki Michałki klasyczne.jpg|'''bumbōns''' <32> – cukierek File:Charms Blow Pop (2458474034).jpg|'''lučči''' <52> – lizak </gallery> == Wyrazy określające rzeczownik == W języku pruskim zdarza się, że używa się dopełniacza l. pojedynczej słów określających rzeczownik w wyrażeniach, w których w języku polskim rzeczownik byłby określany przez przymiotnik, np.: * '''tōmatis''' zuppi – zupa pomidorowa * '''wanillas''' ladāi – lody waniliowe == Odmiana czasowników ''jeść'' i ''pić'' w cz. teraźniejszym == '''Īstun''' – Jeść {| style="background-color: #fafafa; border: solid 1px #c2c3c4; padding: 0.2em; width: 45%;" valign=top |- |As '''īma''' |- |Tū '''īsei''' |- |Tāns/Tenā/Sta '''īst''' |- |Mes '''īmai''' |- |Jūs '''ītei''' |- |Tenēi/Tennas '''īst''' |} '''Pūtun''' – Pić {| style="background-color: #fafafa; border: solid 1px #c2c3c4; padding: 0.2em; width: 45%;" valign=top |- |As '''pūja''' |- |Tū '''pūja''' |- |Tāns/Tenā/Sta '''pūja''' |- |Mes '''pūjimai''' |- |Jūs '''pūjitei''' |- |Tenēi/Tennas '''pūja''' |} == Przydatne wyrażenia == * '''Per brōkastin/pussideinan/bitasīdin as īma...''' – Na śniadanie/obiad/kolację jem... * '''Sta ast saldan/sūru/rūgtan/kārtan/astran''' – To jest słodkie/słone/kwaśne/gorzkie/ostre. * '''Šī īda ast gardu/nigardu''' – Ta potrawa jest smaczna/niesmaczna. * '''Šī īda ast pagattawintan iz...''' – Ta potrawa jest przygotowana z... * '''Mennei... padīnga''' – Lubię... * '''Mennei... ni padīnga''' – Nie lubię... * '''Ka tū kwaitīlai īstun?''' – Co chciałbyć zjeść? * '''As kwaitīlai īstun...''' – Chciałbym zjeść... * '''As turri kwāitan per...''' – Mam ochotę na... * '''Majā milītasi īda ast...''' – Moja ulubiona potrawa to... * '''Empadīngan!''' – Smacznego! 4tmpo041vljqlhoopeul098bqhd59am 543751 543750 2026-05-21T20:05:05Z Aklbmd164 37133 /* Saknis – Warzywa */ 543751 wikitext text/x-wiki '''<big>Lakciōni 12</big>''' == Īdis – Jedzenie == === Wēišai – Owoce === <gallery> File:Red Apple.jpg|'''ābli''', '''wūbli''' <52> – jabłko File:Bowl of Blueberries (Unsplash).jpg|'''agā''' <46> – jagoda File:Pineapple in garden.jpg|'''ānanasi''' <52> – ananas File:Sonhar-com-laranja.jpg|'''appelzini''' <52> – pomarańcza File:Banana (white background).jpg|'''banāni''' <52> – banan File:Lemon-Whole-Split.jpg|'''citrōni''' <52> – cytryna File:Pomegranate03 edit.jpg|'''granātasabli''' <52> – granat File:Raspberries05.jpg|'''kamisteni''' <52> – malina File:Kiwi aka.jpg|'''kīwi''' <52> – kiwi File:Coconuts - single and cracked open.jpg|'''kōkusi''' <52> – kokos File:Pear in tree 0465.jpg|'''krāušas''' <50> – gruszka (''plurale tantum'', występuje tylko w l. mnogiej) File:Madarines white bg.jpg|'''mandarīni''' <52> – mandarynka File:Autumn Red peaches.jpg|'''pīrziks''' <32> – brzoskwinia File:Garden strawberry (Fragaria × ananassa).jpg|'''prasseli''' <52> – truskawka File:Damson plum fruit.jpg|'''sliwaītas''' <45> – śliwka (''plurale tantum'') File:Starr-130830-0485-Citrullus lanatus-in half-Hawea Pl Olinda-Maui (25166802001).jpg|'''undasmelōni''' <52> – arbuz File:Table grapes on white.jpg|'''wīnega''' <45> – winogrono File:02024 May Duke Cherry, Beskids mts.jpg|'''wisnaītas''' <45> – wiśnia (''plurale tantum'') </gallery> === Saknis – Warzywa === <gallery> File:Phaseolus vulgaris white beans, witte boon.jpg|'''babba''' <45> – fasola File:Broccoli and cross section edit.jpg|'''brukōlis''' <40> – brokuł File:Potato var. Linda HC1.JPG|'''bulwi''' <52> – ziemniak File:Carrots.JPG|'''burkans''' <32> – marchewka File:CourgettesInBowl.JPG|'''cukīni''' <52> – cukinia File:Cucumber from Denmark.jpg|'''gurki''' <52> – ogórek File:Plate of Peas (4002891340).jpg|'''kekkers''' <33> – groszek File:CabbageBG.JPG|'''kumstas''' <32> – kapusta File:Chou-fleur 02.jpg|'''kweitākumstas''' <32> – kalafior File:Corn 001.jpg|'''majjiss''' <32> – kukurydza File:Red capsicum and cross section.jpg|'''paprika''' <45> – papryka File:Beets-Bundle.jpg|'''rūnkeli''' <50> – burak File:Kropsla herfst.jpg|'''salāts''' <32> – sałata File:Onions.jpg|'''sippeli''' <52> – cebula File:Bright red tomato and cross section02.jpg|'''tōmati''' <52> – pomidor </gallery> === Pūwjai – Napoje === <gallery> File:Cup of tea isolated on white background - Petr Kratochvil (cropped).jpg|'''tējs''' <32> – herbata File:Milk glass.jpg|'''daddan''' <35> – mleko File:Orange juice (3249410157).jpg|'''saks''' <36> – sok File:Glass Half Full bw 1.JPG|'''undan''' <35> – woda File:Drinking glass 00118.gif|'''gazītan undan''' <35> – woda gazowana File:Cup of coffee (Serbian cuisine, Grand kava).jpg|'''kafējs''' <32> – kawa File:Bottle, Wine (Italiano Spumante) (48709467566).jpg|'''wīns''' <32> – wino File:Red Wine Glass.jpg|'''wūrmiwins''' <32> – czerwone wino File:White Wine Glas.jpg|'''gaīlawins''' <32> – białe wino File:NCI Visuals Food Beer.jpg|'''pīws''' <32> – piwo </gallery> === Mēnsa, daddas prōduktai, zirnis prōduktai, preigardāi – Mięso, nabiał, produkty zbożowe, przyprawy === <gallery> File:Red Meat.jpg|'''mēnsa''' <45> – mięso File:Breakfast Ham (53273608095).jpg|'''kūmpis''' <40> – szynka File:Podwawelska ..jpg|'''lāitin''' <37> – kiełbasa File:Nc cheese.jpg|'''sūris''' <40> – ser żółty File:Творог.jpg|'''glumzdi''' <52> – twaróg File:2023 Masło w maselniczce.jpg|'''anktan''' <35> – masło File:Turkish strained yogurt.jpg|'''jōgurts''' <32> – jogurt File:Steamed Buckwheat on a plate.jpg|'''puttera''' <45> – kasza File:Mjøl.jpg|'''miltan''' <35> – mąka File:HK food ingredient texture of Alberto Poiatti Italian brand 直通粉 penne rigate yellow September 2021 SS2 02.jpg|'''nūdelis''' <52> → makaron (''plurale tantum'') File:Anadama bread (1).jpg|'''geīts''' <58> – chleb File:13-08-31-Kochtreffen-Wien-RalfR-N3S 7849-024.jpg|'''traskeīlis''' <40> – bułka File:Fancy raw mixed nuts macro.jpg|'''reīss''' <36> – orzech File:Eierdoosmet10eierengevuld2010.jpg|'''pāuts''' <32> – jajko File:Salt shaker on white background.jpg|'''sāls''' <60> – sól File:Black Pepper IMG 4866.jpg|'''pippars''' <32> – pieprz File:Heinz Tomato Ketchup (51266256693).jpg|'''ketšups''' <32> – keczup File:Zaanse mayonaise.jpg|'''majōnezi''' <52> – majonez File:Los Gallitos - October 31 2022 - Sarah Stierch 03.jpg|'''pamārka''' <45> – sos </gallery> === Īdas – Potrawy === <gallery> File:0003 kotlet schabowy 2013, photo by Silar.JPG|'''karmenādi''' <52> – kotlet File:Plated grilled fish (cropped).jpg|'''zuks''' <32> – ryba File:Scrambed eggs.jpg|'''pautinni''' <52> – jajecznica File:Egg Sandwich.jpg|'''geītka''' <45> – kanapka File:French fries (6211716064).jpg|'''frittis''' <52> – frytki (''plurale tantum'') File:Pizza napoletana.jpg|'''picca''' <45> – pizza File:Swedish pancakes.jpg|'''kalsā''' <46> – naleśnik, blin File:Zupa ogórkowa - 2024.05.29.jpg|'''zuppi''' <52> – zupa File:Rosół - 2024.11.03.jpg|'''jūsi''' <52> – rosół, bulion File:Vegetable salad, Christmas Eve dinner in Brisbane, Australia, 2023.jpg|'''mišmašs''' <32> – sałatka jarzynowa </gallery> === Saldiskāi – Słodycze === <gallery> File:Sugar-485057.jpg|'''cukkeris''' <40> – cukier File:MielCristalizada.jpg|'''meddu''' <44> – miód File:Mermelada de frutlla.jpeg|'''kōnfitiri''', '''marmelādi''' <52> – konfitura, marmolada, dżem File:Piece of chocolate cake on a white plate decorated with chocolate sauce.jpg|'''lūgis''' <40> – ciasto File:2020-07-26 16 25 26 A sample of Grandma's Mini Chocolate Chip cookies in the Dulles section of Sterling, Loudoun County, Virginia.jpg|'''kepinnis''' <52> – ciastka, herbatniki (''plurale tantum'') File:Strawberry ice cream cone (5076899310).jpg|'''ladāi''' <36> – lody File:Green and Black's dark chocolate bar 2.jpg|'''šokōladi''' <52> – czekolada File:2023 Cukierki Michałki klasyczne.jpg|'''bumbōns''' <32> – cukierek File:Charms Blow Pop (2458474034).jpg|'''lučči''' <52> – lizak </gallery> == Wyrazy określające rzeczownik == W języku pruskim zdarza się, że używa się dopełniacza l. pojedynczej słów określających rzeczownik w wyrażeniach, w których w języku polskim rzeczownik byłby określany przez przymiotnik, np.: * '''tōmatis''' zuppi – zupa pomidorowa * '''wanillas''' ladāi – lody waniliowe == Odmiana czasowników ''jeść'' i ''pić'' w cz. teraźniejszym == '''Īstun''' – Jeść {| style="background-color: #fafafa; border: solid 1px #c2c3c4; padding: 0.2em; width: 45%;" valign=top |- |As '''īma''' |- |Tū '''īsei''' |- |Tāns/Tenā/Sta '''īst''' |- |Mes '''īmai''' |- |Jūs '''ītei''' |- |Tenēi/Tennas '''īst''' |} '''Pūtun''' – Pić {| style="background-color: #fafafa; border: solid 1px #c2c3c4; padding: 0.2em; width: 45%;" valign=top |- |As '''pūja''' |- |Tū '''pūja''' |- |Tāns/Tenā/Sta '''pūja''' |- |Mes '''pūjimai''' |- |Jūs '''pūjitei''' |- |Tenēi/Tennas '''pūja''' |} == Przydatne wyrażenia == * '''Per brōkastin/pussideinan/bitasīdin as īma...''' – Na śniadanie/obiad/kolację jem... * '''Sta ast saldan/sūru/rūgtan/kārtan/astran''' – To jest słodkie/słone/kwaśne/gorzkie/ostre. * '''Šī īda ast gardu/nigardu''' – Ta potrawa jest smaczna/niesmaczna. * '''Šī īda ast pagattawintan iz...''' – Ta potrawa jest przygotowana z... * '''Mennei... padīnga''' – Lubię... * '''Mennei... ni padīnga''' – Nie lubię... * '''Ka tū kwaitīlai īstun?''' – Co chciałbyć zjeść? * '''As kwaitīlai īstun...''' – Chciałbym zjeść... * '''As turri kwāitan per...''' – Mam ochotę na... * '''Majā milītasi īda ast...''' – Moja ulubiona potrawa to... * '''Empadīngan!''' – Smacznego! jkxunjwk9n3czr8d3mwccejwa6at578 543752 543751 2026-05-21T20:14:19Z Aklbmd164 37133 /* Mēnsa, daddas prōduktai, zirnis prōduktai, preigardāi – Mięso, nabiał, produkty zbożowe, przyprawy */ 543752 wikitext text/x-wiki '''<big>Lakciōni 12</big>''' == Īdis – Jedzenie == === Wēišai – Owoce === <gallery> File:Red Apple.jpg|'''ābli''', '''wūbli''' <52> – jabłko File:Bowl of Blueberries (Unsplash).jpg|'''agā''' <46> – jagoda File:Pineapple in garden.jpg|'''ānanasi''' <52> – ananas File:Sonhar-com-laranja.jpg|'''appelzini''' <52> – pomarańcza File:Banana (white background).jpg|'''banāni''' <52> – banan File:Lemon-Whole-Split.jpg|'''citrōni''' <52> – cytryna File:Pomegranate03 edit.jpg|'''granātasabli''' <52> – granat File:Raspberries05.jpg|'''kamisteni''' <52> – malina File:Kiwi aka.jpg|'''kīwi''' <52> – kiwi File:Coconuts - single and cracked open.jpg|'''kōkusi''' <52> – kokos File:Pear in tree 0465.jpg|'''krāušas''' <50> – gruszka (''plurale tantum'', występuje tylko w l. mnogiej) File:Madarines white bg.jpg|'''mandarīni''' <52> – mandarynka File:Autumn Red peaches.jpg|'''pīrziks''' <32> – brzoskwinia File:Garden strawberry (Fragaria × ananassa).jpg|'''prasseli''' <52> – truskawka File:Damson plum fruit.jpg|'''sliwaītas''' <45> – śliwka (''plurale tantum'') File:Starr-130830-0485-Citrullus lanatus-in half-Hawea Pl Olinda-Maui (25166802001).jpg|'''undasmelōni''' <52> – arbuz File:Table grapes on white.jpg|'''wīnega''' <45> – winogrono File:02024 May Duke Cherry, Beskids mts.jpg|'''wisnaītas''' <45> – wiśnia (''plurale tantum'') </gallery> === Saknis – Warzywa === <gallery> File:Phaseolus vulgaris white beans, witte boon.jpg|'''babba''' <45> – fasola File:Broccoli and cross section edit.jpg|'''brukōlis''' <40> – brokuł File:Potato var. Linda HC1.JPG|'''bulwi''' <52> – ziemniak File:Carrots.JPG|'''burkans''' <32> – marchewka File:CourgettesInBowl.JPG|'''cukīni''' <52> – cukinia File:Cucumber from Denmark.jpg|'''gurki''' <52> – ogórek File:Plate of Peas (4002891340).jpg|'''kekkers''' <33> – groszek File:CabbageBG.JPG|'''kumstas''' <32> – kapusta File:Chou-fleur 02.jpg|'''kweitākumstas''' <32> – kalafior File:Corn 001.jpg|'''majjiss''' <32> – kukurydza File:Red capsicum and cross section.jpg|'''paprika''' <45> – papryka File:Beets-Bundle.jpg|'''rūnkeli''' <50> – burak File:Kropsla herfst.jpg|'''salāts''' <32> – sałata File:Onions.jpg|'''sippeli''' <52> – cebula File:Bright red tomato and cross section02.jpg|'''tōmati''' <52> – pomidor </gallery> === Pūwjai – Napoje === <gallery> File:Cup of tea isolated on white background - Petr Kratochvil (cropped).jpg|'''tējs''' <32> – herbata File:Milk glass.jpg|'''daddan''' <35> – mleko File:Orange juice (3249410157).jpg|'''saks''' <36> – sok File:Glass Half Full bw 1.JPG|'''undan''' <35> – woda File:Drinking glass 00118.gif|'''gazītan undan''' <35> – woda gazowana File:Cup of coffee (Serbian cuisine, Grand kava).jpg|'''kafējs''' <32> – kawa File:Bottle, Wine (Italiano Spumante) (48709467566).jpg|'''wīns''' <32> – wino File:Red Wine Glass.jpg|'''wūrmiwins''' <32> – czerwone wino File:White Wine Glas.jpg|'''gaīlawins''' <32> – białe wino File:NCI Visuals Food Beer.jpg|'''pīws''' <32> – piwo </gallery> === Mēnsa, daddas prōduktai, zirnis prōduktai, preigardāi – Mięso, nabiał, produkty zbożowe, przyprawy === <gallery> File:Red Meat.jpg|'''mēnsa''' <45> – mięso File:Breakfast Ham (53273608095).jpg|'''kūmpis''' <40> – szynka File:Podwawelska ..jpg|'''lāitin''' <37> – kiełbasa File:Nc cheese.jpg|'''sūris''' <40> – ser żółty File:Творог.jpg|'''glumzdi''' <52> – twaróg File:2023 Masło w maselniczce.jpg|'''anktan''' <35> – masło File:Turkish strained yogurt.jpg|'''jōgurts''' <32> – jogurt File:Steamed Buckwheat on a plate.jpg|'''puttera''' <45> – kasza File:Mjøl.jpg|'''miltan''' <35> – mąka File:HK food ingredient texture of Alberto Poiatti Italian brand 直通粉 penne rigate yellow September 2021 SS2 02.jpg|'''nūdelis''' <52> → makaron (''plurale tantum'') File:Anadama bread (1).jpg|'''geīts''' <58> – chleb File:13-08-31-Kochtreffen-Wien-RalfR-N3S 7849-024.jpg|'''traskeīlis''' <40> – bułka File:Fancy raw mixed nuts macro.jpg|'''reīss''' <36> – orzech File:Eierdoosmet10eierengevuld2010.jpg|'''pāuts''' <32> – jajko File:Salt shaker on white background.jpg|'''sāls''' <60> – sól File:Black Pepper IMG 4866.jpg|'''pippars''' <32> – pieprz File:Heinz Tomato Ketchup (51266256693).jpg|'''ketšups''' <32> – keczup File:Zaanse mayonaise.jpg|'''majōnezi''' <52> – majonez File:Soja Sauce zum Sushi (25966205154).jpg|'''pamārka''' <45> – sos </gallery> === Īdas – Potrawy === <gallery> File:0003 kotlet schabowy 2013, photo by Silar.JPG|'''karmenādi''' <52> – kotlet File:Plated grilled fish (cropped).jpg|'''zuks''' <32> – ryba File:Scrambed eggs.jpg|'''pautinni''' <52> – jajecznica File:Egg Sandwich.jpg|'''geītka''' <45> – kanapka File:French fries (6211716064).jpg|'''frittis''' <52> – frytki (''plurale tantum'') File:Pizza napoletana.jpg|'''picca''' <45> – pizza File:Swedish pancakes.jpg|'''kalsā''' <46> – naleśnik, blin File:Zupa ogórkowa - 2024.05.29.jpg|'''zuppi''' <52> – zupa File:Rosół - 2024.11.03.jpg|'''jūsi''' <52> – rosół, bulion File:Vegetable salad, Christmas Eve dinner in Brisbane, Australia, 2023.jpg|'''mišmašs''' <32> – sałatka jarzynowa </gallery> === Saldiskāi – Słodycze === <gallery> File:Sugar-485057.jpg|'''cukkeris''' <40> – cukier File:MielCristalizada.jpg|'''meddu''' <44> – miód File:Mermelada de frutlla.jpeg|'''kōnfitiri''', '''marmelādi''' <52> – konfitura, marmolada, dżem File:Piece of chocolate cake on a white plate decorated with chocolate sauce.jpg|'''lūgis''' <40> – ciasto File:2020-07-26 16 25 26 A sample of Grandma's Mini Chocolate Chip cookies in the Dulles section of Sterling, Loudoun County, Virginia.jpg|'''kepinnis''' <52> – ciastka, herbatniki (''plurale tantum'') File:Strawberry ice cream cone (5076899310).jpg|'''ladāi''' <36> – lody File:Green and Black's dark chocolate bar 2.jpg|'''šokōladi''' <52> – czekolada File:2023 Cukierki Michałki klasyczne.jpg|'''bumbōns''' <32> – cukierek File:Charms Blow Pop (2458474034).jpg|'''lučči''' <52> – lizak </gallery> == Wyrazy określające rzeczownik == W języku pruskim zdarza się, że używa się dopełniacza l. pojedynczej słów określających rzeczownik w wyrażeniach, w których w języku polskim rzeczownik byłby określany przez przymiotnik, np.: * '''tōmatis''' zuppi – zupa pomidorowa * '''wanillas''' ladāi – lody waniliowe == Odmiana czasowników ''jeść'' i ''pić'' w cz. teraźniejszym == '''Īstun''' – Jeść {| style="background-color: #fafafa; border: solid 1px #c2c3c4; padding: 0.2em; width: 45%;" valign=top |- |As '''īma''' |- |Tū '''īsei''' |- |Tāns/Tenā/Sta '''īst''' |- |Mes '''īmai''' |- |Jūs '''ītei''' |- |Tenēi/Tennas '''īst''' |} '''Pūtun''' – Pić {| style="background-color: #fafafa; border: solid 1px #c2c3c4; padding: 0.2em; width: 45%;" valign=top |- |As '''pūja''' |- |Tū '''pūja''' |- |Tāns/Tenā/Sta '''pūja''' |- |Mes '''pūjimai''' |- |Jūs '''pūjitei''' |- |Tenēi/Tennas '''pūja''' |} == Przydatne wyrażenia == * '''Per brōkastin/pussideinan/bitasīdin as īma...''' – Na śniadanie/obiad/kolację jem... * '''Sta ast saldan/sūru/rūgtan/kārtan/astran''' – To jest słodkie/słone/kwaśne/gorzkie/ostre. * '''Šī īda ast gardu/nigardu''' – Ta potrawa jest smaczna/niesmaczna. * '''Šī īda ast pagattawintan iz...''' – Ta potrawa jest przygotowana z... * '''Mennei... padīnga''' – Lubię... * '''Mennei... ni padīnga''' – Nie lubię... * '''Ka tū kwaitīlai īstun?''' – Co chciałbyć zjeść? * '''As kwaitīlai īstun...''' – Chciałbym zjeść... * '''As turri kwāitan per...''' – Mam ochotę na... * '''Majā milītasi īda ast...''' – Moja ulubiona potrawa to... * '''Empadīngan!''' – Smacznego! 60dj3668ipar9cq7ezzzyb8k1qf6oau Pruski/Lekcja13 0 61048 543744 543639 2026-05-21T18:43:31Z Aklbmd164 37133 /* Tworzenie nazw zawodów */ 543744 wikitext text/x-wiki '''<big>Lakciōni 13</big>''' == Deiktāi en mīstu be prōfesiōnis – Miejsca w mieście i zawody == === Deiktāi en mīstu === <gallery> File:Gifford State Bank.jpg|'''bānki''' <52> – bank File:Caffeena café storefront at NOMO, Bacoor, Cavite — 25 Feb 2022.jpg|'''kafēbutan''' <35> – kawiarnia File:Novo-Cinemas-Book-Movie-Tickets-Doha-Qatar (5).jpg|'''kintùps''' <32> – kino File:Hospital in Volgograd 001.jpg|'''špitlin''' <37> – szpital File:Hotel Kiljava.jpg|'''hōtels''' <32> – hotel File:Princeton University Art Museum Ancient Mediterranean Art Gallery.jpg|'''muzējan''' <35a> – muzeum File:Park Środula, Sosnowiec, Jesień 2021.jpg|'''parks''' <32> – park File:The interior of an Olive Garden restaurant 04.jpg|'''restaurānts''' <56> – restauracja File:Andrew Classroom De La Salle University.jpeg|'''skūli''' <52> – szkoła File:In the Grocers - geograph.org.uk - 7767639.jpg|'''kāupabutan''' <35> – sklep File:Supermarket z flagami (ubt).JPG|'''sūpermarkets''' <32> – supermarket File:San Diego Zoo entrance elephant.jpg|'''zoō''' (r. nijaki, nie odmienia się) – zoo File:17-05-30-M R Štefánik Airport- RR71498.jpg|'''skrāistaustin''' <37> – lotnisko File:Rennes - Librairie Le Failler - 20250212 (2).jpg|'''laiskeīns''' <32> – księgarnia File:Inverness Bus Station... - geograph.org.uk - 7774844.jpg|'''autōbusadwars''' <32> – dworzec autobusowy File:20180710 165312 pharmacy lodz july 2018.jpg|'''apōteki''' <52> – apteka File:Saint Catherine Catholic Church in Boulder Montana.jpg|'''kīrki''' <52> – kościół File:Laukaa Main Library interior 2.jpg|'''bibliōteki''' <52> – biblioteka File:Wiślica Poczta (1).jpg|'''pusti''' <52> – poczta File:Stazione di Milano Centrale (10745653534).jpg|'''gelzāpintisdwars''' <32> – dworzec kolejowy File:Gran Teatro de la Habana interior.jpg|'''teāteris''' <40> – teatr File:Admiral Street Fire Station Providence RI.jpg|'''ugnisar̀gawa''' <45> – remiza strażacka File:A view of a bakery in Berlin, Germany.jpg|'''umnudi''' <52> – piekarnia File:Sweetie Pies Bakery - December 2024 - Sarah Stierch 02.jpg|'''kōnditaraja''' <45> – cukiernia File:Port Elizabeth City Hall, front facade.jpg|'''rādasbutan''' <35> – ratusz File:Shell petrol stations in the Philippines (June 2023) 04.jpg|'''degalaīns''' <32> – stacja benzynowa </gallery> === Prōfesiōnis === <gallery> File:Dr. Soumya Guha in an Operation Theatre.jpg|'''ārsti''' <54> – lekarz File:A college professor teaching in a university classroom full of students in Tennessee, United States 08.jpg|'''mukinnewis''' <40> – nauczyciel File:Arcata firefighter Spraying water at a fire.jpg|'''ugnisar̀giskeniks''' <32> – strażak File:HH Polizeihauptmeister MZ.jpg|'''pōlicists''' <32> – policjant File:Diana Ellis - 19 Oct 2011.jpg|'''adwōkats''' <32> – adwokat File:Ohio farmer David Brandt.jpg|'''būrs''' <32> – rolnik File:Barnraisers working together to construct WOW Barn. LEEDS 2023.jpg|'''zēistajs''' <32> – budowlaniec File:091018 MerchantofVenice 161.jpg|'''aktōrs''' <32> – aktor File:Chef cuisinier.jpg|'''kukūris''' <40> – kucharz File:Ingenieur reseaux.jpg|'''infōrmatikeris''' <40> – informatyk File:Fönsterputsning - Window cleaner - Ystad-2025.jpg|'''gewinīs''' <38> – sprzątacz File:Flower seller at the Rabat open market - Il-Monti.jpg|'''perdātajs''' <32> – sprzedawca File:Waiter in a restaurant, Paris 2011.jpg|'''prickus''' <42> – kelner; portier File:Khuraman Ismayilova.jpg|'''bibliōtekars''' <32> – bibliotekarz File:Truckdriver.jpg|'''štīritajs''' <32> – kierowca File:Battesimi0113.jpg|'''nōseilaniks''' <32> – ksiądz File:Baker Oslo.jpg|'''pekūris''' <40> – piekarz </gallery> == Tworzenie nazw zawodów == === Nazwy męskie === Nazwy męskie zawodów w języku pruskim można utworzyć poprzez m.in. utworzenie z czasownika rzeczownika oznaczającego wykonawcę czynności, np.: * perdā<span style="color:red">tun</span> (sprzedać) ⇒ perdā<span style="color:red">tajs</span> (sprzedawca) * štīri<span style="color:red">tun</span> (kierować, prowdzić) ⇒ štīri<span style="color:red">tajs</span> (kierowca) === Nazwy żeńskie === Nazwy żeńskie zawodów tworzy się w języku pruskim na trzy główne sposoby:<br> ''-tajs'' ⇒ ''-taja'', np.: * perdā<span style="color:red">tajs</span> ⇒ perdā<span style="color:red">taja</span> * štīri<span style="color:red">tajs</span> ⇒ štīri<span style="color:red">taja</span> ''-s/-is'' ⇒ ''-ini'', np.: * bibliōtekar<span style="color:red">s</span> ⇒ bibliōtekar<span style="color:red">ini</span> * infōrmatiker<span style="color:red">is</span> ⇒ infōrmatiker<span style="color:red">ini</span> ''-is'' ⇒ ''-i'', np.: * mukinnew<span style="color:red">is</span> ⇒ mukinnew<span style="color:red">i</span> * kukūr<span style="color:red">is</span> ⇒ kukūr<span style="color:red">i</span> Wyjątek: aktrīsi (aktorka) == Odmiana czasowników ''iść'' i ''pracować'' w cz. teraźniejszym == '''Ēitwei''' – Iść {| style="background-color: #fafafa; border: solid 1px #c2c3c4; padding: 0.2em; width: 45%;" valign=top |- |As '''ēima''' |- |Tū '''ēisei''' |- |Tāns/Tenā/Sta '''ēit''' |- |Mes '''ēimai''' |- |Jūs '''ēitei''' |- |Tenēi/Tennas '''ēit''' |} '''Dīlatwei''' – Pracować {| style="background-color: #fafafa; border: solid 1px #c2c3c4; padding: 0.2em; width: 45%;" valign=top |- |As '''dīlai''' |- |Tū '''dīlai''' |- |Tāns/Tenā/Sta '''dīlai''' |- |Mes '''dīlaimai''' |- |Jūs '''dīlaitei''' |- |Tenēi/Tennas '''dīlai''' |} Czasownik ''dīlatwei'' oznacza również ''działać'' (np. urządzenie). == Przydatne wyrażenia == * '''As ēima en kāupabutan/skūlin/bibliōtekin''' – Idę do sklepu/szkoły/biblioteki. * '''As dīlai en kāupabutu/skūlai/bibliōtekei''' – Pracuję w sklepie/szkole/bibliotece. * '''As dīlai kāigi perdātajs/mukinnewis/bibliōtekars''' – Pracuję jako sprzedawca/nauczyciel/bibliotekarz. * '''En perejīngiskwai as kwāi wīrstwei perdātajs/mukinnewis/bibliōtekars''' – W przyszłości chcę zostać sprzedawcą/nauczycielem/bibliotekarzem. * '''Etwinūis, kāigi as mazzi preikakīntun si prei autōbusadwaran/pustin/umnudin?''' – Przepraszam, jak mogę dotrzeć na dworzec autobusowy/na pocztę/do piekarni? * '''Jaīs tikriskai be panzdau wartinnais si prei tikrai/kāirai''' – Idź prosto, a następnie skręć w prawo/lewo. * '''Kwēi ukataūwaisis hōtels/sūpermarkets/degalaīns ast?''' – Gdzie jest najbliższy hotel/najbliższy supermarket/najbliższa stacja benzynowa? hg85svmb24qza4hdjlherithh86g190 Pruski/Lekcja22 0 61096 543767 543000 2026-05-21T21:43:51Z Aklbmd164 37133 /* Odmiany od do */ 543767 wikitext text/x-wiki '''<big>Lakciōni 22</big>''' == Czasowniki == Pruskie czasowniki w bezokoliczniku mogą mieć jedną z końcówek: ''-tun'' albo ''-twei''. Końcówka ''-tun'' oznacza czasownik przechodni, czyli taki z którego można utworzyć stronę bierną, a ''-twei'' czasownik nieprzechodni. == Czasy == === Czas teraźniejszy i przeszły === Form czasu teraźniejszego i przeszłego będziemy się uczyć korzystając ze schematów odmian, które będziemy poznawali w następnych lekcjach. <br> Często się zdarza, że formy czasownika w cz. teraźniejszym i przeszłym są takie same, i jeśli kontekst nie wskazuje, jaki to czas, możemy użyć odmienionego przez rodzaj i liczbę imiesłowu czynnego czasu przeszłego (w słowniku jest to ''pragūbiniskas aktīws'', o tym, jak go odmieniać, nauczymy się na osobnej lekcji), np. ''As segīwuns/segīwusi'' (Ja robiłem/robiłam). === Czas przyszły === Jego budowa to odmieniony przez osobę czasownik posiłkowy ''wīrstwei'' w cz. teraźniejszym: {| style="background-color: #fafafa; border: solid 1px #c2c3c4; padding: 0.2em; width: 45%;" valign=top |- |As '''wīrst''' |- |Tū '''wīrst''' |- |Tāns/Tenā/Sta '''wīrst''' |- |Mes '''wīrstmai''' |- |Jūs '''wīrstei''' |- |Tenēi/Tennas '''wīrst''' |} <noinclude> oraz odmieniony przez rodzaj (który odpowiada rodzajowi podmiotu) i liczbę imiesłów czynny czasu przeszłego, np. ''As wīrst segīwuns/segīwusi'' (Ja będę robił/robiła). <br> Uwaga! Zwróć uwagę na szyk pytania i przeczenia, np.: * Wīrst tū segīwuns? – Będziesz robił? * As ni wīrst segīwuns. – Nie będę robił. Taka sama kolejność występuje w budowie czasu perfekt. === Czas perfekt === Czasu perfekt używamy, kiedy coś się wydarzyło w przeszłości, ale skutki są widoczne w teraźniejszości. <br> Jego budowa to odmieniony przez osobę czasownik posiłkowy ''būtwei'' w cz. teraźniejszym oraz odmieniony przez rodzaj i liczbę imiesłów czynny czasu przeszłego, np.: * As jāu asma segīwuns stan. – Już to zrobiłem. * Tenā jāu ast pergūbusi. – Ona już przyszła. == Odmiany od <115> do <119> == Czasowniki, które odmieniają się tymi schematami, są bardzo często używane i mają nieregularną odmianę. * '''būtwei''' – być {| class="wikitable" ! ! <span style="font-weight: normal;">Czas teraźniejszy</span> ! <span style="font-weight: normal;">Czas przeszły</span> |- | style="padding: 0 1em; text-align: center;" |1. os. lp. | align="center"|as<span style="color:red">ma</span> | align="center"|bēi |- | style="padding: 0 1em; text-align: center;" |2. os. lp. | align="center"|as<span style="color:red">sei</span> | align="center"|bēi |- | style="padding: 0 1em; text-align: center;" |3. os. lp. | align="center"|as<span style="color:red">t</span> | align="center"|bēi |- | style="padding: 0 1em; text-align: center;" |1. os. lm. | align="center"|as<span style="color:red">mai</span> | align="center"|bēimai |- | style="padding: 0 1em; text-align: center;" |2. os. lm. | align="center"|as<span style="color:red">tei</span> | align="center"|bēitei |- | style="padding: 0 1em; text-align: center;" |3. os. lm. | align="center"|as<span style="color:red">t</span> | align="center"|bēi |} * '''ēitwei''' – iść {| class="wikitable" ! ! <span style="font-weight: normal;">Czas teraźniejszy</span> ! <span style="font-weight: normal;">Czas przeszły</span> |- | style="padding: 0 1em; text-align: center;" |1. os. lp. | align="center"|ēi<span style="color:red">ma</span> | align="center"|gūbi |- | style="padding: 0 1em; text-align: center;" |2. os. lp. | align="center"|ēi<span style="color:red">sei</span> | align="center"|gūbi |- | style="padding: 0 1em; text-align: center;" |3. os. lp. | align="center"|ēi<span style="color:red">t</span> | align="center"|gūbi |- | style="padding: 0 1em; text-align: center;" |1. os. lm. | align="center"|ēi<span style="color:red">mai</span> | align="center"|gūbimai |- | style="padding: 0 1em; text-align: center;" |2. os. lm. | align="center"|ēi<span style="color:red">tei</span> | align="center"|gūbitei |- | style="padding: 0 1em; text-align: center;" |3. os. lm. | align="center"|ēi<span style="color:red">t</span> | align="center"|gūbi |} * '''īstun''' – jeść {| class="wikitable" ! ! <span style="font-weight: normal;">Czas teraźniejszy</span> ! <span style="font-weight: normal;">Czas przeszły</span> |- | style="padding: 0 1em; text-align: center;" |1. os. lp. | align="center"|ī<span style="color:red">ma</span> | align="center"|īda |- | style="padding: 0 1em; text-align: center;" |2. os. lp. | align="center"|ī<span style="color:red">sei</span> | align="center"|īda |- | style="padding: 0 1em; text-align: center;" |3. os. lp. | align="center"|īs<span style="color:red">t</span> | align="center"|īda |- | style="padding: 0 1em; text-align: center;" |1. os. lm. | align="center"|ī<span style="color:red">mai</span> | align="center"|īdamai |- | style="padding: 0 1em; text-align: center;" |2. os. lm. | align="center"|ī<span style="color:red">tei</span> | align="center"|īdatei |- | style="padding: 0 1em; text-align: center;" |3. os. lm. | align="center"|īs<span style="color:red">t</span> | align="center"|īda |} * '''dātun''' – dać, dawać; pozwolić {| class="wikitable" ! ! <span style="font-weight: normal;">Czas teraźniejszy</span> ! <span style="font-weight: normal;">Czas przeszły</span> |- | style="padding: 0 1em; text-align: center;" |1. os. lp. | align="center"|dā<span style="color:red">ma</span> | align="center"|dāi |- | style="padding: 0 1em; text-align: center;" |2. os. lp. | align="center"|dā<span style="color:red">sei</span> | align="center"|dāi |- | style="padding: 0 1em; text-align: center;" |3. os. lp. | align="center"|dās<span style="color:red">t</span> | align="center"|dāi |- | style="padding: 0 1em; text-align: center;" |1. os. lm. | align="center"|dā<span style="color:red">mai</span> | align="center"|dāimai |- | style="padding: 0 1em; text-align: center;" |2. os. lm. | align="center"|dā<span style="color:red">tei</span> | align="center"|dāitei |- | style="padding: 0 1em; text-align: center;" |3. os. lm. | align="center"|dās<span style="color:red">t</span> | align="center"|dāi |} * '''jātwei''' – jechać {| class="wikitable" ! ! <span style="font-weight: normal;">Czas teraźniejszy</span> ! <span style="font-weight: normal;">Czas przeszły</span> |- | style="padding: 0 1em; text-align: center;" |1. os. lp. | align="center"|jā<span style="color:red">ma</span> | align="center"|jāja |- | style="padding: 0 1em; text-align: center;" |2. os. lp. | align="center"|jā<span style="color:red">sei</span> | align="center"|jāja |- | style="padding: 0 1em; text-align: center;" |3. os. lp. | align="center"|jā<span style="color:red">t</span> | align="center"|jāja |- | style="padding: 0 1em; text-align: center;" |1. os. lm. | align="center"|jā<span style="color:red">mai</span> | align="center"|jājamai |- | style="padding: 0 1em; text-align: center;" |2. os. lm. | align="center"|jā<span style="color:red">tei</span> | align="center"|jājatei |- | style="padding: 0 1em; text-align: center;" |3. os. lm. | align="center"|jā<span style="color:red">t</span> | align="center"|jāja |} l1x634my6p8ho11vnk50dcfvmw6vu6f 543772 543767 2026-05-21T22:01:15Z Aklbmd164 37133 /* Czasy */ 543772 wikitext text/x-wiki '''<big>Lakciōni 22</big>''' == Czasowniki == Pruskie czasowniki w bezokoliczniku mogą mieć jedną z końcówek: ''-tun'' albo ''-twei''. Końcówka ''-tun'' oznacza czasownik przechodni, czyli taki z którego można utworzyć stronę bierną, a ''-twei'' czasownik nieprzechodni. == Czasy == === Czas teraźniejszy i przeszły === Form czasu teraźniejszego i przeszłego będziemy się uczyć korzystając ze schematów odmian, które będziemy poznawali w następnych lekcjach. <br> Często się zdarza, że formy czasownika w cz. teraźniejszym i przeszłym są takie same, i jeśli kontekst nie wskazuje, jaki to czas, możemy użyć odmienionego przez rodzaj i liczbę imiesłowu czynnego czasu przeszłego (w słowniku jest to ''pragūbiniskas aktīws''), np. ''As segīwuns/segīwusi'' (Ja robiłem/robiłam). === Czas przyszły === Jego budowa to odmieniony przez osobę czasownik posiłkowy ''wīrstwei'' w cz. teraźniejszym: {| style="background-color: #fafafa; border: solid 1px #c2c3c4; padding: 0.2em; width: 45%;" valign=top |- |As '''wīrst''' |- |Tū '''wīrst''' |- |Tāns/Tenā/Sta '''wīrst''' |- |Mes '''wīrstmai''' |- |Jūs '''wīrstei''' |- |Tenēi/Tennas '''wīrst''' |} <noinclude> oraz odmieniony przez rodzaj (który odpowiada rodzajowi podmiotu) i liczbę imiesłów czynny czasu przeszłego, np. ''As wīrst segīwuns/segīwusi'' (Ja będę robił/robiła). <br> Uwaga! Zwróć uwagę na szyk pytania i przeczenia, np.: * Wīrst tū segīwuns? – Będziesz robił? * As ni wīrst segīwuns. – Nie będę robił. Taka sama kolejność występuje w budowie czasu perfekt. === Czas perfekt === Czasu perfekt używamy, kiedy coś się wydarzyło w przeszłości, ale skutki są widoczne w teraźniejszości. <br> Jego budowa to odmieniony przez osobę czasownik posiłkowy ''būtwei'' w cz. teraźniejszym oraz odmieniony przez rodzaj i liczbę imiesłów czynny czasu przeszłego, np.: * As jāu asma segīwuns stan. – Już to zrobiłem. * Tenā jāu ast pergūbusi. – Ona już przyszła. == Odmiany od <115> do <119> == Czasowniki, które odmieniają się tymi schematami, są bardzo często używane i mają nieregularną odmianę. * '''būtwei''' – być {| class="wikitable" ! ! <span style="font-weight: normal;">Czas teraźniejszy</span> ! <span style="font-weight: normal;">Czas przeszły</span> |- | style="padding: 0 1em; text-align: center;" |1. os. lp. | align="center"|as<span style="color:red">ma</span> | align="center"|bēi |- | style="padding: 0 1em; text-align: center;" |2. os. lp. | align="center"|as<span style="color:red">sei</span> | align="center"|bēi |- | style="padding: 0 1em; text-align: center;" |3. os. lp. | align="center"|as<span style="color:red">t</span> | align="center"|bēi |- | style="padding: 0 1em; text-align: center;" |1. os. lm. | align="center"|as<span style="color:red">mai</span> | align="center"|bēimai |- | style="padding: 0 1em; text-align: center;" |2. os. lm. | align="center"|as<span style="color:red">tei</span> | align="center"|bēitei |- | style="padding: 0 1em; text-align: center;" |3. os. lm. | align="center"|as<span style="color:red">t</span> | align="center"|bēi |} * '''ēitwei''' – iść {| class="wikitable" ! ! <span style="font-weight: normal;">Czas teraźniejszy</span> ! <span style="font-weight: normal;">Czas przeszły</span> |- | style="padding: 0 1em; text-align: center;" |1. os. lp. | align="center"|ēi<span style="color:red">ma</span> | align="center"|gūbi |- | style="padding: 0 1em; text-align: center;" |2. os. lp. | align="center"|ēi<span style="color:red">sei</span> | align="center"|gūbi |- | style="padding: 0 1em; text-align: center;" |3. os. lp. | align="center"|ēi<span style="color:red">t</span> | align="center"|gūbi |- | style="padding: 0 1em; text-align: center;" |1. os. lm. | align="center"|ēi<span style="color:red">mai</span> | align="center"|gūbimai |- | style="padding: 0 1em; text-align: center;" |2. os. lm. | align="center"|ēi<span style="color:red">tei</span> | align="center"|gūbitei |- | style="padding: 0 1em; text-align: center;" |3. os. lm. | align="center"|ēi<span style="color:red">t</span> | align="center"|gūbi |} * '''īstun''' – jeść {| class="wikitable" ! ! <span style="font-weight: normal;">Czas teraźniejszy</span> ! <span style="font-weight: normal;">Czas przeszły</span> |- | style="padding: 0 1em; text-align: center;" |1. os. lp. | align="center"|ī<span style="color:red">ma</span> | align="center"|īda |- | style="padding: 0 1em; text-align: center;" |2. os. lp. | align="center"|ī<span style="color:red">sei</span> | align="center"|īda |- | style="padding: 0 1em; text-align: center;" |3. os. lp. | align="center"|īs<span style="color:red">t</span> | align="center"|īda |- | style="padding: 0 1em; text-align: center;" |1. os. lm. | align="center"|ī<span style="color:red">mai</span> | align="center"|īdamai |- | style="padding: 0 1em; text-align: center;" |2. os. lm. | align="center"|ī<span style="color:red">tei</span> | align="center"|īdatei |- | style="padding: 0 1em; text-align: center;" |3. os. lm. | align="center"|īs<span style="color:red">t</span> | align="center"|īda |} * '''dātun''' – dać, dawać; pozwolić {| class="wikitable" ! ! <span style="font-weight: normal;">Czas teraźniejszy</span> ! <span style="font-weight: normal;">Czas przeszły</span> |- | style="padding: 0 1em; text-align: center;" |1. os. lp. | align="center"|dā<span style="color:red">ma</span> | align="center"|dāi |- | style="padding: 0 1em; text-align: center;" |2. os. lp. | align="center"|dā<span style="color:red">sei</span> | align="center"|dāi |- | style="padding: 0 1em; text-align: center;" |3. os. lp. | align="center"|dās<span style="color:red">t</span> | align="center"|dāi |- | style="padding: 0 1em; text-align: center;" |1. os. lm. | align="center"|dā<span style="color:red">mai</span> | align="center"|dāimai |- | style="padding: 0 1em; text-align: center;" |2. os. lm. | align="center"|dā<span style="color:red">tei</span> | align="center"|dāitei |- | style="padding: 0 1em; text-align: center;" |3. os. lm. | align="center"|dās<span style="color:red">t</span> | align="center"|dāi |} * '''jātwei''' – jechać {| class="wikitable" ! ! <span style="font-weight: normal;">Czas teraźniejszy</span> ! <span style="font-weight: normal;">Czas przeszły</span> |- | style="padding: 0 1em; text-align: center;" |1. os. lp. | align="center"|jā<span style="color:red">ma</span> | align="center"|jāja |- | style="padding: 0 1em; text-align: center;" |2. os. lp. | align="center"|jā<span style="color:red">sei</span> | align="center"|jāja |- | style="padding: 0 1em; text-align: center;" |3. os. lp. | align="center"|jā<span style="color:red">t</span> | align="center"|jāja |- | style="padding: 0 1em; text-align: center;" |1. os. lm. | align="center"|jā<span style="color:red">mai</span> | align="center"|jājamai |- | style="padding: 0 1em; text-align: center;" |2. os. lm. | align="center"|jā<span style="color:red">tei</span> | align="center"|jājatei |- | style="padding: 0 1em; text-align: center;" |3. os. lm. | align="center"|jā<span style="color:red">t</span> | align="center"|jāja |} 1erbgb6f4zpf7we9rpjmb8d2aw0tz42 543773 543772 2026-05-21T22:02:22Z Aklbmd164 37133 /* Czas przyszły */ 543773 wikitext text/x-wiki '''<big>Lakciōni 22</big>''' == Czasowniki == Pruskie czasowniki w bezokoliczniku mogą mieć jedną z końcówek: ''-tun'' albo ''-twei''. Końcówka ''-tun'' oznacza czasownik przechodni, czyli taki z którego można utworzyć stronę bierną, a ''-twei'' czasownik nieprzechodni. == Czasy == === Czas teraźniejszy i przeszły === Form czasu teraźniejszego i przeszłego będziemy się uczyć korzystając ze schematów odmian, które będziemy poznawali w następnych lekcjach. <br> Często się zdarza, że formy czasownika w cz. teraźniejszym i przeszłym są takie same, i jeśli kontekst nie wskazuje, jaki to czas, możemy użyć odmienionego przez rodzaj i liczbę imiesłowu czynnego czasu przeszłego (w słowniku jest to ''pragūbiniskas aktīws''), np. ''As segīwuns/segīwusi'' (Ja robiłem/robiłam). === Czas przyszły === Jego budowa to odmieniony przez osobę czasownik posiłkowy ''wīrstwei'' w cz. teraźniejszym: {| style="background-color: #fafafa; border: solid 1px #c2c3c4; padding: 0.2em; width: 45%;" valign=top |- |As '''wīrst''' |- |Tū '''wīrst''' |- |Tāns/Tenā/Sta '''wīrst''' |- |Mes '''wīrstmai''' |- |Jūs '''wīrstei''' |- |Tenēi/Tennas '''wīrst''' |} <noinclude> oraz odmieniony przez rodzaj (który odpowiada rodzajowi podmiotu) i liczbę imiesłów czynny czasu przeszłego, np.: * As wīrst segīwuns/segīwusi (Ja będę robił/robiła). Uwaga! Zwróć uwagę na szyk pytania i przeczenia, np.: * Wīrst tū segīwuns? – Będziesz robił? * As ni wīrst segīwuns. – Nie będę robił. Taka sama kolejność występuje w budowie czasu perfekt. === Czas perfekt === Czasu perfekt używamy, kiedy coś się wydarzyło w przeszłości, ale skutki są widoczne w teraźniejszości. <br> Jego budowa to odmieniony przez osobę czasownik posiłkowy ''būtwei'' w cz. teraźniejszym oraz odmieniony przez rodzaj i liczbę imiesłów czynny czasu przeszłego, np.: * As jāu asma segīwuns stan. – Już to zrobiłem. * Tenā jāu ast pergūbusi. – Ona już przyszła. == Odmiany od <115> do <119> == Czasowniki, które odmieniają się tymi schematami, są bardzo często używane i mają nieregularną odmianę. * '''būtwei''' – być {| class="wikitable" ! ! <span style="font-weight: normal;">Czas teraźniejszy</span> ! <span style="font-weight: normal;">Czas przeszły</span> |- | style="padding: 0 1em; text-align: center;" |1. os. lp. | align="center"|as<span style="color:red">ma</span> | align="center"|bēi |- | style="padding: 0 1em; text-align: center;" |2. os. lp. | align="center"|as<span style="color:red">sei</span> | align="center"|bēi |- | style="padding: 0 1em; text-align: center;" |3. os. lp. | align="center"|as<span style="color:red">t</span> | align="center"|bēi |- | style="padding: 0 1em; text-align: center;" |1. os. lm. | align="center"|as<span style="color:red">mai</span> | align="center"|bēimai |- | style="padding: 0 1em; text-align: center;" |2. os. lm. | align="center"|as<span style="color:red">tei</span> | align="center"|bēitei |- | style="padding: 0 1em; text-align: center;" |3. os. lm. | align="center"|as<span style="color:red">t</span> | align="center"|bēi |} * '''ēitwei''' – iść {| class="wikitable" ! ! <span style="font-weight: normal;">Czas teraźniejszy</span> ! <span style="font-weight: normal;">Czas przeszły</span> |- | style="padding: 0 1em; text-align: center;" |1. os. lp. | align="center"|ēi<span style="color:red">ma</span> | align="center"|gūbi |- | style="padding: 0 1em; text-align: center;" |2. os. lp. | align="center"|ēi<span style="color:red">sei</span> | align="center"|gūbi |- | style="padding: 0 1em; text-align: center;" |3. os. lp. | align="center"|ēi<span style="color:red">t</span> | align="center"|gūbi |- | style="padding: 0 1em; text-align: center;" |1. os. lm. | align="center"|ēi<span style="color:red">mai</span> | align="center"|gūbimai |- | style="padding: 0 1em; text-align: center;" |2. os. lm. | align="center"|ēi<span style="color:red">tei</span> | align="center"|gūbitei |- | style="padding: 0 1em; text-align: center;" |3. os. lm. | align="center"|ēi<span style="color:red">t</span> | align="center"|gūbi |} * '''īstun''' – jeść {| class="wikitable" ! ! <span style="font-weight: normal;">Czas teraźniejszy</span> ! <span style="font-weight: normal;">Czas przeszły</span> |- | style="padding: 0 1em; text-align: center;" |1. os. lp. | align="center"|ī<span style="color:red">ma</span> | align="center"|īda |- | style="padding: 0 1em; text-align: center;" |2. os. lp. | align="center"|ī<span style="color:red">sei</span> | align="center"|īda |- | style="padding: 0 1em; text-align: center;" |3. os. lp. | align="center"|īs<span style="color:red">t</span> | align="center"|īda |- | style="padding: 0 1em; text-align: center;" |1. os. lm. | align="center"|ī<span style="color:red">mai</span> | align="center"|īdamai |- | style="padding: 0 1em; text-align: center;" |2. os. lm. | align="center"|ī<span style="color:red">tei</span> | align="center"|īdatei |- | style="padding: 0 1em; text-align: center;" |3. os. lm. | align="center"|īs<span style="color:red">t</span> | align="center"|īda |} * '''dātun''' – dać, dawać; pozwolić {| class="wikitable" ! ! <span style="font-weight: normal;">Czas teraźniejszy</span> ! <span style="font-weight: normal;">Czas przeszły</span> |- | style="padding: 0 1em; text-align: center;" |1. os. lp. | align="center"|dā<span style="color:red">ma</span> | align="center"|dāi |- | style="padding: 0 1em; text-align: center;" |2. os. lp. | align="center"|dā<span style="color:red">sei</span> | align="center"|dāi |- | style="padding: 0 1em; text-align: center;" |3. os. lp. | align="center"|dās<span style="color:red">t</span> | align="center"|dāi |- | style="padding: 0 1em; text-align: center;" |1. os. lm. | align="center"|dā<span style="color:red">mai</span> | align="center"|dāimai |- | style="padding: 0 1em; text-align: center;" |2. os. lm. | align="center"|dā<span style="color:red">tei</span> | align="center"|dāitei |- | style="padding: 0 1em; text-align: center;" |3. os. lm. | align="center"|dās<span style="color:red">t</span> | align="center"|dāi |} * '''jātwei''' – jechać {| class="wikitable" ! ! <span style="font-weight: normal;">Czas teraźniejszy</span> ! <span style="font-weight: normal;">Czas przeszły</span> |- | style="padding: 0 1em; text-align: center;" |1. os. lp. | align="center"|jā<span style="color:red">ma</span> | align="center"|jāja |- | style="padding: 0 1em; text-align: center;" |2. os. lp. | align="center"|jā<span style="color:red">sei</span> | align="center"|jāja |- | style="padding: 0 1em; text-align: center;" |3. os. lp. | align="center"|jā<span style="color:red">t</span> | align="center"|jāja |- | style="padding: 0 1em; text-align: center;" |1. os. lm. | align="center"|jā<span style="color:red">mai</span> | align="center"|jājamai |- | style="padding: 0 1em; text-align: center;" |2. os. lm. | align="center"|jā<span style="color:red">tei</span> | align="center"|jājatei |- | style="padding: 0 1em; text-align: center;" |3. os. lm. | align="center"|jā<span style="color:red">t</span> | align="center"|jāja |} 8j25tqcewsqnypiwfsm2gl4snf57olw Wikipedysta:Persino/brudnopis11 2 62939 543796 543696 2026-05-22T00:12:00Z Persino 2851 543796 wikitext text/x-wiki {{Nowiki|{{Link wewnętrzny|strona=Pomoc:Spis treści|uri=tak}}}} ---- {{Nowiki|{{WydobądźLinki|{{lg|Pomoc%3ASpis%20tre%C5%9Bci|uri=tak}}}}}} ---- {{lg|Pomoc%3ASpis%20tre%C5%9Bci|uri=tak}} ---- {{WydobądźLinki|{{lg|Pomoc%3ASpis%20tre%C5%9Bci|uri=tak}}}} {{PobierzNumerArtykułu|Muzyka|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Estoński/Muzyka}} --- {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Szablony edycji - błędy wywołań}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Strony ze złymi uchwytami do obiektów}}}} ---- {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Brak licencji, na stronach głównych, publikacji}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Brakujące spisy treści, dołączonych do stron, stron w innych książkach}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Strony z dołączonymi innymi stronami, w książkach, z obiektami ze złymi uchwytami}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Strony z wypowiedzeniami ze złymi uchwytami}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Strony ze złymi uchwytami do nagłówków}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Artykusły2 dla dzieci2, ze złymi uchwytami do nagłówków}}}} {{sr|#m["PEŁNANAZWAKSIĄŻKI"]()|p=Nazwy - Tom IV}} {{Nowiki|{{lpg|Stołeczne Terytorium Islamabadu|a=}}}} {{Nowiki|{{lpg|Stołeczne Terytorium Islamabadu|a=tak}}}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}} ---- {{#invoke:Pudełko|Typ jednostki|typ jednostki=podręcznik dyskusji|dyskusja typu jednostki=}} {{DNUinfo|nazwa przestrzeni nazw=MojaPrzestrzeń}} == {{Śródtytuł|tytan}}tytan == == {{Śródtytuł|tytan}} == {{Śródtekst|uchwyt=tytan1|tekst=Oto jest tekst}} {{Śródtekst|uchwyt=tytan2|tekst=Oto jest tekst}} {{PobierzŚródtekst|tytan2||Wikipedysta:Persino/brudnopis11}} fw2k0odno17k3jar0w0ef4oploe14ki Zioła i przyprawy 0 63445 543843 543197 2026-05-22T11:55:45Z EdytaT 2664 /* Zioła i przyprawy */ 543843 wikitext text/x-wiki {{status|-25%|Kulinaria|Zielarstwo}} {{Rozdział|Podręcznik|Zioła i przyprawy}} <small>< [[Zioła i przyprawy/Okładka|Okładka]]</small> {{FormularzWejścia|typ=search|szerokość=40|przestrzenie=(Główna)**|przedrostek=Zioła i przyprawy|szukaj=Szukaj|przerwa=no|zastępczy=Wyszukaj}} == Spis treści == === Zioła i przyprawy === # [[Zioła i przyprawy/Kolendra|Kolendra]] # [[Zioła i przyprawy/Krwiściąg|Krwiściąg]] # [[Zioła i przyprawy/Liść laurowy|Liść laurowy]] # [[Zioła i przyprawy/Rozmaryn|Rozmaryn]] # [[Zioła i przyprawy/Trawa cytrynowa|Trawa cytrynowa]] # [[Zioła i przyprawy/Tymianek|Tymianek]] === Kompozycje przyprawowe === # [[Zioła i przyprawy/Bouquet garni|Bouquet garni]] # [[Zioła i przyprawy/Curry|Curry]] # [[Zioła i przyprawy/Masala|Masala]] # [[Zioła i przyprawy/Swańska sól|Swańska sól]] # [[Zioła i przyprawy/Zioła do zielonego sosu frankfurckiego|Zioła do zielonego sosu frankfurckiego]] # [[Zioła i przyprawy/Zioła prowansalskie|Zioła prowansalskie]] === Przyprawianie zup === ==== Barszcz ==== * Jako podstawowe przyprawy do klasycznego barszczu czerwonego zaraz na początku gotowania daj [[Zioła i przyprawy/Liść laurowy|liść laurowy]], [[Zioła i przyprawy/Ziele angielskie|ziele angielskie]] i [[Zioła i przyprawy/Pieprz czarny|czarny pieprz]] w ziarnach. * Kilka [[Zioła i przyprawy/Suszone grzyby|suszonych grzybów]] nada głębszy smak. * [[Zioła i przyprawy/Majeranek|Majeranek]] dodaj pod koniec gotowania, by nie zrobił się gorzki. * [[Zioła i przyprawy/Cukier|Szczypta cukru]], trochę [[Zioła i przyprawy/Miód|miodu]] wzbogacą smak. * Charakterystyczną kwaskowatość otrzymasz dodając trochę kiszonych buraków albo [[Zioła i przyprawy/Ocet|octu jabłkowego]] lub odrobiny soku z [[Zioła i przyprawy/Jabłko|jabłka]] lub [[Zioła i przyprawy/Cytryna|cytryny]]. Zakwaszaj na koniec gotowania, po odcedzeniu warzyw, by barszcz nie stracił koloru. * Jeżeli lubisz, to możesz dodać [[Zioła i przyprawy/Lubczyk|lubczyk]], [[Zioła i przyprawy/Goździki|goździki]], [[Zioła i przyprawy/Kminek|kminek]], a odrobina [[Zioła i przyprawy/Chili|chili]] zaostrzy smak. === Przyprawianie warzyw === ==== Buraki ==== * Buraki zawsze potrzebują mocnego kontrastu, takiego jak np. [[Zioła i przyprawy/Ocet|ocet jabłkowy]] i [[Zioła i przyprawy/Sól|sól]], aby optymalnie wydobyć ich własny smak. * Klasycznie: [[Zioła i przyprawy/Kminek|kminek]], [[Zioła i przyprawy/Kolendra|kolendra]] i [[Zioła i przyprawy/Gorczyca|gorczyca]], która szczególnie burakom marynowanym dopełni smak. * Ziołowo: [[Zioła i przyprawy/Koper|świeży koperek]], [[Zioła i przyprawy/Pietruszka|pietruszka]] i [[Zioła i przyprawy/Tymianek|tymianek]]. [[Zioła i przyprawy/Koper|Koperek]] (szczególnie w sałatce) nada burakom delikatną anyżową nutę. * Na ostro: [[Zioła i przyprawy/Pieprz|czarny lub biały pieprz]], [[Zioła i przyprawy/Imbir|świeży imbir]] lub [[Zioła i przyprawy/Chrzan|chrzan]] ==== Szpinak ==== * Klasycznie: do szpinaku w śmietanie idealnie pasują [[Zioła i przyprawy/Sól|sól]], [[Zioła i przyprawy/Pieprz|świeżo zmielony pieprz]], [[Zioła i przyprawy/Gałki muszkatołowa|szczypta świeżo startej gałki muszkatołowej]] i trochę [[Zioła i przyprawy/Czosnek|czosnku]]. * Styl śródziemnomorski: doskonale komponuje się z [[Zioła i przyprawy/Oliwa z oliwek|oliwą z oliwek]], [[Zioła i przyprawy/Orzeszki piniowe|orzeszkami piniowymi]], odrobiną [[Zioła i przyprawy/Cytryna|soku z cytryny]], [[Zioła i przyprawy/Tymianek|tymiankiem]] lub [[Zioła i przyprawy/Rozmaryn|rozmarynem]]. * Po azjatycku: [[Zioła i przyprawy/Imbir|świeży imbir]], [[Zioła i przyprawy/Czosnek|czosnek]] i odrobina [[Zioła i przyprawy/Sos sojowy|sosu sojowego]] tworzą doskonałą harmonię. * Orientalnie: [[Zioła i przyprawy/Kumin|kumin]], [[Zioła i przyprawy/Kurkuma|kurkuma]], [[Zioła i przyprawy/Kolendra|mielona kolendra]], [[Zioła i przyprawy/Papryka|papryka]] i [[Zioła i przyprawy/Chili|chili]]. == [[Zioła i przyprawy/Słowniczek|Słowniczek]] == == [[Zioła i przyprawy/Bibliografia|Bibliografia]] == == Przypisy == {{Przypisy}} gqgn9pnkb37m3zkhyfcn4jhw0dsjgok Zioła i przyprawy/Rozmaryn 0 63508 543838 541861 2026-05-22T11:16:27Z EdytaT 2664 543838 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Rozmaryn}} [[Plik:Rosemary plant.jpg|thumb|Rozmaryn]] {{wikipedia|Rozmaryn}} {{wikisłownik|Rozmaryn}} {{Wikibooks|Ekoogrodnictwo/Rośliny użytkowe/Rozmaryn|rozmarynu}} {{Wikibooks|Napary/Rozmaryn|Rozmaryn}} == Rozmaryn == * Spośród różnych gatunków rozmarynu jako przyprawy używa się rozmarynu lekarskiego (''Salvia rosmarinus'' / ''Rosmarinus officinalis''). * Do potraw można dodać zarówno świeże jak i suszone liście i gałązki rozmarynu. * Należy do wytrzymałych ziół śródziemnomorskich, które pod działaniem wysokiej temperatury (gotowanie, smażenie, grillowanie) uwalniają swój aromat i nadają potrawom pikantny akcent. == Potrawy == * Potrawy śródziemnomorskie * Potrawy mięsne :* Baranina :* Jagnięcina :* Drób :* Królik * Zupy i sosy ziołowe * Smażone ziemniaki * Warzywa z grilla (cukinia, pomidory) * Marynaty do potraw pieczonych i grillowanych. == Kompozycje smakowe == * Rozmaryn jest składnikiem [[Zioła i przyprawy/Zioła prowansalskie|ziół prowansalskich]]. * Utarło się, że rozmaryn dodaje się do potraw w parze z [[Zioła i przyprawy/Tymianek|tymiankiem]] i [[Zioła i przyprawy/Lawenda|lawendą]]. == Zamienniki == * Alternatywą mogą być ... == Niepolecane == * Nie używaj ... == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> 84if8gtp5yff2c4rcbue202373ni9a1 543839 543838 2026-05-22T11:18:25Z EdytaT 2664 543839 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Rozmaryn}} [[Plik:Rosemary plant.jpg|thumb|Rozmaryn]] {{wikipedia|Rozmaryn}} {{wikisłownik|rozmaryn}} {{Wikibooks|Ekoogrodnictwo/Rośliny użytkowe/Rozmaryn|rozmarynu}} {{Wikibooks|Napary/Rozmaryn|Rozmaryn}} == Rozmaryn == * Spośród różnych gatunków rozmarynu jako przyprawy używa się rozmarynu lekarskiego (''Salvia rosmarinus'' / ''Rosmarinus officinalis''). * Do potraw można dodać zarówno świeże jak i suszone liście i gałązki rozmarynu. * Należy do wytrzymałych ziół śródziemnomorskich, które pod działaniem wysokiej temperatury (gotowanie, smażenie, grillowanie) uwalniają swój aromat i nadają potrawom pikantny akcent. == Potrawy == * Potrawy śródziemnomorskie * Potrawy mięsne :* Baranina :* Jagnięcina :* Drób :* Królik * Zupy i sosy ziołowe * Smażone ziemniaki * Warzywa z grilla (cukinia, pomidory) * Marynaty do potraw pieczonych i grillowanych. == Kompozycje smakowe == * Rozmaryn jest składnikiem [[Zioła i przyprawy/Zioła prowansalskie|ziół prowansalskich]]. * Utarło się, że rozmaryn dodaje się do potraw w parze z [[Zioła i przyprawy/Tymianek|tymiankiem]] i [[Zioła i przyprawy/Lawenda|lawendą]]. == Zamienniki == * Alternatywą mogą być ... == Niepolecane == * Nie używaj ... == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> io5ixk1duow2kjpi7pa04jpt0h6rhfk Wikibooks:Moduły/StronicowyParser/Rozdziały 4 63521 543823 543277 2026-05-22T05:44:48Z Persino 2851 /* {{Code|p.CzyJestJakikolwiekLinkArtykularnyTekstu}} */ 543823 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}} == Wstęp == Poniższe funkcje służą do analizowania stron spisu treści, aby przygotować je do analizowania przez moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}. === Rozdziały === * Dodatnie - dzielimy je na normalne i inne, a te na rozdziały centrowane znacznikowe i centrowane: ** normalne (równaniowe) - to są rozdziały napisane za pomocą znaku {{Code|{{=}}}}, które po prawej i lewej stronie znajduje się tych znaków minimalnie taka sama liczba, a pomiędzy nimi jest zwykły tekst, i nie tylko, są to rozdziały typu, np.: {{Code|<nowiki>== Tekst rozdziału ==</nowiki>}}, ** Inne (nierównaniowe): *** Rozdziały centrowane znacznikowe - są to rozdziały dodatnie napisane za pomocą znacznika: {{Tag|center}}, przykład: {{Tag|center|zawartość=Tekst rozdziału}}, *** Rozdziały centrowane szablonowe - są to rozdziały dodatnie napisane przy pomocy jednego szablonu z: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, przykład: {{Code|{{s|Center|Tekst rozdziału}}}}, * Ujemne - to są listy w liniach zaczynających się od znaku: {{Code|<nowiki>[;%*:#]</nowiki>}}, nie mogą być to znaczniki list, za tymi znakami znajduje się zwykły tekst, i nie tylko, są to rozdziały typu: {{Code|<nowiki>:** Tekst rozdziału</nowiki>}}, * Zerowe - to są rozdziały nie będące ani dodatnie, czy ujemne, ale nie wszystkie takie są zerowe, to zależy od pewnych kryteriów ustalanych przez funkcję: {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|b=tak}}}}, są to rozdziały typu: {{Code|Tekst rozdziału:}}. === Zmienne spotykane w opisywanych tutaj funkcjach === ==== Zmienne bazy ==== W poniższych funkcjach często spotykamy parametry: * {{Code|tekst}} {{Patrz|tekst}} (cały tekst), {{Code|linia}} {{Patrz|linia}} (linia w tekście) - tekst zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje, * {{Code|szablon}} {{Patrz|szablon}} - zakodowany tekst szablonu, jak w: {{LinkPatrz|tekst}}, tym szablonem może być też nie tylko normalnie szablon, ale może być to jakikolwiek instrukcja warunkowa wikikodu, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - pełna nazwa strony jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. ==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ==== * {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} - tabela parametrów szablonu, * {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu, * {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} - tabela jego modyfikatorów. ==== Baza danych wikikodu ==== Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu. ===== Zmienne bazy danych i do nich parametrów ===== * {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} - nazwa modułu (uchwyt) używana zamiast tabeli bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jeżeli taki istnieje w bazie wewnętrznym funkcji: {{Code|{{m|Szablonowe}}}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne, * {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy. ===== Inne elementy bazy ===== * {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} - tabela potrzebna do rozważań dla funkcji: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}, mówiąca coś o przekierowaniach, aby nie liczyć pewnych parametrów od począdku. ==== Funkcje bazy danych i do nich parametrów ==== * {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} - funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} - fukcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. ==== Inne funkcje ==== ===== Funkcje bazy ===== * {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} - służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych, * {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}}{{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} - funkcja służąca do kodowania i modyfikowania tekstu, zastępując w nim elementy ich kodami, tworząc tablicę kodów: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, którego elementu można rozkładać i umieszczać w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} - sprawdzająca, czy w kodzie są kody (czy tekst jest zakodowany), tzn. czy są kody o jakikolwiek {{Code|obiekt}} {{LinkPatrz|obiekt}} (typ obiektu kodu) i {{Code|kod}} {{LinkPatrz|kod}} (o liczbie całkowitej dodatniej). ===== Inne ===== * {{Code|{{sr|p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} - funkcja do analizowania linków zwykłych wewnętrznychi zewnętrznych oraz linków tzw. inteligentnych. ==== Elementy bazy ==== * {{Code|obiekt}} {{Patrz|obiekt}} - parametr, w postaci łańcucha znakowego typu elementu w kodzie, * {{Code|kod}} {{Patrz|kod}} - numer tego elementu o danym typie {{LinkPatrz|obiekt}}. Te numery mogą mieć przerwy, możliwie zaczynające się od jedynki, ale nigdy od zera, dla kodów tego samego typu, bo za pomocą innych funkcji można skasować to z jedynką lub elementy powodujące przerwy, te operacje są według {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}. ==== Inne zmienne ==== * {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} - te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki, * {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} - nazwa artykułu spisu treści. === Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, do usuwania elementów tabeli parametrów === Funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, często ją się definiuje: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local tab_analiza=szablonowe_modul.LiczbyParametroweInformacjiBazyKodowaniaWikikodu(); local __FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE=function(szablon,obiekt,kod,poziom_iteracji) local tab_obiekt=tab_analiza[obiekt]; if(not tab_obiekt)then return;end; for _,wartosc in pairs(tab_obiekt)do local element_wartosc=tablica_danych_parametrow_szablonu_strony[wartosc]; if(element_wartosc)then element_wartosc[kod]=nil; end; end; end; </syntaxhighlight> Ta funkcja usuwa elementy tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, które są reprezentowane przez element liczbowy {{Code|kod}} {{LinkPatrz|kod}}. === Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, do usuwania elementów tabeli bazy === A funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, można zdefiniować, usuwając z tablicy wielowymiarowej jeden element reprezentowany przez dwie zmienne: <syntaxhighlight lang="lua"> local __FUNKCJA_OPERACJE_USUWANIE_BAZOWE=function(szablon,obiekt,kod,poziom_iteracji) tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil; end; </syntaxhighlight> Przy tej funkcji należy uważać, aby nie wywołać błędu języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jakby element {{Code|obiekt}} {{LinkPatrz|obiekt}} nie istniał w tabeli. Ta funkcja usuwa elementy z tablicy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, które są reprezentowane przez zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}. == {{Code|p.NapisWprowadzeniaTekstu}} == Funkcja tworzy nagłówek rozdziału. Dla poziomu większego niż zero, ale mniejszego niż sieden zwraca nagłówek, np.: {{Code|{{=}}{{=}} Nagłówek tekstu {{=}}{{=}}}}, a dla większego niż sześć kreuje je jako, np.: {{Code|<nowiki><h6 class=\"mw-hnumber mw-hnumber-7">Nagłówek tekstu</h6></nowiki>}}. Gdy {{Code|0 < poziom <{{=}} 6}} tworzony jest taki nagłówek, że z lewej i prawej strony jest tyle minimalnie równa się, ile wskazuje poziom. A dla większego niż sześć tworzony jest nagłówek za pomocą znacznika {{Code|<nowiki><h6></nowiki>}} z klasą ogólną {{Code|mw-hnumber}} plus {{Code|mw-hnumber-<poziom>}}, gdzie {{Code|<poziom>}}, to numer danego poziomu. A więc funkcja pozwala tworzyć nagłówki o dowolnym poziomie większym niż zero, o ile {{lpg|Lua}} w {{lpr|Lua|Scribunto}} na to pozwoli, ze strony swoich ograniczeń. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.NapisWprowadzeniaTekstu(rozdzial,poziom)...end; </syntaxhighlight> Parametry funkcji: * {{Code|rozdzial}} - tekst wnętrza rozdziału, * {{Code|poziom}} - numer całkowity dodatni poziomu. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local rozdzial="Tekst rozdziału"; local napis_rozdzialu1=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstu(rozdzial,4); local napis_rozdzialu2=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstu(rozdzial,8); </syntaxhighlight> Wyniki użycia w zmiennych: <syntaxhighlight lang="lua"> local napis_rozdzialu1="\n====Tekst rozdziału====\n"; local napis_rozdzialu2="\n<h6 class=\"mw-hnumber mw-hnumber-8\">Tekst rozdziału</h6>\n"; </syntaxhighlight> == {{Code|p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego}} == Funkcja sprawdzająca, czy we podanym rozdziale, dodatnim lub ujemnym, o pewnym formacie, który musi istnieć, jako format szablonu {{s|HNumer}}, czy istnieje w nim element (obiekt), w postaci zakodowanej, o kodzie: {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}, który nie zawiera w sobie żadnej nowej linii, a jak nie zawiera, to czy ten element jest bezpośrednio elementem rozdziału napisanego wewnątrz tego szablonu. Defnicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego(tekst,zawartosc,obiekt,kod)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst zawartości pierwszego parametru wspomnianego szablonu, * {{Code|zawartość}} - zawartość elementu kodu, * {{Code|obiekt}} {{LinkPatrz|obiekt}} - jaki to jest obiekt, np. {{Code|ZNACZNIK}}, * {{Code|kod}} {{LinkPatrz|kod}} - kod danego obiektu. Funkcja wykorzystuje do swojego liczenia instrukcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{LinkPatrz|NormaWzoruKodowaniaTekstu}}, aby policzyć kod pewnego elementu mając zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}, aby wykorzystać ta metodę. Przykłady użycia, używając omawianego szablonu: <syntaxhighlight lang="mediawiki"> {{HNumer|1= === Oto jest tekst <span class="plainlinks">Zawartość znacznika</span> ===}} {{HNumer|1= * Oto jest tekst <span class="plainlinks">Zawartość znacznika</span>}} </syntaxhighlight> Zmienną {{Code|tekst}} w nich kolejno, które należy zakodować odpowiednio właściwą funkcją, aby otrzymać odpowiednio ich wersje zakodowane, tej zmiennej, aby móc operować tą funkcją, w przeciwnym wypadku tej funkcji nie ma sensu używać, bo otrzymamy nieprzewidywalne skutki: <syntaxhighlight lang="lua"> local tekst="=== Oto jest tekst <span class=\"plainlinks\">Zawartość znacznika</span> ==="; local tekst="* Oto jest tekst <span class=\"plainlinks\">Zawartość znacznika</span>"; </syntaxhighlight> A {{Code|zawartosc}} kolejno, która mieści się w wersji zakodowanej zmiennej {{Code|tekst}} (tutaj mamy wersje jego niezakodowaną): <syntaxhighlight lang="lua"> local zawartosc="Zawartość znacznika"; local zawartosc="Zawartość znacznika"; </syntaxhighlight> W obu przykładach szablon zwraca wartość: {{Code|true}} (bo w tej ostatniej zmiennej nie ma nowej linii), pod warunkiem, że znacznik: {{Code|<nowiki><span class="plainlinks">Zawartość znacznika</span></nowiki>}}, jest zakodowany w zmiennej {{Code|tekst}}, i jest częścią zmiennej tej wersji, co jest uwidocznione kodem, według dwóch kolejnych sprawdzeń wykluczających się: <syntaxhighlight lang="lua"> if(mw.ustring.match(tekst,"\n=+[^\n]*"..kod_norma_wzoru_obiektu.."[^\n]*=+[^%S\n]*\n"))then return true;end; if(mw.ustring.match(tekst,"\n[:#%*;]+[^\n]*"..kod_norma_wzoru_obiektu.."[^\n]*\n"))then return true;end; </syntaxhighlight> Widzimy, że ten znacznik musi leżeć bezpośrednio w zakodowanym tekście (to musi być zakodowane, bo w przeciwnym wypadku nie ma o czym mówić). == {{Code|p.NapisWprowadzeniaTekstuHNumer}} == Generuje napis wprowadzenia tekstu według szablonu {{s|HNumer}}, w którym parametrach szablonów jest równaniowy nagłówek. Szablon dla {{Code|0 < poziom <{{=}} 6}} poziomów, np.: {{Code|{{=}}{{=}} Nagłówek Tekstu {{=}}{{=}}}}, podaje poziom napisu wprowadzenia tekstu przy pomocy funkcji: {{Code|{{sr|#p.PodajNapisPoziomuWprowadzeniaTekstu}}}}, i go zamienia na znaczniki od: {{Code|<nowiki><h1></nowiki>}} do {{Code|<nowiki><h6></nowiki>}}, a dla {{Code|poziom > 6}}, tworzy inny nagłówek, dla {{Code|<nowiki>======== Nagłówek tekstu ========</nowiki>}}, tworzy: {{Code|<nowiki><h6 class="mw-hnumber mw-hnumber-8">Nagłówek tekstu</h6></nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.NapisWprowadzeniaTekstuHNumer(parametr)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - napisz wprowadzenia tekstu dodatni, czyli napisany za pomocą znaku {{Code|{{=}}}}, rozdziały napisane za pomocą list, tzn. napisane tak by zaczynały się od: {{Code|<nowiki>#*:;</nowiki>}}, odpadają, inne listy znacznikowe też. Przykłady użycia reprezentujące dwa rozłączne formy przedstawiające nagłówki, napisane tym samym sposobem: <syntaxhighlight lang="mediawiki"> {{HNumer|1= === Nagłówek tekstu ===}} {{HNumer|1= ======= Nagłówek tekstu =======}} </syntaxhighlight> Wtedy wywołania funkcyjne, a w nich parametr {{Code|parametr}} można zdefiniować dwóch w zmiennych, one są przetwarzane na odpowiednie nagłówki, ten parametr może być zakodowany, ale nie musi tak być, tak otrzymany nagłówek, równie dobrze możemy zakodować, a otrzymany tekst, aby przygotować do dalszej analizy przez inne funkcje, czy metody: <syntaxhighlight lang="lua"> ---- Nagłówki typowo dodatnie local tekst1="=== Nagłówek tekstu ==="; local tekst2="======= Nagłówek tekstu ======="; ---- Wywołania tworzące nagłówki local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local naglowek1=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstuHNumer(tekst1); local naglowek2=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstuHNumer(tekst2); </syntaxhighlight> Funkcja zamienia to kolejno je na standardowe nagłówki {{Strong|HTML}}, które reprezentują nagłówko o dowolnym poziomie, tutaj dla: {{Code|poziom > 6}}, też można tak zrobić poprzez osobne dwie klasy, tzn. klasę ogólną: {{Code|mw-hnumber}}, i szczególną: {{Code|mw-hnumber-<liczba>}}: <syntaxhighlight lang="lua"> local naglowek1="<h3>Nagłówek tekstu</h3>"; local naglowek2="<h6 class=\"mw-hnumber mw-hnumber-8\">Nagłówek tekstu</h6>"; </syntaxhighlight> == {{Code|p.PodajNapisPoziomuWprowadzeniaTekstu}} == Szablon na podstawie dowolnego nagłówka dodatniego równaniowego, tzn. o poziomie o dobrowolnej liczbie, tzn. jego poziom może być: {{Code|poziom > {{=}} 1}}, a nie {{Code|1 <{{=}} poziom <{{=}} 6 }}, równa się, czyli np.: {{Code|<nowiki>====== Tekst nagłówka ======</nowiki>}}, takie poziomy są jedynie interpretowalne przez {{Strong|MediaWiki}}, a ta funkcja również uwzględnia poziomy: {{Code|poziom > 6}}, czyli o liczbie {{Code|{{=}}}} z prawej i lewej strony nagłówka o większej liczbie niż sześć. Metoda podaje jego zawartość (nagłówek jest trimowany funkcją: {{Code|mw.text.trim}}) i poziom, jako dwa kolejne parametry zwracane, tzn. {{Code|naglowek, poziom}}, przez nią. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PodajNapisPoziomuWprowadzeniaTekstu(linia)...end; </syntaxhighlight> Parametry funkcji: * {{Code|linia}} {{LinkPatrz|linia}} - parametr przedstawiający linię rozważanego tekstu, ona może być zakodowana, Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="====== Tekst nagłówka ======"; local naglowek,poziom=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(tekst); </syntaxhighlight> Wynikiem działania tego przykładu: <syntaxhighlight lang="lua"> local naglowek="Tekst nagłówka"; local poziom=6; </syntaxhighlight> Zawartością zmiennej wchodzącej do naszej funkcji musi być sciśle od poczatku do końca nagłówek o wspomnianym formacie. == {{Code|p.PodajTekstHNumerNapisuWprowadzeniaTekstu}} == Szablon podaje zawartość nagłówka rozdziału od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, i jego poziom, czyli liczba stojąca przy {{Code|h}}, tzn, jak mamy {{Code|<nowiki><h5></nowiki>}}, to tą liczbą jest {{Code|5}}. W innych przypadkach szablon zwraca zamiast liczby wartość {{Code|nil}}, np. gdy tag znacznika końcący nagłówek nie zgadza się z tym rozpoczynającym, lub gdy liczba przy {{Code|h}} jest większa niż {{Code|6}}, czyli: {{Code|<nowiki><h7></nowiki>}}, albo gdy np. mamy: {{Code|<nowiki><h67></nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PodajTekstHNumerNapisuWprowadzeniaTekstu(linia)...end; </syntaxhighlight> Parametry funkcji: * {{Code|linia}} - linia rozważanego tekstu, w tekście musi mieścić się ten znacznik, choćby jeden, on nie musi się rozpoczynać na samym początku, a kończyć się na samym końcu, wnętrze jego najlepiej by było zakodowane, najlepiej, by był w nim to znacznik tylko jeden w samej linii zawarty bezpośrednio tam, aby on cały był jednocześnie tą linią. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="<h5 class=\"plainlinks\">Tekst nagłówka</h5>"; local zawartosc,poziom=stronicowyparser_rozdzialy_modul.PodajTekstHNumerNapisuWprowadzeniaTekstu(tekst); </syntaxhighlight> Zwrócone wyniki: <syntaxhighlight lang="lua"> local zawartosc="Tekst nagłówka"; local poziom=5; </syntaxhighlight> == {{Code|p.CzyJestNapisWprowadzeniaTekstu}} == Funkcja podaje, czy w podanym tekście, jest jakikolwiek nagłówek dodatni, tzn. czy napisany za pomocą {{Code|{{=}}}}, tzn. np. {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}}, w zakodowanym tekście. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestNapisWprowadzeniaTekstu(zawartosc)...end; </syntaxhighlight> Parametry funkcji: * {{Code|zawartosc}} - tekst, w którym zawarty jest jakikolwiek nagłówek, ono musi być zakodowane. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="Oto jest tekst\n== Tekst nagłówka == \n Oto jest dalszy tekst\n"; local napis_pierwszy_w_tekscie=stronicowyparser_rozdzialy_modul.CzyJestNapisWprowadzeniaTekstu(tekst); </syntaxhighlight> W powyższym tekście funkcja zwraca wartość równą pierwszemu wyszukiwanemu nagłówkowi, czyli: <syntaxhighlight lang="lua"> local napis_pierwszy_w_tekscie="== Tekst nagłówka == "; </syntaxhighlight> Na podstawie tego wiadomo, że jakikolwiek taki nagłówek w tekście istnieje, gdyby nie było go tam wcale, to funkcja zwracałaby wartość: {{Code|nil}}. == {{Code|p.CzyJestListaNapisuWprowadzeniaTekstu}} == Funkcja sprawdza, czy w tekście występuje nagłówek ujemny, czyli napis wprowadzenia tekstu, w postaci listy zaczynającej się od nowej linii: {{Code|<nowiki>[;%*:#]</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc)...end; </syntaxhighlight> Parametry funkcji: * {{Code|zawartosc}} - tekst, w który ma znajdować napis wprowadzenia tekstu w postaci listy. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local zawartosc="Oto jest tekst\n:* Tekst nagłóka ujemnego\n"; local lista=stronicowyparser_rozdzialy_modul.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc); </syntaxhighlight> Funkcja zwraca wartość niepustą łańcuchową powiadamiającą, że taka lista istnieje, czyli w tym przypadku: {{Code|<nowiki>\n:*</nowiki>}}. == {{Code|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}} == Funkcja sprawdzająca, czy w tekście jest jakolwiek nagłówek podany w postaci równaniowej lub nagłówka od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}. Definicja skrótowa funkcji <syntaxhighlight lang="lua"> function p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz)...end; </syntaxhighlight> Parametry funkcji: * {{Code|wiersz}} - czy w tekście jest wiersz z takim opisywanym nagłókiem. Funkcja używa do sprawdzenia: {{Code|{{sr|#p.CzyJestNapisWprowadzeniaTekstu|b=tak}}}} (czy to jest rozdział dodatni) i {{Code|{{sr|#p.PodajTekstHNumerNapisuWprowadzeniaTekstu|b=tak}}}} (czy ujemny). Przykłady funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst1="====== Tekst nagłówka ======"; local tekst2="<h5 class=\"plainlinks\">Tekst nagłówka</h5>"; local czy_jest_naglowek1,jaki_naglowek1=stronicowyparser_rozdzialy_modul.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(tekst1); local czy_jest_naglowek2,jaki_naglowek2=stronicowyparser_rozdzialy_modul.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(tekst2); </syntaxhighlight> Funkcja zwraca wyniki: <syntaxhighlight lang="lua"> local czy_jest_naglowek1,jaki_naglowek1=true,true; local czy_jest_naglowek2,jaki_naglowek2=true,false; </syntaxhighlight> == {{Code|p.WierszHNumer}} == Funkcja w nagłówkach od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, usuwa w nich nowe linie, zamieniając je po kolei na spację, i dodaje z lewej (przed znacznikiem) i prawej (po) strony tego nagłówka znak nowej linii: {{Code|\n}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.WierszHNumer(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - parametr z tymi nagłówkami. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="Oto jest tekst<h2>Tekst nagłówka\nDalej Tekst nagłówka</h2> Tekst rozdziału\nDalszy tekst rozdziału <h3>Tekst nagłówka\nDalszy nagłówek</h3>"; local wynik=stronicowyparser_rozdzialy_modul.WierszHNumer(tekst); </syntaxhighlight> Zwrócone wyniki: <syntaxhighlight lang="lua"> local wynik="Oto jest tekst\n<h2>Tekst nagłówka Dalej Tekst nagłówka</h2>\n Tekst rozdziału\nDalszy tekst rozdziału \n<h3>Tekst nagłówka Dalszy nagłówek</h3>\n"; </syntaxhighlight> == {{Code|p.CzyJestJakikolwiekLinkArtykularnyTekstu}} == Funkcja sprawdza na podstawie artykułu spisu treści, czy są w nim linki artykularne, które generują szablony, w postaci: {{s|SpisTreści}}, {{s|Sekcja referencyjna}} (lub jego skrót: {{s|Sr}}), {{s|Link wewnętrzny}}, {{s|LinkOgólne}} (lub jego skrót: {{s|Lo}}), czyli linki według tabeli: <syntaxhighlight lang="lua"> p.linki_szablony_elementy_spisu_rzeczy={ ["SpisTreści"]=true, ["Sekcja referencyjna"]=true, ["Sr"]=true, ["Link wewnętrzny"]=true, ["LinkOgólne"]=true, ["Lo"]=true, }; </syntaxhighlight> Tablica opisana w: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}}. Albo inne generujące części spisu treści: {{s|SpisPozycja}} i {{s|SpisZw}}, na podstawie, które są elementami z: <syntaxhighlight lang="lua"> p.inne_linki_szablony_elementy_spisu_rzeczy={ ["SpisPozycja"]={true,numer_link="tyt",}, ["SpisZw"]={false,numer=1,link=2,}, }; </syntaxhighlight> Tablica opisana w: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}}. Bądź szablony linków inteligentnych. Ewentualnie ich skróty, artykułów sprawdzane przy pomocy funkcji: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}}, te szablony mieszczą się w kategorii: {{Code|{{lk2|Szablony linków inteligentnych}}}}, i ich skróty w: {{Code|{{lk2|Przekierowania skrótów do szablonów linków inteligentnych}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestJakikolwiekLinkArtykularnyTekstu(tekst,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} {{LinkPatrz|tekst}} - tekst do sprawdzenia, czy zawiera zakodowane linki artykularne, w postaci szablonów, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Funkcja wykorzystuje: * {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu}}, * {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=Szablonowe}}}} - jednocześnie można powiedzieć, że on sprawdza, czy to jest link inteligentny. Przykład użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="Oto jest tekst {{lpg|Artykuł|Nazwa artykułu}}.\n Oto jest dalszy tekst. {{lu|Artykuł/Podstrona}}."; local tablica_analizy_obiektow_strony_dany_modul={}; local tablica_danych_parametrow_szablonu_strony={}; tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local czy_tak_wynik=stronicowyparser_rozdzialy_modul.CzyJestJakikolwiekLinkArtykularnyTekstu(tekst,"",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); </syntaxhighlight> Powyższe wywołanie zwróci wynik {{Code|true}}. W niej tekst był kodowany przy pomocy funkcji: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, a póżniej był liczony wynik z dyskutowanej funkcji. == {{Code|p.CzyJestInnySpecjalnyTekstowyObiekt}} == Funkcja sprawdza, czy jest obiekt zakodowany o kodzie: {{Code|INNEPRE}}, {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|MATH}}, {{Code|GALERIA}} i {{Code|MAPAOBRAZU}}, a co oznaczają te kody to można zobaczyć w: {{sr|Szablonowe|dokumentacji modułu Szablonowe}}, wtedy funkcja zwraca wynik {{Code|true}}, w przeciwnym wypadku {{Code|false}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestInnySpecjalnyTekstowyObiekt(tekst,tablica_analizy_obiektow_strony_dany_modul)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} {{LinkPatrz|tekst}} - tekst do policzenia, zawierające elementy z omawianymi kodami, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. Funkcja używa iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="\n Oto jest tekst z INNEPRE.\n<pre>Oto jest tekst z PRE</pre>\nOto jest dalszy tekst ze wzorem MATH: <MATH>c^2=a^2+b^2</MATH>."; local tablica_analizy_obiektow_strony_dany_modul={}; tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local czy_tak_wynik=stronicowyparser_rozdzialy_modul.CzyJestInnySpecjalnyTekstowyObiekt(tekst,tablica_analizy_obiektow_strony_dany_modul); </syntaxhighlight> Funkcja zwraca wynik {{Code|true}}. Aby policzyć ten wynik należy wykorzystać funkcję kodującą: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}. == {{Code|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}} == Mając napis rozdziału wraz z numeracją, fukcja liczy właściwy napis i numerację w osobnych po kolei parametrach. Jest to funkcja skomplikowana analizująca, czy numeracja jest poprawna, czy nie, jeśli numeracja jest poprawna, to ona zwraca rozdział bez numeracji i samą numerację, a jeśli nie, to cały rozdział i numerację, będącą ciągiem pustym. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja)...end; </syntaxhighlight> Parametry funkcji: * {{Code|rozdzial_z_numeracja}} - rozdzial z numeracją lub bez. Zwracane wartości: * {{Code|rozdzial}} - rozdzial bez numeracji, * {{Code|numetracja}} - numeracja. Przykłady użycia: ; Pierwszy{{Dk}} {{Code|z numeracją}}{{Dk}} <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local rozdzial_z_numeracja="5.1.2.3. Napis Rozdziału"; local rozdzial,numeracja=stronicowyparser_rozdzialy_modul.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja); </syntaxhighlight> Zwracane wyniki: <syntaxhighlight lang="lua"> local rozdzial="Napis Rozdziału"; local numeracja="5.1.2.3."; </syntaxhighlight> ; Drugi{{Dk}} {{Code|bez numeracji}}{{Dk}} <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local rozdzial_z_numeracja="Napis Rozdziału"; local rozdzial,numeracja=stronicowyparser_rozdzialy_modul.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja); </syntaxhighlight> Zwracane wyniki: <syntaxhighlight lang="lua"> local rozdzial="Napis Rozdziału"; local numeracja=""; </syntaxhighlight> == {{Code|p.__FUNKCJA_KOMPLETOWANIA}} == Funkcja kompletowania, sprawdza, czy nazwa szablonu jest jedna z wielu, tzn.: {{s|Kompletność}}, {{s|Kompletność krótka}}, {{s|Kompletność junior}} i {{s|Książka}}, wtedy zwraca wartość: {{Code|true}}, w przeciwnym wypadku: {{Code|nil}}, a tabela dzięki to wszystko się dzieje, przedstawia się w formie: <syntaxhighlight lang="lua"> p.szablony_kompletowania_stron_woluminu={ ["Kompletność"]=true, ["Kompletność krótka"]=true, ["Kompletność junior"]=true, ["Książka"]=true, }; </syntaxhighlight> Ta tabela mieści się w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}, wraz z innymi tabelami. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.__FUNKCJA_KOMPLETOWANIA(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, * {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu}}, * {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|kod}} {{LinkPatrz|kod}} - kod, dla jego typu {{Code|SZABLON}} {{LinkPatrz|obiekt}}, potrzebny do poprzedniej tabeli. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local nazwa_szablonu="Kompletność krótka"; local czy_wynik=stronicowyparser_rozdzialy_modul.__FUNKCJA_KOMPLETOWANIA(nil,nazwa_szablonu,nil,nil,nil); </syntaxhighlight> Funkcja w tym przypadku zwróci wynik: {{Code|true}}, bo ta podana nazwa strony należy do naszej tabeli. == {{Code|p.UruchamianieAnalizatoraSpisuRzeczyStrony}} == Funkcja zwraca wynik, czy uruchomić wydzielonie generowania spisu treści z całego jego pierwotnego. Szablon zwraca zawsze wartość {{Code|true}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UruchamianieAnalizatoraSpisuRzeczyStrony()...end; </syntaxhighlight> Funkcja nie przyjmuje żadnego parametru. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local czy_tak=stronicowyparser_rozdzialy_modul.UruchamianieAnalizatoraSpisuRzeczyStrony(); </syntaxhighlight> Funkcja zwraca, jak zawsze wynik, wspomniany w nagłówku. == {{Code|p.CzyZerowyNapisWprowadzeniaTekstu}} == Funkcja sprawdza, czy napis wprowadzenia tekstu, który nie jest dodatni, tzn. np.: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}} (czyli określony wzorem: {{Code|<nowiki>=+[^\n]*[^=]+[^\n]*=+[^%S\n]*</nowiki>}}), ani np.: linia opisywana formułą: {{Code|<nowiki>\n[:#%*;]+[^\n]*</nowiki>}}, zatem to jest przepis na definicję na tą funkcję, ale nie do końca, bo w tej funkcji pierwszy parametr nie może opisywać tego, ani tego. Funkcja zwraca dwa parametry, tzn. otrzymany rozdział i wartość: {{Code|true/false}}. Wartość {{Code|true}} mówi o rozdziale zerowym, a przeciwna wartość, że taki on nie jest. Także funkcja może zwracać wartość {{Code|nil}}, to determiniuje, że to nie jest rozdział wcale zerowy, czyli rozdział świadczący, że to jest zerowy, nie musi być wcale zerowy. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyZerowyNapisWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametr funkcji: * {{Code|linia}} {{LinkPatrz|linia}} - rozważana zakodowana linia, która może być rozdziałem zerowym, ale ona nie może być dodatnia, ani ujemna, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Do liczenia rozdziału spisu treści (rzeczy) funkcja wykorzystuje z modułu {{Code|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}}}: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}} - funkcja sprawdzająca {{Code|true/nil}}, czy w tekście znajduje się rozdział, który jest o nazwie typu: {{Code|Spis treści}} ({{Code|Spis rzeczy}}) - niezależnie jakimi literami napisany, ile tam jest odstępów, a do kompletowania (rozwijania) rozdziałów, służy do tego z {{Code|{{ld2|StronicowyParser/SpisTreści}}}}: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}. Przykłady użycia (w przykładach przyjeliśmy najprostrzy wygląd tych rozdziałów, tzn. ich nie trzeba rozwijać i kompletować dalej, czyli wtedy ta funkcja jest ona w tym jedynie przypadku tożsamościowa): <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local linia="Spis treści"; local tablica_analizy_obiektow_strony_dany_modul={}; ---- Ta część kodu w tym przypadku jest opcjonalna, ze względu na niekodowalną zmienną: linia; local szablonowe_modul=require("Module:Szablonowe"); tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); ---- Koniec tej części kodu; local tablica_danych_parametrow_szablonu_strony={}; local rozdzial,czy_tak=stronicowyparser_rozdzialy_modul.CzyZerowyNapisWprowadzeniaTekstu(linia,"",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); </syntaxhighlight> Funckja w tym wypadku zwraca wynik: <syntaxhighlight lang="lua"> local rozdzial,czy_tak="Spis treści",true; </syntaxhighlight> Weźmy inny przykład: <syntaxhighlight lang="lua"> ---- Przykład pierwszy; local linia="'''Nagłówek'''"; local rozdzial,czy_tak="'''Nagłówek'''",true; ---- Przykład drugi; local linia="'''Nagłówek'''."; local rozdzial,czy_tak="'''Nagłówek'''.",false; </syntaxhighlight> == {{Code|p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu}} == Funkcja sprawdza, czy strona jest z przedrostkiem listy: {{Code|:}}, a dla tego, czy linia jest w cudzysłowach pojedyńczych podwójnych, a jeżeli to nie jest prawda, to funkcja zwraca wynik {{Code|false}}, normalnie przy braku parametrów linkowych funkcja zwraca wynik {{Code|true}}, w przeciwnym wypadku on rewiduje, czy w lini są artykuły aktualnej ksiązki, wtedy ona zwraca wynik {{Code|false}}, a jeżeli to jest fałszywa, to zwracany jest wynik {{Code|true}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLinikamiNieWoluminu(przedrotek_listy,linia,z_parametrami_linkowymi,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end; </syntaxhighlight> Parametry funkcji: * {{Code|przedrotek_listy}} - przedrostek listy z linią {{Code|linia}}, * {{Code||linia}} {{LinkPatrz|linia}} - linia bez przedrostka, * {{Code|z_parametrami_linkowymi}} - wartość {{Code|false}}, aby nie sprawdzał właśności artykularnych artykułów na linku, wtedy funkcja na samym końcu przy sprawdzedniu tego parametru,a jeżeli ta wartość, to wtedy otrzymany wynik z funkcji to {{Code|true}}, przeciwnym funkcja idzie dalej, * {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}} - parametry nazw, * {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci}}, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych}}. Funckja wykorzustuje: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|NormaWzoruKodowaniaTekstu}}, {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu}}, i {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} - jak w: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local linia="''[[Książka/Artykuł|Artykuł]]''"; local tablica_analizy_obiektow_strony_dany_modul={}; linia=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); local przedrotek_listy=":"; local tablica_danych_parametrow_szablonu_strony={}; local tab_nazwa_spisow_przekierowaniowych={}; ---- Tutaj funkcja zwróci wartość: true; local czy_tak=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia,false,"","","Książka","","",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); ---- Tutaj funkcja zwróci wartość: false; local czy_tak=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia,true,"","","Książka","","",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); </syntaxhighlight> == {{Code|p.HnNumerWprowadzeniaTekstu}} == Funkcja zwraca numer poziomu nagłówka od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}. Jeśli poziom jest mniejszy niż 6, wtedy wynik zwracany tej funkcji jest liczbą stojącą przy {{Code|h}}. A gdy mamy {{Code|<nowiki><h6></nowiki>}}, jeżeli ten znacznik nie ma klasy ('''class''') atrybutu: {{Code|<nowiki>mw-hnumber-<liczba></nowiki>}}, to zwracane jest: 6, w przeciwnym wypadku daje to wynik, którym jest: {{Code|<liczba>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.HnNumerWprowadzeniaTekstu(nazwa,atrybuty)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa}} - nazwa tagu, * {{Code|atrybuty}} - tabela atrybutów, których z jedną z elementów może być opcja: '''class'''. Funkcja wykorzystuje: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu}}}}, z modułu: {{Code|{{ld2|StronicowyParser/obiekty}}}}. Przykłady użycia: ; Pierwszy{{Dk}} {{Code|poziom<6}}{{Dk}} <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local nazwa="h5"; local atrybuty={}; local poziom=stronicowyparser_rozdzialy_modul.HnNumerWprowadzeniaTekstu(nazwa,atrybuty); </syntaxhighlight> Funkcja zwróci wynik: {{Code|5}}. ; Poziom{{Dk}} {{Code|poziom>{{=}}6}}{{Dk}} <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local nazwa="h6"; local atrybuty={};atrybuty["class"]="mw-hnumber-9"; local poziom=stronicowyparser_rozdzialy_modul.HnNumerWprowadzeniaTekstu(nazwa,atrybuty); </syntaxhighlight> Funkcja daje wynik: {{Code|9}}. == {{Code|p.NumeracjaOrazTekstWprowadzeniaTekstu}} == Funkcja zwraca numerację i rozdział całego rozdziału. Jest to funkcja bardzo prosta ponieważ nie analizuje numeracji, czy jest poprawnie podana, czy nie. Zawartość rozdziału musi się składać z numeracji, składający się z numerków oddzielonych kropkami - tutaj też mogą być dwie kropki koło siebie, albo numeracja może składać się z samych kropek, chociaż to jest niepoprawne, ale tak może być, na końcu numeracji może być też krokpa, po nm znajduje się właściwy rozdział zawartości tej wielkiej zawartości (rozdziału). A gdy numeracja nie istnieje, to zamiast niego zwracaną wartością jest wartość pusta. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.NumeracjaOrazTekstWprowadzeniaTekstu(zawartosc)...end; </syntaxhighlight> Parametry funkcji: * {{Code|zawartosc}} - zawartość rozdziału. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local zawartosc="5.1.6. Rozdział"; local numeracja,rozdzial=stronicowyparser_rozdzialy_modul.NumeracjaOrazTekstWprowadzeniaTekstu(zawartosc); </syntaxhighlight> Zwrócone wyniki: <syntaxhighlight lang="lua"> local numeracja,rozdzial="5.1.6.","Rozdział"; </syntaxhighlight> == {{Code|p.ParserPodawaniaNapisuWprowadzeniaTekstu}} == Funkcja sprawdza, czy podany napis, nie dodatni, opisanym nie znakami {{Code|{{=}}}}. Ona bada linie list tzn. zaczynające się od linii znakami: {{Code|<nowiki>[;%*:#]</nowiki>}} (to są rozdziały ujemne), także rozważa też rozdziały zerowe (to nie są nagłówki typu {{Code|<nowiki>== Nagłówek==</nowiki>}}, ani ujemne). Funkcja zalicza do rozdziałów znaczniki utworzone ze znaczników od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, też rozważa parametr w nim: {{Code|<nowiki>mw-hnumber-<liczba></nowiki>}}, wtedy poziom nie musi być od {{Code|1-6}}, ale też i: {{Code|> 6}}. Funkcja sprawdza, czy zaliczyć rozdziały centrowane (znacznikowe: znacznik {{Tag|center}}, i centrowane: {{s|ce}}, {{s|centruj}} i {{s|center}}) do rozdziałów, ona też potrafi odliczyć je od wykrywanych rozdziałów. Nie wyszystkie rozdziały ujemne (rozdziały listy) przez ten twór są przez niego uważane jako rozdziały, które trzeba zaliczyć, podobnie zerowe i centrowane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) ... return function(linia,tak_ce_spis_tresci) ... ---- ciało funkcji zwracanej. Tutaj są sprawdzane, czy podane linie zaliczyć do rozdziałów. Zmienna: tak_ce_spis_tresci, to jest zmienna mówiąca, czy uwzględniać rozdziały centrowane. return linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;---- Zwracane parametry tej funkcji; end; end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni}}, * {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, * {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki}}, * {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci}}, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych}}. Parametry funkcji zwracanej: * {{Code|linia}} {{LinkPatrz|linia}} - linia zakodowana do rozważenia bez rozdziałów dodatnich, aby sprawdzić, czy to jest rozdział, * {{Code|tak_ce_spis_tresci}} - czy ma uwzględniać rozdziały centrowane znacznikowe, czy szablonowe, podane pozyżej. Parametry zwracane przez funkcję, zwracaną przez tą funkcję, opisuje daną linie, czy ją uważać za rozdział, któremu w innej funkcji niż ta można przyporządkować jej zawartość: * {{Code|linia_temp}} - rozważana linia, * {{Code|nazwa_rozdzialu}} - nazwa rozdziału w opisanym linii rozdział, zwykle jest to ciało danego nagłówka, częśc tekstu po znakach listy następujące po sobie od początku linii, * {{Code|poziom_rozdziału}} - poziom danego rozdziału podanego, jest ściśle zależna od tego, czy to jest rozdział centrowany, wtedy rozdział: {{Code|2}}, nagłówek, to liczba przy: {{Code|h}}, dla znaczników nagłówka, lub przy: {{Code|mw-hnumber-<number>}} dla: {{Code|<nowiki><h6></nowiki>}}, * {{Code|poczatek_rozdzialu}} - początek rozdziału, początek rozdziału to jest przedrostek listy, czyli znaki: {{Code|<nowiki>[;%*:#]</nowiki>}}, * {{Code|numeracja_rozdzialu}} - numeracja rozdziału, to są numerki oddzielone od siebie kropką, na końcu tegomoże być ona, ale nie musi, * {{Code|czy_rozdzial_centrowany}} - czy rozdział centrowany, jeśli centrowany to: {{Code|true}}, w przeciwny wypadku: {{Code|nil}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tablica_analizy_obiektow_strony_dany_modul={}; local linia="<h6>Nagłówek</h6>"; linia=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); local tab_nazwa_spisow_przekierowaniowych={}; local nazwa_przestrzeni=""; local nazwa_przestrzeni_ksiazki=""; local nazwa_ksiazki="Książki"; local nazwa_spisu_tresci=""; local pelna_nazwa_spisu_tresci_szablonowa=""; local parser=stronicowyparser_rozdzialy_modul.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) end; local linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true); </syntaxhighlight> Funkcja zwraca wyniki: <syntaxhighlight lang="lua"> local linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany="'\"`UNIQ--ZNACZNIK-1-QINU`\"'","Nagłówek",6,nil,"",nil; </syntaxhighlight> == {{Code|p.TekstPoNapisieWprowadzeniaTekstuStrony}} == Funkcja liczy tekst pomiędzy dwoma {{Code|id}} rozdziałami o danych identyfikatorach na podstawie wydobytego ze strony zawartości. Ten tekst jest uzyskany z funkcji: {{Code|mw.title.makeTitle}}, na podstawie nazwy podanej jako pierwszy argument ramki tablicy transportu, funkcja też potrafić sprawdzić, czy uchwyt pliku jest prawidłowy lub czy plik istnieje, a także czy zawartość strony istnieje, bo np. chcelibyśmy policzyć zawartość strony w przestrzeni {{Np|Special|link=tak}} lub {{Np|Media|link=tak}}, wtedy wiadomo, że otrzymamy, że zawartość strony w tych przestrzeniach nazw nie istnieje, wyjątiem są inne istniejące strony, którego zawartość na pewno istnieje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstPoNapisieWprowadzeniaTekstuStrony(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji rablicy transportu. Parametry ramki funkcji tablicy transprotu dziecka rodzica: * {{Code|1}} - nazwa strony do analizy (rozwijany funkcją: {{Code|frame:preprocess}}), którego chcemy sprawdzić zawartość strony, jeśli istnieje, pomiędzy dwoma {{Code|id}} rozdziałami - funkcja rozwija nazwę strony wwzględem funkcji: {{Code|frame:preprocess}}, * {{Code|2}} - ten rozdział pierwszy, za którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany od poczatku, do pewnego identyfikatora, * {{Code|3}} - ten rozdział drugi, przed którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany do końca, od pewnego identyfikatora. Funkcja ramki uruchamia: {{Code|{{sr|#p.TekstWprowadzeniaTekstu|b=tak}}}}, do wyszukiwania tekstu pomiędzy dwoma rozdziałami, jako typową funkcję biblioteczną. Przykłady użycia w postaci ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> {{#invoke:StronicowyParser/Rozdziały|TekstPoNapisieWprowadzeniaTekstuStrony|Pomoc:Spis treści|Pomoc Wikibooks|Wstęp}}; </syntaxhighlight> Wyniki zwrócone przez ramkę uruchomioną, w rozdzicu, jako dziecko: <syntaxhighlight lang="mediawiki"> '''{{lr|Czym jest Wikibooks|Wikibooks}}''' jest zbiorem darmowych książek pisanych przez internautów. Poniższe strony pomocy zawierają porady i informacje o naszym projekcie. Projekt ten – będący siostrzanym projektem Wikipedii – powstał 10 lipca 2003 r. Polska wersja została uruchomiona '''24 stycznia 2004 roku''' i w tej chwili posiada już {{Forma wyrazu podręcznik po liczbie|'''{{LICZBAPODRĘCZNIKÓW}}'''}}, a w nich {{Forma wyrazu artykuł po liczbie|'''{{NUMBEROFARTICLES}}'''}}. </syntaxhighlight> == {{Code|p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu}} == Funkcja usuwa dolne myślniki i odstępy na końcach podanego tekstu oraz zamienia kolejne je wewnątrz tekstu na jeden dolny myślnik. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przerobienia. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst=" ____ ___ Tekst_________________ _______nagłówka ___ ___ ___ strony ___ ___"; tekst=stronicowyparser_rozdzialy_modul.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(tekst); </syntaxhighlight> Uzyskano wyniki: <syntaxhighlight lang="lua"> tekst="Tekst_nagłówka_strony"; </syntaxhighlight> == {{Code|p.ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony}} == Funkcja zwraca nagłówek (sekcję) rozwinięty o danym identyfikatorze na podstawie wydobytego ze strony zawartości. Ten tekst jest uzyskany z funkcji: {{Code|mw.title.makeTitle}}, na podstawie nazwy podanej jako pierwszy argument ramki tablicy transportu, funkcja też potrafić sprawdzić, czy uchwyt pliku jest prawidłowy lub czy plik istnieje, a także czy zawartość strony istnieje, bo np. chcelibyśmy policzyć zawartość strony w przestrzeni {{Np|Special|link=tak}} lub {{Np|Media|link=tak}}, wtedy wiadomo, że otrzymamy, że zawartość strony w tych przestrzeniach nazw nie istnieje, wyjątiem są inne istniejące strony, którego zawartość na pewno istnieje. Funkcja też uwzględnia, że dany rozdział w tekście może się powtarzać, i dlatego trzeba to robić za pomocą numerków przy {{Code|id}}, aby wyszukać ten ściśle określony . Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu funkcji. Parametry ramki funkcji tablicy transportu: * {{Code|1}} - nazwa strony - funkcja rozwija nazwę strony, * {{Code|2}} - identyfikator rozdzialu - domyślna wartość pusta. Przykłady użycia: <syntaxhighlight lang="lua"> {{#invoke:StronicowyParser/Rozdziały|ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony|Wikibooks:Jak_przeglądać_Wikibooks|Opera}} </syntaxhighlight> Uzyskane wyniki w postaci nierozwiniętego wikikodu: <syntaxhighlight lang="mediawiki"> <templatestyles src="Szablon:Link_wewnętrzny/styles.css"><span class="niew link">[[:w:Opera (program)|Opera]]</span> </syntaxhighlight> == {{Code|p.NumerSekcjiStrony}} == Funkcja liczy numer sekcji rozdziału, który posiada dany identyfikator na podstawie wydobytego ze strony zawartości. Ten tekst jest uzyskany z funkcji: {{Code|mw.title.makeTitle}}, na podstawie nazwy podanej jako pierwszy argument ramki tablicy transportu, funkcja też potrafić sprawdzić, czy uchwyt pliku jest prawidłowy lub czy plik istnieje, a także czy zawartość strony istnieje, bo np. chcelibyśmy policzyć zawartość strony w przestrzeni {{Np|Special|link=tak}} lub {{Np|Media|link=tak}}, wtedy wiadomo, że otrzymamy, że zawartość strony w tych przestrzeniach nazw nie istnieje, wyjątiem są inne istniejące strony, którego zawartość na pewno istnieje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.NumerSekcjiStrony(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji rablicy transportu. Parametry ramki funkcji tablicy transprotu dziecka rodzica: * {{Code|1}} - nazwa strony do analizy (rozwijany funkcją: {{Code|frame:preprocess}}), którego chcemy sprawdzić zawartość strony, jeśli istnieje, pomiędzy dwoma id rozdziałami - funkcja rozwija nazwę strony wwzględem funkcji: frame:preprocess, * {{Code|2}} - ten rozdział pierwszy, za którym jest wyszukiwany tekst - domyślna wartość pusta, Przykład użycia w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="lua"> {{#invoke:StronicowyParser/Rozdziały|NumerSekcjiStrony|Wikibooks:Jak_przeglądać_Wikibooks|Opera}} </syntaxhighlight> Otrzymane wyniki, to przedstawia numer sekcji podanego rozdziału jest: {{Code|9}}. == {{Code|p.TekstWprowadzeniaTekstu}} == Funkcja liczy tekst pomiędzy dwoma rozdziami o danych identyfikatorach {{Code|id}} na podstawie podanego tekstu do rozważań, który może posiadać rozdziały z tymi unikalnymi wartościami. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstWprowadzeniaTekstu(tekst,id_rozdzialu1,id_rozdzialu2)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do analizy, do uzyskania pomiędzy dwoma identyfikatorami tekstu, * {{Code|id_rozdzialu1}} - ten rozdział pierwszy, za którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany od poczatku, do pewnego identyfikatora, * {{Code|id_rozdzialu2}} - ten rozdział drugi, przed którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany do końca, od pewnego identyfikatora. Przykład użycia: <syntaxhighlight lang="lua"> local strona="Pomoc:Spis treści"; local title=mw.title.makeTitle('',strona); local tekst=title:getContent(); local id_rozdzialu1="Pomoc Wikibooks"; local id_rozdzialu2="Wstęp"; local stronicowyparser_rozdzialu_modul=require("Module:StronicowyParser/Rozdziały"); tekst=stronicowyparser_rozdzialu_modul.TekstWprowadzeniaTekstu(tekst,id_rozdzialu1,id_rozdzialu2); </syntaxhighlight> Uzykane wyniki w tekście pomiędzy dwoma identyfikatorami: <syntaxhighlight lang="lua"> local tekst="'''{{lr|Czym jest Wikibooks|Wikibooks}}''' jest zbiorem darmowych książek pisanych przez internautów. Poniższe strony pomocy zawierają porady i informacje o naszym projekcie. Projekt ten – będący siostrzanym projektem Wikipedii – powstał 10 lipca 2003 r. Polska wersja została uruchomiona '''24 stycznia 2004 roku''' i w tej chwili posiada już {{Forma wyrazu podręcznik po liczbie|'''{{LICZBAPODRĘCZNIKÓW}}'''}}, a w nich {{Forma wyrazu artykuł po liczbie|'''{{NUMBEROFARTICLES}}'''}}."; </syntaxhighlight> == {{Code|p.ObiektySzablonoweFormatowaniaTekstu}} == Funkcja, która zastępuje szablony ich ściśle okreslonymi parametrami, ale nie normalnie wszystkimi, według danych, które zwykle są tabelami z modulu: {{Code|{{ld2|StronicowyParser/obiekty}}}}, ale nie zawsze, bo taką tabelę można skonstrułować i włanorecznie podać do tej procedury. Przykładową tą tabelą, którą można znaleźć pod tym modułem, o którym wspomnialiśmy, jest: <syntaxhighlight lang="lua"> p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu={ ["Kolumny"]=2,---- Tutaj parametry, więcej niż jeden, oddzielamy średnikami, ale tutaj mamy jedynie jeden parametr, więc średniki nie są tutaj potrzebne; }; </syntaxhighlight> Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod)...end; </syntaxhighlight> Parametry funkcji: * {{Code|szablon}} - szablon, który chcemy zastąpić odpowiednimi, nie wszystkimi, jego parametrami, * {{Code|szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu}} - tabela informująca, które parametry szablonu należy zastąpić parametrami, tutaj parametry są oddzielone średnikami, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|kod}} {{LinkPatrz|kod}} - kod, dla obiektu {{Code|SZABLON}} {{LinkPatrz|obiekt}}, będący jednocześnie częścią kodów bazy, czyli: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablon="{{Kolumny|2|Oto jest tekst tego szablonu}}"; local tablica_analizy_obiektow_strony_dany_modul={}; local szablonowe_modul=require("Module:Szablonowe"); szablon=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul); local szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu=mw.loadData("Module:StronicowyParser/obiekty").szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu; local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały") local tablica_danych_parametrow_szablonu_strony={}; local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul); local tekst=""; for szablon,obiekt,kod in iterator do if(obiekt=="SZABLON")then tekst=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu,"",tablica_danych_parametrow_szablonu_strony,kod)..tekst; end; end; </syntaxhighlight> Uzyskane wyniki: {{Code|Oto jest tekst tego szablonu}}. == {{Code|p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu}} == Szablon zamieniający wywołania szablonów w tekście na ich odpowiednie wartości, które przedstawiają się za pomocą dodatków o ogólnym wzorze: {{Code|(<name>)}}. Przykładowa tabela z tymi dodatkami jest w: {{Code|{{ld2|StronicowyParser/obiekty}}}}, a w nim tabela: <syntaxhighlight lang="lua"> p.szablony_z_dodatkiem_obiektowym={ ["ISBN"]="ISBN $(1)"; }; </syntaxhighlight> Pierwszym elementem (kluczem) jest nazwa szablonu, a wartością tego elementu jest przepis, jak zastąpić ten szablon nim, a właściwie w nim dodatek, robiąc jeszcze dodatkowe operacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu(szablon,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod)...end; </syntaxhighlight> Parametry funkcji: * {{Code|szablon}} {{LinkPatrz|szablon}} - zakodowany szablon, z możliwym dodatkiem, w nazwie szablonu, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|kod}} {{LinkPatrz|kod}} - kod dla obiektu {{Code|SZABLON}} {{LinkPatrz|obiekt}}. Funkcja na podstawie użytych elementów z: {{Code|{{ld2|Techniczne}}}}, wykonuje operacje na parametrach, używając procedur dla nazw argumentów: {{Code|{{sr|#p["PrzekształćWzórDoCzystegoTekstu"]|p=Techniczne}}}}, i jego wartościach: {{Code|{{sr|#p["TekstBezOdwołańDoParametrówWeWzorze"]|p=Techniczne}}}}, zamieniając elementy typu: {{Code|(<name>)}}, gdzie {{Code|name}}, to nazwa argumentu, na ich wartości. Przykłady użycia: <syntaxhighlight lang="lua"> local szablon="{{ISBN|83-8678-825-9}}"; local tablica_analizy_obiektow_strony_dany_modul={}; local szablonowe_modul=require("Module:Szablonowe"); szablon=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały") local tablica_danych_parametrow_szablonu_strony={}; local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul); local tekst=""; for szablon,obiekt,kod in iterator do if(obiekt=="SZABLON")then tekst=stronicowyparser_rozdzialy_modul.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu(szablon,"",tablica_danych_parametrow_szablonu_strony,kod)..tekst; end; end; </syntaxhighlight> Wynikiem działania tego przykładu, ukryty pod przykładem pod zmienną {{Code|tekst}}, przedstawiamy na podstawie tekstu, którym jest wywołanie szablonu: {{Code|{{s|ISBN|83-8678-825-9}}}}, którym jest ukryty pod zmienną {{Code|szablon}}, w wyniku działania tej funkcji, zamieniany jest on na: {{Code|ISBN 83-8678-825-9}}. == {{Code|p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii}} == Funkcja zamienia znaczniki nowej linii: {{Code|<nowiki><br /></nowiki>}} i kreski poziomej {{Code|<nowiki><hr /></nowiki>}}, a także szablony, ich odpowiedniki wersji znacznikowych, tzn. kolejno: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, na jedną wartość: {{Code|\n\n }} (który charakteryzuje trzy linie, ostatnia linia ma początku ma spację, aby ona przypadkiem nie była traktowana, jako np. rozdział), ustaloną przez nią. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} {{LinkPatrz|tekst}} - zakodowany tekst, na którym operujemy, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} - jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, * {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} - jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="Tekst przed{{Br}}, tekst po <br />, a po nim znacznik: <hr />, i szablon {{Hr}}."; local tablica_analizy_obiektow_strony_dany_modul={}; tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local tablica_danych_parametrow_szablonu_strony={}; tekst=stronicowyparser_rozdzialy_modul.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst,"",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); </syntaxhighlight> Zwrócone wyniki: <syntaxhighlight lang="lua"> local tekst="Tekst przed\n\n , tekst po \n\n , a po nim znacznik: \n\n , i szablon \n\n ."; </syntaxhighlight> == {{Code|p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia}} == Funkcja łączy linie w jedną linię, pomiędzy liniami, które nie udało się połączyć z nimi, a jakie to są linie, otóż te, które reprezentują rozdziały, takie jak: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}}, i linie reprezentowane przez listy, które zaczynają się na: {{Code|<nowiki>[;%*:#]</nowiki>}}. Też nie zostaną połączone z innymi, które zawierają szablony: {{Code|{{s|SpisPozycja}}}}, {{Code|{{s|SpisZw}}}} i {{Code|{{s|SpisTreści}}}}, te szablony sa umieszczone w tabeli, na stronie: {{Code|{{ld2|StronicowyParser/obiekty}}}}, tzn.: <syntaxhighlight lang="lua"> p.szablony_w_nie_w_tej_samej_linii={ ["SpisPozycja"]=true, ["SpisZw"]=true, ["SpisTreści"]=true, }; </syntaxhighlight> Funkcja w wewnątrz linii każdy znacznik: {{Code|<nowiki><br /></nowiki>}} lub {{Code|<nowiki><hr /></nowiki>}} albo {{Code|{{s|Br}}}} lub {{Code|{{s|Hr}}}}, zamienia na {{Code|\n\n }} (przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii|b=tak}}}}), co potem odpowiada trzem liniom, linia pośrodku jest pusta (lub biała), a jeżeli taki znacznik szablonowy, czy znacznikowy, jest na końcu linii, czyli po prostu, wtedy mamy, jeśli: {{Code|<nowiki>^(.*\n)[^%S\n]*\n[^%S\n]*$</nowiki>}}, co odpowiada dwom oddzielnym liniom, na jakie dzielona jest ona, w końcowym tekście. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(tekst,nazwa_modulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_obiektow_strony_dany_modul_uzyskany,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} {{LinkPatrz|tekst}} - zakodowany tekst, na którym operujemy, * {{Code|nazwa_modulu}} - jak w: {{LinkPatrz|nazwa_modulu}}, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_obiektow_strony_dany_modul_uzyskany}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} - jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, * {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} - jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="== Tekst rozdziału ==\nTekst Rozdziału{{Br}}\nTekst rozdziału\nTekst rozdziału\n*# Tekst rodziału\n Tekst rozdziału\n"; local tablica_analizy_obiektow_strony_dany_modul={}; local szablonowe_modul=require("Module:Szablonowe"); tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local tablica_danych_parametrow_szablonu_strony={}; tekst=stronicowyparser_rozdzialy_modul.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(tekst,nil,"",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nil,nil); </syntaxhighlight> Zwracane wyniki: <syntaxhighlight lang="lua"> local tekst="== Tekst rozdziału ==\nTekst Rozdziału\nTekst rozdziału Tekst rozdziału\n*# Tekst rodziału\n'\"`UNIQ--INNEPRE-1-QINU`\"'"; </syntaxhighlight> == {{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 zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza 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 {{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 nie potrzebne. Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalszymo wartościami zwracanymi są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek rozdziału. 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_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; end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst}}, 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, * {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni}}, * {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, * {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki}}, * {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci}}, * {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe, * {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - 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, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych}}, * {{Code|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adreesu szablonu, określa i zawraca jego zawartość, * {{Code|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału), * {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu (może zwracać wartość: {{Code|nil}}) przed samym możliwym kodowaniem, funkcja ta bezpośrednio jest wywoływana w tej funkcji, a pośrednio uruchamiana w: {{Code|{{sr|#p.PobierzSpecjalniePrzygotowanyPreWikikodStrony|p=StronicowyParser/Tekst}}}}, z modułu: {{Code|{{ld2|StronicowyParser/Tekst}}}}. Parametry funkcji zwracanej: * Funkcja nie przyjmuje żadnych parametrów. Jednoczesne parametry zwracane przez funkcję zwracaną: * {{Code|naglowek_tab_aktualnego_rozdzialu}} - tojest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią, * {{Code|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału), * {{Code|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału, * {{Code|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału * {{Code|numeracja_aktualnego_rozdzialu}} - 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}}, * {{Code|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym. 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> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> clqaenkwwbxyehmd5bxj1jhgblb0w9q 543824 543823 2026-05-22T05:46:40Z Persino 2851 /* {{Code|p.__FUNKCJA_KOMPLETOWANIA}} */ 543824 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}} == Wstęp == Poniższe funkcje służą do analizowania stron spisu treści, aby przygotować je do analizowania przez moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}. === Rozdziały === * Dodatnie - dzielimy je na normalne i inne, a te na rozdziały centrowane znacznikowe i centrowane: ** normalne (równaniowe) - to są rozdziały napisane za pomocą znaku {{Code|{{=}}}}, które po prawej i lewej stronie znajduje się tych znaków minimalnie taka sama liczba, a pomiędzy nimi jest zwykły tekst, i nie tylko, są to rozdziały typu, np.: {{Code|<nowiki>== Tekst rozdziału ==</nowiki>}}, ** Inne (nierównaniowe): *** Rozdziały centrowane znacznikowe - są to rozdziały dodatnie napisane za pomocą znacznika: {{Tag|center}}, przykład: {{Tag|center|zawartość=Tekst rozdziału}}, *** Rozdziały centrowane szablonowe - są to rozdziały dodatnie napisane przy pomocy jednego szablonu z: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, przykład: {{Code|{{s|Center|Tekst rozdziału}}}}, * Ujemne - to są listy w liniach zaczynających się od znaku: {{Code|<nowiki>[;%*:#]</nowiki>}}, nie mogą być to znaczniki list, za tymi znakami znajduje się zwykły tekst, i nie tylko, są to rozdziały typu: {{Code|<nowiki>:** Tekst rozdziału</nowiki>}}, * Zerowe - to są rozdziały nie będące ani dodatnie, czy ujemne, ale nie wszystkie takie są zerowe, to zależy od pewnych kryteriów ustalanych przez funkcję: {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|b=tak}}}}, są to rozdziały typu: {{Code|Tekst rozdziału:}}. === Zmienne spotykane w opisywanych tutaj funkcjach === ==== Zmienne bazy ==== W poniższych funkcjach często spotykamy parametry: * {{Code|tekst}} {{Patrz|tekst}} (cały tekst), {{Code|linia}} {{Patrz|linia}} (linia w tekście) - tekst zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje, * {{Code|szablon}} {{Patrz|szablon}} - zakodowany tekst szablonu, jak w: {{LinkPatrz|tekst}}, tym szablonem może być też nie tylko normalnie szablon, ale może być to jakikolwiek instrukcja warunkowa wikikodu, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - pełna nazwa strony jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. ==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ==== * {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} - tabela parametrów szablonu, * {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu, * {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} - tabela jego modyfikatorów. ==== Baza danych wikikodu ==== Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu. ===== Zmienne bazy danych i do nich parametrów ===== * {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} - nazwa modułu (uchwyt) używana zamiast tabeli bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jeżeli taki istnieje w bazie wewnętrznym funkcji: {{Code|{{m|Szablonowe}}}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne, * {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy. ===== Inne elementy bazy ===== * {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} - tabela potrzebna do rozważań dla funkcji: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}, mówiąca coś o przekierowaniach, aby nie liczyć pewnych parametrów od począdku. ==== Funkcje bazy danych i do nich parametrów ==== * {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} - funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} - fukcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. ==== Inne funkcje ==== ===== Funkcje bazy ===== * {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} - służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych, * {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}}{{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} - funkcja służąca do kodowania i modyfikowania tekstu, zastępując w nim elementy ich kodami, tworząc tablicę kodów: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, którego elementu można rozkładać i umieszczać w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} - sprawdzająca, czy w kodzie są kody (czy tekst jest zakodowany), tzn. czy są kody o jakikolwiek {{Code|obiekt}} {{LinkPatrz|obiekt}} (typ obiektu kodu) i {{Code|kod}} {{LinkPatrz|kod}} (o liczbie całkowitej dodatniej). ===== Inne ===== * {{Code|{{sr|p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} - funkcja do analizowania linków zwykłych wewnętrznychi zewnętrznych oraz linków tzw. inteligentnych. ==== Elementy bazy ==== * {{Code|obiekt}} {{Patrz|obiekt}} - parametr, w postaci łańcucha znakowego typu elementu w kodzie, * {{Code|kod}} {{Patrz|kod}} - numer tego elementu o danym typie {{LinkPatrz|obiekt}}. Te numery mogą mieć przerwy, możliwie zaczynające się od jedynki, ale nigdy od zera, dla kodów tego samego typu, bo za pomocą innych funkcji można skasować to z jedynką lub elementy powodujące przerwy, te operacje są według {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}. ==== Inne zmienne ==== * {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} - te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki, * {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} - nazwa artykułu spisu treści. === Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, do usuwania elementów tabeli parametrów === Funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, często ją się definiuje: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local tab_analiza=szablonowe_modul.LiczbyParametroweInformacjiBazyKodowaniaWikikodu(); local __FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE=function(szablon,obiekt,kod,poziom_iteracji) local tab_obiekt=tab_analiza[obiekt]; if(not tab_obiekt)then return;end; for _,wartosc in pairs(tab_obiekt)do local element_wartosc=tablica_danych_parametrow_szablonu_strony[wartosc]; if(element_wartosc)then element_wartosc[kod]=nil; end; end; end; </syntaxhighlight> Ta funkcja usuwa elementy tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, które są reprezentowane przez element liczbowy {{Code|kod}} {{LinkPatrz|kod}}. === Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, do usuwania elementów tabeli bazy === A funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, można zdefiniować, usuwając z tablicy wielowymiarowej jeden element reprezentowany przez dwie zmienne: <syntaxhighlight lang="lua"> local __FUNKCJA_OPERACJE_USUWANIE_BAZOWE=function(szablon,obiekt,kod,poziom_iteracji) tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil; end; </syntaxhighlight> Przy tej funkcji należy uważać, aby nie wywołać błędu języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jakby element {{Code|obiekt}} {{LinkPatrz|obiekt}} nie istniał w tabeli. Ta funkcja usuwa elementy z tablicy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, które są reprezentowane przez zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}. == {{Code|p.NapisWprowadzeniaTekstu}} == Funkcja tworzy nagłówek rozdziału. Dla poziomu większego niż zero, ale mniejszego niż sieden zwraca nagłówek, np.: {{Code|{{=}}{{=}} Nagłówek tekstu {{=}}{{=}}}}, a dla większego niż sześć kreuje je jako, np.: {{Code|<nowiki><h6 class=\"mw-hnumber mw-hnumber-7">Nagłówek tekstu</h6></nowiki>}}. Gdy {{Code|0 < poziom <{{=}} 6}} tworzony jest taki nagłówek, że z lewej i prawej strony jest tyle minimalnie równa się, ile wskazuje poziom. A dla większego niż sześć tworzony jest nagłówek za pomocą znacznika {{Code|<nowiki><h6></nowiki>}} z klasą ogólną {{Code|mw-hnumber}} plus {{Code|mw-hnumber-<poziom>}}, gdzie {{Code|<poziom>}}, to numer danego poziomu. A więc funkcja pozwala tworzyć nagłówki o dowolnym poziomie większym niż zero, o ile {{lpg|Lua}} w {{lpr|Lua|Scribunto}} na to pozwoli, ze strony swoich ograniczeń. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.NapisWprowadzeniaTekstu(rozdzial,poziom)...end; </syntaxhighlight> Parametry funkcji: * {{Code|rozdzial}} - tekst wnętrza rozdziału, * {{Code|poziom}} - numer całkowity dodatni poziomu. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local rozdzial="Tekst rozdziału"; local napis_rozdzialu1=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstu(rozdzial,4); local napis_rozdzialu2=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstu(rozdzial,8); </syntaxhighlight> Wyniki użycia w zmiennych: <syntaxhighlight lang="lua"> local napis_rozdzialu1="\n====Tekst rozdziału====\n"; local napis_rozdzialu2="\n<h6 class=\"mw-hnumber mw-hnumber-8\">Tekst rozdziału</h6>\n"; </syntaxhighlight> == {{Code|p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego}} == Funkcja sprawdzająca, czy we podanym rozdziale, dodatnim lub ujemnym, o pewnym formacie, który musi istnieć, jako format szablonu {{s|HNumer}}, czy istnieje w nim element (obiekt), w postaci zakodowanej, o kodzie: {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}, który nie zawiera w sobie żadnej nowej linii, a jak nie zawiera, to czy ten element jest bezpośrednio elementem rozdziału napisanego wewnątrz tego szablonu. Defnicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego(tekst,zawartosc,obiekt,kod)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst zawartości pierwszego parametru wspomnianego szablonu, * {{Code|zawartość}} - zawartość elementu kodu, * {{Code|obiekt}} {{LinkPatrz|obiekt}} - jaki to jest obiekt, np. {{Code|ZNACZNIK}}, * {{Code|kod}} {{LinkPatrz|kod}} - kod danego obiektu. Funkcja wykorzystuje do swojego liczenia instrukcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{LinkPatrz|NormaWzoruKodowaniaTekstu}}, aby policzyć kod pewnego elementu mając zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}, aby wykorzystać ta metodę. Przykłady użycia, używając omawianego szablonu: <syntaxhighlight lang="mediawiki"> {{HNumer|1= === Oto jest tekst <span class="plainlinks">Zawartość znacznika</span> ===}} {{HNumer|1= * Oto jest tekst <span class="plainlinks">Zawartość znacznika</span>}} </syntaxhighlight> Zmienną {{Code|tekst}} w nich kolejno, które należy zakodować odpowiednio właściwą funkcją, aby otrzymać odpowiednio ich wersje zakodowane, tej zmiennej, aby móc operować tą funkcją, w przeciwnym wypadku tej funkcji nie ma sensu używać, bo otrzymamy nieprzewidywalne skutki: <syntaxhighlight lang="lua"> local tekst="=== Oto jest tekst <span class=\"plainlinks\">Zawartość znacznika</span> ==="; local tekst="* Oto jest tekst <span class=\"plainlinks\">Zawartość znacznika</span>"; </syntaxhighlight> A {{Code|zawartosc}} kolejno, która mieści się w wersji zakodowanej zmiennej {{Code|tekst}} (tutaj mamy wersje jego niezakodowaną): <syntaxhighlight lang="lua"> local zawartosc="Zawartość znacznika"; local zawartosc="Zawartość znacznika"; </syntaxhighlight> W obu przykładach szablon zwraca wartość: {{Code|true}} (bo w tej ostatniej zmiennej nie ma nowej linii), pod warunkiem, że znacznik: {{Code|<nowiki><span class="plainlinks">Zawartość znacznika</span></nowiki>}}, jest zakodowany w zmiennej {{Code|tekst}}, i jest częścią zmiennej tej wersji, co jest uwidocznione kodem, według dwóch kolejnych sprawdzeń wykluczających się: <syntaxhighlight lang="lua"> if(mw.ustring.match(tekst,"\n=+[^\n]*"..kod_norma_wzoru_obiektu.."[^\n]*=+[^%S\n]*\n"))then return true;end; if(mw.ustring.match(tekst,"\n[:#%*;]+[^\n]*"..kod_norma_wzoru_obiektu.."[^\n]*\n"))then return true;end; </syntaxhighlight> Widzimy, że ten znacznik musi leżeć bezpośrednio w zakodowanym tekście (to musi być zakodowane, bo w przeciwnym wypadku nie ma o czym mówić). == {{Code|p.NapisWprowadzeniaTekstuHNumer}} == Generuje napis wprowadzenia tekstu według szablonu {{s|HNumer}}, w którym parametrach szablonów jest równaniowy nagłówek. Szablon dla {{Code|0 < poziom <{{=}} 6}} poziomów, np.: {{Code|{{=}}{{=}} Nagłówek Tekstu {{=}}{{=}}}}, podaje poziom napisu wprowadzenia tekstu przy pomocy funkcji: {{Code|{{sr|#p.PodajNapisPoziomuWprowadzeniaTekstu}}}}, i go zamienia na znaczniki od: {{Code|<nowiki><h1></nowiki>}} do {{Code|<nowiki><h6></nowiki>}}, a dla {{Code|poziom > 6}}, tworzy inny nagłówek, dla {{Code|<nowiki>======== Nagłówek tekstu ========</nowiki>}}, tworzy: {{Code|<nowiki><h6 class="mw-hnumber mw-hnumber-8">Nagłówek tekstu</h6></nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.NapisWprowadzeniaTekstuHNumer(parametr)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - napisz wprowadzenia tekstu dodatni, czyli napisany za pomocą znaku {{Code|{{=}}}}, rozdziały napisane za pomocą list, tzn. napisane tak by zaczynały się od: {{Code|<nowiki>#*:;</nowiki>}}, odpadają, inne listy znacznikowe też. Przykłady użycia reprezentujące dwa rozłączne formy przedstawiające nagłówki, napisane tym samym sposobem: <syntaxhighlight lang="mediawiki"> {{HNumer|1= === Nagłówek tekstu ===}} {{HNumer|1= ======= Nagłówek tekstu =======}} </syntaxhighlight> Wtedy wywołania funkcyjne, a w nich parametr {{Code|parametr}} można zdefiniować dwóch w zmiennych, one są przetwarzane na odpowiednie nagłówki, ten parametr może być zakodowany, ale nie musi tak być, tak otrzymany nagłówek, równie dobrze możemy zakodować, a otrzymany tekst, aby przygotować do dalszej analizy przez inne funkcje, czy metody: <syntaxhighlight lang="lua"> ---- Nagłówki typowo dodatnie local tekst1="=== Nagłówek tekstu ==="; local tekst2="======= Nagłówek tekstu ======="; ---- Wywołania tworzące nagłówki local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local naglowek1=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstuHNumer(tekst1); local naglowek2=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstuHNumer(tekst2); </syntaxhighlight> Funkcja zamienia to kolejno je na standardowe nagłówki {{Strong|HTML}}, które reprezentują nagłówko o dowolnym poziomie, tutaj dla: {{Code|poziom > 6}}, też można tak zrobić poprzez osobne dwie klasy, tzn. klasę ogólną: {{Code|mw-hnumber}}, i szczególną: {{Code|mw-hnumber-<liczba>}}: <syntaxhighlight lang="lua"> local naglowek1="<h3>Nagłówek tekstu</h3>"; local naglowek2="<h6 class=\"mw-hnumber mw-hnumber-8\">Nagłówek tekstu</h6>"; </syntaxhighlight> == {{Code|p.PodajNapisPoziomuWprowadzeniaTekstu}} == Szablon na podstawie dowolnego nagłówka dodatniego równaniowego, tzn. o poziomie o dobrowolnej liczbie, tzn. jego poziom może być: {{Code|poziom > {{=}} 1}}, a nie {{Code|1 <{{=}} poziom <{{=}} 6 }}, równa się, czyli np.: {{Code|<nowiki>====== Tekst nagłówka ======</nowiki>}}, takie poziomy są jedynie interpretowalne przez {{Strong|MediaWiki}}, a ta funkcja również uwzględnia poziomy: {{Code|poziom > 6}}, czyli o liczbie {{Code|{{=}}}} z prawej i lewej strony nagłówka o większej liczbie niż sześć. Metoda podaje jego zawartość (nagłówek jest trimowany funkcją: {{Code|mw.text.trim}}) i poziom, jako dwa kolejne parametry zwracane, tzn. {{Code|naglowek, poziom}}, przez nią. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PodajNapisPoziomuWprowadzeniaTekstu(linia)...end; </syntaxhighlight> Parametry funkcji: * {{Code|linia}} {{LinkPatrz|linia}} - parametr przedstawiający linię rozważanego tekstu, ona może być zakodowana, Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="====== Tekst nagłówka ======"; local naglowek,poziom=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(tekst); </syntaxhighlight> Wynikiem działania tego przykładu: <syntaxhighlight lang="lua"> local naglowek="Tekst nagłówka"; local poziom=6; </syntaxhighlight> Zawartością zmiennej wchodzącej do naszej funkcji musi być sciśle od poczatku do końca nagłówek o wspomnianym formacie. == {{Code|p.PodajTekstHNumerNapisuWprowadzeniaTekstu}} == Szablon podaje zawartość nagłówka rozdziału od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, i jego poziom, czyli liczba stojąca przy {{Code|h}}, tzn, jak mamy {{Code|<nowiki><h5></nowiki>}}, to tą liczbą jest {{Code|5}}. W innych przypadkach szablon zwraca zamiast liczby wartość {{Code|nil}}, np. gdy tag znacznika końcący nagłówek nie zgadza się z tym rozpoczynającym, lub gdy liczba przy {{Code|h}} jest większa niż {{Code|6}}, czyli: {{Code|<nowiki><h7></nowiki>}}, albo gdy np. mamy: {{Code|<nowiki><h67></nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PodajTekstHNumerNapisuWprowadzeniaTekstu(linia)...end; </syntaxhighlight> Parametry funkcji: * {{Code|linia}} - linia rozważanego tekstu, w tekście musi mieścić się ten znacznik, choćby jeden, on nie musi się rozpoczynać na samym początku, a kończyć się na samym końcu, wnętrze jego najlepiej by było zakodowane, najlepiej, by był w nim to znacznik tylko jeden w samej linii zawarty bezpośrednio tam, aby on cały był jednocześnie tą linią. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="<h5 class=\"plainlinks\">Tekst nagłówka</h5>"; local zawartosc,poziom=stronicowyparser_rozdzialy_modul.PodajTekstHNumerNapisuWprowadzeniaTekstu(tekst); </syntaxhighlight> Zwrócone wyniki: <syntaxhighlight lang="lua"> local zawartosc="Tekst nagłówka"; local poziom=5; </syntaxhighlight> == {{Code|p.CzyJestNapisWprowadzeniaTekstu}} == Funkcja podaje, czy w podanym tekście, jest jakikolwiek nagłówek dodatni, tzn. czy napisany za pomocą {{Code|{{=}}}}, tzn. np. {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}}, w zakodowanym tekście. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestNapisWprowadzeniaTekstu(zawartosc)...end; </syntaxhighlight> Parametry funkcji: * {{Code|zawartosc}} - tekst, w którym zawarty jest jakikolwiek nagłówek, ono musi być zakodowane. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="Oto jest tekst\n== Tekst nagłówka == \n Oto jest dalszy tekst\n"; local napis_pierwszy_w_tekscie=stronicowyparser_rozdzialy_modul.CzyJestNapisWprowadzeniaTekstu(tekst); </syntaxhighlight> W powyższym tekście funkcja zwraca wartość równą pierwszemu wyszukiwanemu nagłówkowi, czyli: <syntaxhighlight lang="lua"> local napis_pierwszy_w_tekscie="== Tekst nagłówka == "; </syntaxhighlight> Na podstawie tego wiadomo, że jakikolwiek taki nagłówek w tekście istnieje, gdyby nie było go tam wcale, to funkcja zwracałaby wartość: {{Code|nil}}. == {{Code|p.CzyJestListaNapisuWprowadzeniaTekstu}} == Funkcja sprawdza, czy w tekście występuje nagłówek ujemny, czyli napis wprowadzenia tekstu, w postaci listy zaczynającej się od nowej linii: {{Code|<nowiki>[;%*:#]</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc)...end; </syntaxhighlight> Parametry funkcji: * {{Code|zawartosc}} - tekst, w który ma znajdować napis wprowadzenia tekstu w postaci listy. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local zawartosc="Oto jest tekst\n:* Tekst nagłóka ujemnego\n"; local lista=stronicowyparser_rozdzialy_modul.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc); </syntaxhighlight> Funkcja zwraca wartość niepustą łańcuchową powiadamiającą, że taka lista istnieje, czyli w tym przypadku: {{Code|<nowiki>\n:*</nowiki>}}. == {{Code|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}} == Funkcja sprawdzająca, czy w tekście jest jakolwiek nagłówek podany w postaci równaniowej lub nagłówka od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}. Definicja skrótowa funkcji <syntaxhighlight lang="lua"> function p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz)...end; </syntaxhighlight> Parametry funkcji: * {{Code|wiersz}} - czy w tekście jest wiersz z takim opisywanym nagłókiem. Funkcja używa do sprawdzenia: {{Code|{{sr|#p.CzyJestNapisWprowadzeniaTekstu|b=tak}}}} (czy to jest rozdział dodatni) i {{Code|{{sr|#p.PodajTekstHNumerNapisuWprowadzeniaTekstu|b=tak}}}} (czy ujemny). Przykłady funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst1="====== Tekst nagłówka ======"; local tekst2="<h5 class=\"plainlinks\">Tekst nagłówka</h5>"; local czy_jest_naglowek1,jaki_naglowek1=stronicowyparser_rozdzialy_modul.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(tekst1); local czy_jest_naglowek2,jaki_naglowek2=stronicowyparser_rozdzialy_modul.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(tekst2); </syntaxhighlight> Funkcja zwraca wyniki: <syntaxhighlight lang="lua"> local czy_jest_naglowek1,jaki_naglowek1=true,true; local czy_jest_naglowek2,jaki_naglowek2=true,false; </syntaxhighlight> == {{Code|p.WierszHNumer}} == Funkcja w nagłówkach od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, usuwa w nich nowe linie, zamieniając je po kolei na spację, i dodaje z lewej (przed znacznikiem) i prawej (po) strony tego nagłówka znak nowej linii: {{Code|\n}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.WierszHNumer(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - parametr z tymi nagłówkami. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="Oto jest tekst<h2>Tekst nagłówka\nDalej Tekst nagłówka</h2> Tekst rozdziału\nDalszy tekst rozdziału <h3>Tekst nagłówka\nDalszy nagłówek</h3>"; local wynik=stronicowyparser_rozdzialy_modul.WierszHNumer(tekst); </syntaxhighlight> Zwrócone wyniki: <syntaxhighlight lang="lua"> local wynik="Oto jest tekst\n<h2>Tekst nagłówka Dalej Tekst nagłówka</h2>\n Tekst rozdziału\nDalszy tekst rozdziału \n<h3>Tekst nagłówka Dalszy nagłówek</h3>\n"; </syntaxhighlight> == {{Code|p.CzyJestJakikolwiekLinkArtykularnyTekstu}} == Funkcja sprawdza na podstawie artykułu spisu treści, czy są w nim linki artykularne, które generują szablony, w postaci: {{s|SpisTreści}}, {{s|Sekcja referencyjna}} (lub jego skrót: {{s|Sr}}), {{s|Link wewnętrzny}}, {{s|LinkOgólne}} (lub jego skrót: {{s|Lo}}), czyli linki według tabeli: <syntaxhighlight lang="lua"> p.linki_szablony_elementy_spisu_rzeczy={ ["SpisTreści"]=true, ["Sekcja referencyjna"]=true, ["Sr"]=true, ["Link wewnętrzny"]=true, ["LinkOgólne"]=true, ["Lo"]=true, }; </syntaxhighlight> Tablica opisana w: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}}. Albo inne generujące części spisu treści: {{s|SpisPozycja}} i {{s|SpisZw}}, na podstawie, które są elementami z: <syntaxhighlight lang="lua"> p.inne_linki_szablony_elementy_spisu_rzeczy={ ["SpisPozycja"]={true,numer_link="tyt",}, ["SpisZw"]={false,numer=1,link=2,}, }; </syntaxhighlight> Tablica opisana w: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}}. Bądź szablony linków inteligentnych. Ewentualnie ich skróty, artykułów sprawdzane przy pomocy funkcji: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}}, te szablony mieszczą się w kategorii: {{Code|{{lk2|Szablony linków inteligentnych}}}}, i ich skróty w: {{Code|{{lk2|Przekierowania skrótów do szablonów linków inteligentnych}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestJakikolwiekLinkArtykularnyTekstu(tekst,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} {{LinkPatrz|tekst}} - tekst do sprawdzenia, czy zawiera zakodowane linki artykularne, w postaci szablonów, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Funkcja wykorzystuje: * {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu}}, * {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=Szablonowe}}}} - jednocześnie można powiedzieć, że on sprawdza, czy to jest link inteligentny. Przykład użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="Oto jest tekst {{lpg|Artykuł|Nazwa artykułu}}.\n Oto jest dalszy tekst. {{lu|Artykuł/Podstrona}}."; local tablica_analizy_obiektow_strony_dany_modul={}; local tablica_danych_parametrow_szablonu_strony={}; tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local czy_tak_wynik=stronicowyparser_rozdzialy_modul.CzyJestJakikolwiekLinkArtykularnyTekstu(tekst,"",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); </syntaxhighlight> Powyższe wywołanie zwróci wynik {{Code|true}}. W niej tekst był kodowany przy pomocy funkcji: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, a póżniej był liczony wynik z dyskutowanej funkcji. == {{Code|p.CzyJestInnySpecjalnyTekstowyObiekt}} == Funkcja sprawdza, czy jest obiekt zakodowany o kodzie: {{Code|INNEPRE}}, {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|MATH}}, {{Code|GALERIA}} i {{Code|MAPAOBRAZU}}, a co oznaczają te kody to można zobaczyć w: {{sr|Szablonowe|dokumentacji modułu Szablonowe}}, wtedy funkcja zwraca wynik {{Code|true}}, w przeciwnym wypadku {{Code|false}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestInnySpecjalnyTekstowyObiekt(tekst,tablica_analizy_obiektow_strony_dany_modul)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} {{LinkPatrz|tekst}} - tekst do policzenia, zawierające elementy z omawianymi kodami, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. Funkcja używa iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="\n Oto jest tekst z INNEPRE.\n<pre>Oto jest tekst z PRE</pre>\nOto jest dalszy tekst ze wzorem MATH: <MATH>c^2=a^2+b^2</MATH>."; local tablica_analizy_obiektow_strony_dany_modul={}; tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local czy_tak_wynik=stronicowyparser_rozdzialy_modul.CzyJestInnySpecjalnyTekstowyObiekt(tekst,tablica_analizy_obiektow_strony_dany_modul); </syntaxhighlight> Funkcja zwraca wynik {{Code|true}}. Aby policzyć ten wynik należy wykorzystać funkcję kodującą: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}. == {{Code|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}} == Mając napis rozdziału wraz z numeracją, fukcja liczy właściwy napis i numerację w osobnych po kolei parametrach. Jest to funkcja skomplikowana analizująca, czy numeracja jest poprawna, czy nie, jeśli numeracja jest poprawna, to ona zwraca rozdział bez numeracji i samą numerację, a jeśli nie, to cały rozdział i numerację, będącą ciągiem pustym. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja)...end; </syntaxhighlight> Parametry funkcji: * {{Code|rozdzial_z_numeracja}} - rozdzial z numeracją lub bez. Zwracane wartości: * {{Code|rozdzial}} - rozdzial bez numeracji, * {{Code|numetracja}} - numeracja. Przykłady użycia: ; Pierwszy{{Dk}} {{Code|z numeracją}}{{Dk}} <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local rozdzial_z_numeracja="5.1.2.3. Napis Rozdziału"; local rozdzial,numeracja=stronicowyparser_rozdzialy_modul.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja); </syntaxhighlight> Zwracane wyniki: <syntaxhighlight lang="lua"> local rozdzial="Napis Rozdziału"; local numeracja="5.1.2.3."; </syntaxhighlight> ; Drugi{{Dk}} {{Code|bez numeracji}}{{Dk}} <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local rozdzial_z_numeracja="Napis Rozdziału"; local rozdzial,numeracja=stronicowyparser_rozdzialy_modul.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja); </syntaxhighlight> Zwracane wyniki: <syntaxhighlight lang="lua"> local rozdzial="Napis Rozdziału"; local numeracja=""; </syntaxhighlight> == {{Code|p.__FUNKCJA_KOMPLETOWANIA}} == Funkcja kompletowania, sprawdza, czy nazwa szablonu jest jedna z wielu, tzn.: {{s|Kompletność}}, {{s|Kompletność krótka}}, {{s|Kompletność junior}} i {{s|Książka}}, wtedy zwraca wartość: {{Code|true}}, w przeciwnym wypadku: {{Code|nil}}, a tabela dzięki to wszystko się dzieje, przedstawia się w formie: <syntaxhighlight lang="lua"> p.szablony_kompletowania_stron_woluminu={ ["Kompletność"]=true, ["Kompletność krótka"]=true, ["Kompletność junior"]=true, ["Książka"]=true, }; </syntaxhighlight> Ta tabela mieści się w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}, opisana w: {{Code|{{sr|#p.szablony_kompletowania_stron_woluminu|p=StronicowyParser/obiekty}}}}, wraz z innymi tabelami. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.__FUNKCJA_KOMPLETOWANIA(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, * {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu}}, * {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|kod}} {{LinkPatrz|kod}} - kod, dla jego typu {{Code|SZABLON}} {{LinkPatrz|obiekt}}, potrzebny do poprzedniej tabeli. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local nazwa_szablonu="Kompletność krótka"; local czy_wynik=stronicowyparser_rozdzialy_modul.__FUNKCJA_KOMPLETOWANIA(nil,nazwa_szablonu,nil,nil,nil); </syntaxhighlight> Funkcja w tym przypadku zwróci wynik: {{Code|true}}, bo ta podana nazwa strony należy do naszej tabeli. == {{Code|p.UruchamianieAnalizatoraSpisuRzeczyStrony}} == Funkcja zwraca wynik, czy uruchomić wydzielonie generowania spisu treści z całego jego pierwotnego. Szablon zwraca zawsze wartość {{Code|true}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UruchamianieAnalizatoraSpisuRzeczyStrony()...end; </syntaxhighlight> Funkcja nie przyjmuje żadnego parametru. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local czy_tak=stronicowyparser_rozdzialy_modul.UruchamianieAnalizatoraSpisuRzeczyStrony(); </syntaxhighlight> Funkcja zwraca, jak zawsze wynik, wspomniany w nagłówku. == {{Code|p.CzyZerowyNapisWprowadzeniaTekstu}} == Funkcja sprawdza, czy napis wprowadzenia tekstu, który nie jest dodatni, tzn. np.: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}} (czyli określony wzorem: {{Code|<nowiki>=+[^\n]*[^=]+[^\n]*=+[^%S\n]*</nowiki>}}), ani np.: linia opisywana formułą: {{Code|<nowiki>\n[:#%*;]+[^\n]*</nowiki>}}, zatem to jest przepis na definicję na tą funkcję, ale nie do końca, bo w tej funkcji pierwszy parametr nie może opisywać tego, ani tego. Funkcja zwraca dwa parametry, tzn. otrzymany rozdział i wartość: {{Code|true/false}}. Wartość {{Code|true}} mówi o rozdziale zerowym, a przeciwna wartość, że taki on nie jest. Także funkcja może zwracać wartość {{Code|nil}}, to determiniuje, że to nie jest rozdział wcale zerowy, czyli rozdział świadczący, że to jest zerowy, nie musi być wcale zerowy. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyZerowyNapisWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametr funkcji: * {{Code|linia}} {{LinkPatrz|linia}} - rozważana zakodowana linia, która może być rozdziałem zerowym, ale ona nie może być dodatnia, ani ujemna, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Do liczenia rozdziału spisu treści (rzeczy) funkcja wykorzystuje z modułu {{Code|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}}}: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}} - funkcja sprawdzająca {{Code|true/nil}}, czy w tekście znajduje się rozdział, który jest o nazwie typu: {{Code|Spis treści}} ({{Code|Spis rzeczy}}) - niezależnie jakimi literami napisany, ile tam jest odstępów, a do kompletowania (rozwijania) rozdziałów, służy do tego z {{Code|{{ld2|StronicowyParser/SpisTreści}}}}: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}. Przykłady użycia (w przykładach przyjeliśmy najprostrzy wygląd tych rozdziałów, tzn. ich nie trzeba rozwijać i kompletować dalej, czyli wtedy ta funkcja jest ona w tym jedynie przypadku tożsamościowa): <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local linia="Spis treści"; local tablica_analizy_obiektow_strony_dany_modul={}; ---- Ta część kodu w tym przypadku jest opcjonalna, ze względu na niekodowalną zmienną: linia; local szablonowe_modul=require("Module:Szablonowe"); tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); ---- Koniec tej części kodu; local tablica_danych_parametrow_szablonu_strony={}; local rozdzial,czy_tak=stronicowyparser_rozdzialy_modul.CzyZerowyNapisWprowadzeniaTekstu(linia,"",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); </syntaxhighlight> Funckja w tym wypadku zwraca wynik: <syntaxhighlight lang="lua"> local rozdzial,czy_tak="Spis treści",true; </syntaxhighlight> Weźmy inny przykład: <syntaxhighlight lang="lua"> ---- Przykład pierwszy; local linia="'''Nagłówek'''"; local rozdzial,czy_tak="'''Nagłówek'''",true; ---- Przykład drugi; local linia="'''Nagłówek'''."; local rozdzial,czy_tak="'''Nagłówek'''.",false; </syntaxhighlight> == {{Code|p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu}} == Funkcja sprawdza, czy strona jest z przedrostkiem listy: {{Code|:}}, a dla tego, czy linia jest w cudzysłowach pojedyńczych podwójnych, a jeżeli to nie jest prawda, to funkcja zwraca wynik {{Code|false}}, normalnie przy braku parametrów linkowych funkcja zwraca wynik {{Code|true}}, w przeciwnym wypadku on rewiduje, czy w lini są artykuły aktualnej ksiązki, wtedy ona zwraca wynik {{Code|false}}, a jeżeli to jest fałszywa, to zwracany jest wynik {{Code|true}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLinikamiNieWoluminu(przedrotek_listy,linia,z_parametrami_linkowymi,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end; </syntaxhighlight> Parametry funkcji: * {{Code|przedrotek_listy}} - przedrostek listy z linią {{Code|linia}}, * {{Code||linia}} {{LinkPatrz|linia}} - linia bez przedrostka, * {{Code|z_parametrami_linkowymi}} - wartość {{Code|false}}, aby nie sprawdzał właśności artykularnych artykułów na linku, wtedy funkcja na samym końcu przy sprawdzedniu tego parametru,a jeżeli ta wartość, to wtedy otrzymany wynik z funkcji to {{Code|true}}, przeciwnym funkcja idzie dalej, * {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}} - parametry nazw, * {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci}}, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych}}. Funckja wykorzustuje: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|NormaWzoruKodowaniaTekstu}}, {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu}}, i {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} - jak w: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local linia="''[[Książka/Artykuł|Artykuł]]''"; local tablica_analizy_obiektow_strony_dany_modul={}; linia=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); local przedrotek_listy=":"; local tablica_danych_parametrow_szablonu_strony={}; local tab_nazwa_spisow_przekierowaniowych={}; ---- Tutaj funkcja zwróci wartość: true; local czy_tak=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia,false,"","","Książka","","",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); ---- Tutaj funkcja zwróci wartość: false; local czy_tak=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia,true,"","","Książka","","",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); </syntaxhighlight> == {{Code|p.HnNumerWprowadzeniaTekstu}} == Funkcja zwraca numer poziomu nagłówka od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}. Jeśli poziom jest mniejszy niż 6, wtedy wynik zwracany tej funkcji jest liczbą stojącą przy {{Code|h}}. A gdy mamy {{Code|<nowiki><h6></nowiki>}}, jeżeli ten znacznik nie ma klasy ('''class''') atrybutu: {{Code|<nowiki>mw-hnumber-<liczba></nowiki>}}, to zwracane jest: 6, w przeciwnym wypadku daje to wynik, którym jest: {{Code|<liczba>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.HnNumerWprowadzeniaTekstu(nazwa,atrybuty)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa}} - nazwa tagu, * {{Code|atrybuty}} - tabela atrybutów, których z jedną z elementów może być opcja: '''class'''. Funkcja wykorzystuje: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu}}}}, z modułu: {{Code|{{ld2|StronicowyParser/obiekty}}}}. Przykłady użycia: ; Pierwszy{{Dk}} {{Code|poziom<6}}{{Dk}} <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local nazwa="h5"; local atrybuty={}; local poziom=stronicowyparser_rozdzialy_modul.HnNumerWprowadzeniaTekstu(nazwa,atrybuty); </syntaxhighlight> Funkcja zwróci wynik: {{Code|5}}. ; Poziom{{Dk}} {{Code|poziom>{{=}}6}}{{Dk}} <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local nazwa="h6"; local atrybuty={};atrybuty["class"]="mw-hnumber-9"; local poziom=stronicowyparser_rozdzialy_modul.HnNumerWprowadzeniaTekstu(nazwa,atrybuty); </syntaxhighlight> Funkcja daje wynik: {{Code|9}}. == {{Code|p.NumeracjaOrazTekstWprowadzeniaTekstu}} == Funkcja zwraca numerację i rozdział całego rozdziału. Jest to funkcja bardzo prosta ponieważ nie analizuje numeracji, czy jest poprawnie podana, czy nie. Zawartość rozdziału musi się składać z numeracji, składający się z numerków oddzielonych kropkami - tutaj też mogą być dwie kropki koło siebie, albo numeracja może składać się z samych kropek, chociaż to jest niepoprawne, ale tak może być, na końcu numeracji może być też krokpa, po nm znajduje się właściwy rozdział zawartości tej wielkiej zawartości (rozdziału). A gdy numeracja nie istnieje, to zamiast niego zwracaną wartością jest wartość pusta. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.NumeracjaOrazTekstWprowadzeniaTekstu(zawartosc)...end; </syntaxhighlight> Parametry funkcji: * {{Code|zawartosc}} - zawartość rozdziału. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local zawartosc="5.1.6. Rozdział"; local numeracja,rozdzial=stronicowyparser_rozdzialy_modul.NumeracjaOrazTekstWprowadzeniaTekstu(zawartosc); </syntaxhighlight> Zwrócone wyniki: <syntaxhighlight lang="lua"> local numeracja,rozdzial="5.1.6.","Rozdział"; </syntaxhighlight> == {{Code|p.ParserPodawaniaNapisuWprowadzeniaTekstu}} == Funkcja sprawdza, czy podany napis, nie dodatni, opisanym nie znakami {{Code|{{=}}}}. Ona bada linie list tzn. zaczynające się od linii znakami: {{Code|<nowiki>[;%*:#]</nowiki>}} (to są rozdziały ujemne), także rozważa też rozdziały zerowe (to nie są nagłówki typu {{Code|<nowiki>== Nagłówek==</nowiki>}}, ani ujemne). Funkcja zalicza do rozdziałów znaczniki utworzone ze znaczników od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, też rozważa parametr w nim: {{Code|<nowiki>mw-hnumber-<liczba></nowiki>}}, wtedy poziom nie musi być od {{Code|1-6}}, ale też i: {{Code|> 6}}. Funkcja sprawdza, czy zaliczyć rozdziały centrowane (znacznikowe: znacznik {{Tag|center}}, i centrowane: {{s|ce}}, {{s|centruj}} i {{s|center}}) do rozdziałów, ona też potrafi odliczyć je od wykrywanych rozdziałów. Nie wyszystkie rozdziały ujemne (rozdziały listy) przez ten twór są przez niego uważane jako rozdziały, które trzeba zaliczyć, podobnie zerowe i centrowane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) ... return function(linia,tak_ce_spis_tresci) ... ---- ciało funkcji zwracanej. Tutaj są sprawdzane, czy podane linie zaliczyć do rozdziałów. Zmienna: tak_ce_spis_tresci, to jest zmienna mówiąca, czy uwzględniać rozdziały centrowane. return linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;---- Zwracane parametry tej funkcji; end; end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni}}, * {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, * {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki}}, * {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci}}, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych}}. Parametry funkcji zwracanej: * {{Code|linia}} {{LinkPatrz|linia}} - linia zakodowana do rozważenia bez rozdziałów dodatnich, aby sprawdzić, czy to jest rozdział, * {{Code|tak_ce_spis_tresci}} - czy ma uwzględniać rozdziały centrowane znacznikowe, czy szablonowe, podane pozyżej. Parametry zwracane przez funkcję, zwracaną przez tą funkcję, opisuje daną linie, czy ją uważać za rozdział, któremu w innej funkcji niż ta można przyporządkować jej zawartość: * {{Code|linia_temp}} - rozważana linia, * {{Code|nazwa_rozdzialu}} - nazwa rozdziału w opisanym linii rozdział, zwykle jest to ciało danego nagłówka, częśc tekstu po znakach listy następujące po sobie od początku linii, * {{Code|poziom_rozdziału}} - poziom danego rozdziału podanego, jest ściśle zależna od tego, czy to jest rozdział centrowany, wtedy rozdział: {{Code|2}}, nagłówek, to liczba przy: {{Code|h}}, dla znaczników nagłówka, lub przy: {{Code|mw-hnumber-<number>}} dla: {{Code|<nowiki><h6></nowiki>}}, * {{Code|poczatek_rozdzialu}} - początek rozdziału, początek rozdziału to jest przedrostek listy, czyli znaki: {{Code|<nowiki>[;%*:#]</nowiki>}}, * {{Code|numeracja_rozdzialu}} - numeracja rozdziału, to są numerki oddzielone od siebie kropką, na końcu tegomoże być ona, ale nie musi, * {{Code|czy_rozdzial_centrowany}} - czy rozdział centrowany, jeśli centrowany to: {{Code|true}}, w przeciwny wypadku: {{Code|nil}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tablica_analizy_obiektow_strony_dany_modul={}; local linia="<h6>Nagłówek</h6>"; linia=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); local tab_nazwa_spisow_przekierowaniowych={}; local nazwa_przestrzeni=""; local nazwa_przestrzeni_ksiazki=""; local nazwa_ksiazki="Książki"; local nazwa_spisu_tresci=""; local pelna_nazwa_spisu_tresci_szablonowa=""; local parser=stronicowyparser_rozdzialy_modul.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) end; local linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true); </syntaxhighlight> Funkcja zwraca wyniki: <syntaxhighlight lang="lua"> local linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany="'\"`UNIQ--ZNACZNIK-1-QINU`\"'","Nagłówek",6,nil,"",nil; </syntaxhighlight> == {{Code|p.TekstPoNapisieWprowadzeniaTekstuStrony}} == Funkcja liczy tekst pomiędzy dwoma {{Code|id}} rozdziałami o danych identyfikatorach na podstawie wydobytego ze strony zawartości. Ten tekst jest uzyskany z funkcji: {{Code|mw.title.makeTitle}}, na podstawie nazwy podanej jako pierwszy argument ramki tablicy transportu, funkcja też potrafić sprawdzić, czy uchwyt pliku jest prawidłowy lub czy plik istnieje, a także czy zawartość strony istnieje, bo np. chcelibyśmy policzyć zawartość strony w przestrzeni {{Np|Special|link=tak}} lub {{Np|Media|link=tak}}, wtedy wiadomo, że otrzymamy, że zawartość strony w tych przestrzeniach nazw nie istnieje, wyjątiem są inne istniejące strony, którego zawartość na pewno istnieje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstPoNapisieWprowadzeniaTekstuStrony(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji rablicy transportu. Parametry ramki funkcji tablicy transprotu dziecka rodzica: * {{Code|1}} - nazwa strony do analizy (rozwijany funkcją: {{Code|frame:preprocess}}), którego chcemy sprawdzić zawartość strony, jeśli istnieje, pomiędzy dwoma {{Code|id}} rozdziałami - funkcja rozwija nazwę strony wwzględem funkcji: {{Code|frame:preprocess}}, * {{Code|2}} - ten rozdział pierwszy, za którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany od poczatku, do pewnego identyfikatora, * {{Code|3}} - ten rozdział drugi, przed którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany do końca, od pewnego identyfikatora. Funkcja ramki uruchamia: {{Code|{{sr|#p.TekstWprowadzeniaTekstu|b=tak}}}}, do wyszukiwania tekstu pomiędzy dwoma rozdziałami, jako typową funkcję biblioteczną. Przykłady użycia w postaci ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> {{#invoke:StronicowyParser/Rozdziały|TekstPoNapisieWprowadzeniaTekstuStrony|Pomoc:Spis treści|Pomoc Wikibooks|Wstęp}}; </syntaxhighlight> Wyniki zwrócone przez ramkę uruchomioną, w rozdzicu, jako dziecko: <syntaxhighlight lang="mediawiki"> '''{{lr|Czym jest Wikibooks|Wikibooks}}''' jest zbiorem darmowych książek pisanych przez internautów. Poniższe strony pomocy zawierają porady i informacje o naszym projekcie. Projekt ten – będący siostrzanym projektem Wikipedii – powstał 10 lipca 2003 r. Polska wersja została uruchomiona '''24 stycznia 2004 roku''' i w tej chwili posiada już {{Forma wyrazu podręcznik po liczbie|'''{{LICZBAPODRĘCZNIKÓW}}'''}}, a w nich {{Forma wyrazu artykuł po liczbie|'''{{NUMBEROFARTICLES}}'''}}. </syntaxhighlight> == {{Code|p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu}} == Funkcja usuwa dolne myślniki i odstępy na końcach podanego tekstu oraz zamienia kolejne je wewnątrz tekstu na jeden dolny myślnik. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przerobienia. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst=" ____ ___ Tekst_________________ _______nagłówka ___ ___ ___ strony ___ ___"; tekst=stronicowyparser_rozdzialy_modul.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(tekst); </syntaxhighlight> Uzyskano wyniki: <syntaxhighlight lang="lua"> tekst="Tekst_nagłówka_strony"; </syntaxhighlight> == {{Code|p.ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony}} == Funkcja zwraca nagłówek (sekcję) rozwinięty o danym identyfikatorze na podstawie wydobytego ze strony zawartości. Ten tekst jest uzyskany z funkcji: {{Code|mw.title.makeTitle}}, na podstawie nazwy podanej jako pierwszy argument ramki tablicy transportu, funkcja też potrafić sprawdzić, czy uchwyt pliku jest prawidłowy lub czy plik istnieje, a także czy zawartość strony istnieje, bo np. chcelibyśmy policzyć zawartość strony w przestrzeni {{Np|Special|link=tak}} lub {{Np|Media|link=tak}}, wtedy wiadomo, że otrzymamy, że zawartość strony w tych przestrzeniach nazw nie istnieje, wyjątiem są inne istniejące strony, którego zawartość na pewno istnieje. Funkcja też uwzględnia, że dany rozdział w tekście może się powtarzać, i dlatego trzeba to robić za pomocą numerków przy {{Code|id}}, aby wyszukać ten ściśle określony . Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu funkcji. Parametry ramki funkcji tablicy transportu: * {{Code|1}} - nazwa strony - funkcja rozwija nazwę strony, * {{Code|2}} - identyfikator rozdzialu - domyślna wartość pusta. Przykłady użycia: <syntaxhighlight lang="lua"> {{#invoke:StronicowyParser/Rozdziały|ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony|Wikibooks:Jak_przeglądać_Wikibooks|Opera}} </syntaxhighlight> Uzyskane wyniki w postaci nierozwiniętego wikikodu: <syntaxhighlight lang="mediawiki"> <templatestyles src="Szablon:Link_wewnętrzny/styles.css"><span class="niew link">[[:w:Opera (program)|Opera]]</span> </syntaxhighlight> == {{Code|p.NumerSekcjiStrony}} == Funkcja liczy numer sekcji rozdziału, który posiada dany identyfikator na podstawie wydobytego ze strony zawartości. Ten tekst jest uzyskany z funkcji: {{Code|mw.title.makeTitle}}, na podstawie nazwy podanej jako pierwszy argument ramki tablicy transportu, funkcja też potrafić sprawdzić, czy uchwyt pliku jest prawidłowy lub czy plik istnieje, a także czy zawartość strony istnieje, bo np. chcelibyśmy policzyć zawartość strony w przestrzeni {{Np|Special|link=tak}} lub {{Np|Media|link=tak}}, wtedy wiadomo, że otrzymamy, że zawartość strony w tych przestrzeniach nazw nie istnieje, wyjątiem są inne istniejące strony, którego zawartość na pewno istnieje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.NumerSekcjiStrony(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji rablicy transportu. Parametry ramki funkcji tablicy transprotu dziecka rodzica: * {{Code|1}} - nazwa strony do analizy (rozwijany funkcją: {{Code|frame:preprocess}}), którego chcemy sprawdzić zawartość strony, jeśli istnieje, pomiędzy dwoma id rozdziałami - funkcja rozwija nazwę strony wwzględem funkcji: frame:preprocess, * {{Code|2}} - ten rozdział pierwszy, za którym jest wyszukiwany tekst - domyślna wartość pusta, Przykład użycia w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="lua"> {{#invoke:StronicowyParser/Rozdziały|NumerSekcjiStrony|Wikibooks:Jak_przeglądać_Wikibooks|Opera}} </syntaxhighlight> Otrzymane wyniki, to przedstawia numer sekcji podanego rozdziału jest: {{Code|9}}. == {{Code|p.TekstWprowadzeniaTekstu}} == Funkcja liczy tekst pomiędzy dwoma rozdziami o danych identyfikatorach {{Code|id}} na podstawie podanego tekstu do rozważań, który może posiadać rozdziały z tymi unikalnymi wartościami. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstWprowadzeniaTekstu(tekst,id_rozdzialu1,id_rozdzialu2)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do analizy, do uzyskania pomiędzy dwoma identyfikatorami tekstu, * {{Code|id_rozdzialu1}} - ten rozdział pierwszy, za którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany od poczatku, do pewnego identyfikatora, * {{Code|id_rozdzialu2}} - ten rozdział drugi, przed którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany do końca, od pewnego identyfikatora. Przykład użycia: <syntaxhighlight lang="lua"> local strona="Pomoc:Spis treści"; local title=mw.title.makeTitle('',strona); local tekst=title:getContent(); local id_rozdzialu1="Pomoc Wikibooks"; local id_rozdzialu2="Wstęp"; local stronicowyparser_rozdzialu_modul=require("Module:StronicowyParser/Rozdziały"); tekst=stronicowyparser_rozdzialu_modul.TekstWprowadzeniaTekstu(tekst,id_rozdzialu1,id_rozdzialu2); </syntaxhighlight> Uzykane wyniki w tekście pomiędzy dwoma identyfikatorami: <syntaxhighlight lang="lua"> local tekst="'''{{lr|Czym jest Wikibooks|Wikibooks}}''' jest zbiorem darmowych książek pisanych przez internautów. Poniższe strony pomocy zawierają porady i informacje o naszym projekcie. Projekt ten – będący siostrzanym projektem Wikipedii – powstał 10 lipca 2003 r. Polska wersja została uruchomiona '''24 stycznia 2004 roku''' i w tej chwili posiada już {{Forma wyrazu podręcznik po liczbie|'''{{LICZBAPODRĘCZNIKÓW}}'''}}, a w nich {{Forma wyrazu artykuł po liczbie|'''{{NUMBEROFARTICLES}}'''}}."; </syntaxhighlight> == {{Code|p.ObiektySzablonoweFormatowaniaTekstu}} == Funkcja, która zastępuje szablony ich ściśle okreslonymi parametrami, ale nie normalnie wszystkimi, według danych, które zwykle są tabelami z modulu: {{Code|{{ld2|StronicowyParser/obiekty}}}}, ale nie zawsze, bo taką tabelę można skonstrułować i włanorecznie podać do tej procedury. Przykładową tą tabelą, którą można znaleźć pod tym modułem, o którym wspomnialiśmy, jest: <syntaxhighlight lang="lua"> p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu={ ["Kolumny"]=2,---- Tutaj parametry, więcej niż jeden, oddzielamy średnikami, ale tutaj mamy jedynie jeden parametr, więc średniki nie są tutaj potrzebne; }; </syntaxhighlight> Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod)...end; </syntaxhighlight> Parametry funkcji: * {{Code|szablon}} - szablon, który chcemy zastąpić odpowiednimi, nie wszystkimi, jego parametrami, * {{Code|szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu}} - tabela informująca, które parametry szablonu należy zastąpić parametrami, tutaj parametry są oddzielone średnikami, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|kod}} {{LinkPatrz|kod}} - kod, dla obiektu {{Code|SZABLON}} {{LinkPatrz|obiekt}}, będący jednocześnie częścią kodów bazy, czyli: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablon="{{Kolumny|2|Oto jest tekst tego szablonu}}"; local tablica_analizy_obiektow_strony_dany_modul={}; local szablonowe_modul=require("Module:Szablonowe"); szablon=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul); local szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu=mw.loadData("Module:StronicowyParser/obiekty").szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu; local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały") local tablica_danych_parametrow_szablonu_strony={}; local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul); local tekst=""; for szablon,obiekt,kod in iterator do if(obiekt=="SZABLON")then tekst=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu,"",tablica_danych_parametrow_szablonu_strony,kod)..tekst; end; end; </syntaxhighlight> Uzyskane wyniki: {{Code|Oto jest tekst tego szablonu}}. == {{Code|p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu}} == Szablon zamieniający wywołania szablonów w tekście na ich odpowiednie wartości, które przedstawiają się za pomocą dodatków o ogólnym wzorze: {{Code|(<name>)}}. Przykładowa tabela z tymi dodatkami jest w: {{Code|{{ld2|StronicowyParser/obiekty}}}}, a w nim tabela: <syntaxhighlight lang="lua"> p.szablony_z_dodatkiem_obiektowym={ ["ISBN"]="ISBN $(1)"; }; </syntaxhighlight> Pierwszym elementem (kluczem) jest nazwa szablonu, a wartością tego elementu jest przepis, jak zastąpić ten szablon nim, a właściwie w nim dodatek, robiąc jeszcze dodatkowe operacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu(szablon,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod)...end; </syntaxhighlight> Parametry funkcji: * {{Code|szablon}} {{LinkPatrz|szablon}} - zakodowany szablon, z możliwym dodatkiem, w nazwie szablonu, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|kod}} {{LinkPatrz|kod}} - kod dla obiektu {{Code|SZABLON}} {{LinkPatrz|obiekt}}. Funkcja na podstawie użytych elementów z: {{Code|{{ld2|Techniczne}}}}, wykonuje operacje na parametrach, używając procedur dla nazw argumentów: {{Code|{{sr|#p["PrzekształćWzórDoCzystegoTekstu"]|p=Techniczne}}}}, i jego wartościach: {{Code|{{sr|#p["TekstBezOdwołańDoParametrówWeWzorze"]|p=Techniczne}}}}, zamieniając elementy typu: {{Code|(<name>)}}, gdzie {{Code|name}}, to nazwa argumentu, na ich wartości. Przykłady użycia: <syntaxhighlight lang="lua"> local szablon="{{ISBN|83-8678-825-9}}"; local tablica_analizy_obiektow_strony_dany_modul={}; local szablonowe_modul=require("Module:Szablonowe"); szablon=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały") local tablica_danych_parametrow_szablonu_strony={}; local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul); local tekst=""; for szablon,obiekt,kod in iterator do if(obiekt=="SZABLON")then tekst=stronicowyparser_rozdzialy_modul.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu(szablon,"",tablica_danych_parametrow_szablonu_strony,kod)..tekst; end; end; </syntaxhighlight> Wynikiem działania tego przykładu, ukryty pod przykładem pod zmienną {{Code|tekst}}, przedstawiamy na podstawie tekstu, którym jest wywołanie szablonu: {{Code|{{s|ISBN|83-8678-825-9}}}}, którym jest ukryty pod zmienną {{Code|szablon}}, w wyniku działania tej funkcji, zamieniany jest on na: {{Code|ISBN 83-8678-825-9}}. == {{Code|p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii}} == Funkcja zamienia znaczniki nowej linii: {{Code|<nowiki><br /></nowiki>}} i kreski poziomej {{Code|<nowiki><hr /></nowiki>}}, a także szablony, ich odpowiedniki wersji znacznikowych, tzn. kolejno: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, na jedną wartość: {{Code|\n\n }} (który charakteryzuje trzy linie, ostatnia linia ma początku ma spację, aby ona przypadkiem nie była traktowana, jako np. rozdział), ustaloną przez nią. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} {{LinkPatrz|tekst}} - zakodowany tekst, na którym operujemy, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} - jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, * {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} - jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="Tekst przed{{Br}}, tekst po <br />, a po nim znacznik: <hr />, i szablon {{Hr}}."; local tablica_analizy_obiektow_strony_dany_modul={}; tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local tablica_danych_parametrow_szablonu_strony={}; tekst=stronicowyparser_rozdzialy_modul.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst,"",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); </syntaxhighlight> Zwrócone wyniki: <syntaxhighlight lang="lua"> local tekst="Tekst przed\n\n , tekst po \n\n , a po nim znacznik: \n\n , i szablon \n\n ."; </syntaxhighlight> == {{Code|p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia}} == Funkcja łączy linie w jedną linię, pomiędzy liniami, które nie udało się połączyć z nimi, a jakie to są linie, otóż te, które reprezentują rozdziały, takie jak: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}}, i linie reprezentowane przez listy, które zaczynają się na: {{Code|<nowiki>[;%*:#]</nowiki>}}. Też nie zostaną połączone z innymi, które zawierają szablony: {{Code|{{s|SpisPozycja}}}}, {{Code|{{s|SpisZw}}}} i {{Code|{{s|SpisTreści}}}}, te szablony sa umieszczone w tabeli, na stronie: {{Code|{{ld2|StronicowyParser/obiekty}}}}, tzn.: <syntaxhighlight lang="lua"> p.szablony_w_nie_w_tej_samej_linii={ ["SpisPozycja"]=true, ["SpisZw"]=true, ["SpisTreści"]=true, }; </syntaxhighlight> Funkcja w wewnątrz linii każdy znacznik: {{Code|<nowiki><br /></nowiki>}} lub {{Code|<nowiki><hr /></nowiki>}} albo {{Code|{{s|Br}}}} lub {{Code|{{s|Hr}}}}, zamienia na {{Code|\n\n }} (przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii|b=tak}}}}), co potem odpowiada trzem liniom, linia pośrodku jest pusta (lub biała), a jeżeli taki znacznik szablonowy, czy znacznikowy, jest na końcu linii, czyli po prostu, wtedy mamy, jeśli: {{Code|<nowiki>^(.*\n)[^%S\n]*\n[^%S\n]*$</nowiki>}}, co odpowiada dwom oddzielnym liniom, na jakie dzielona jest ona, w końcowym tekście. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(tekst,nazwa_modulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_obiektow_strony_dany_modul_uzyskany,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} {{LinkPatrz|tekst}} - zakodowany tekst, na którym operujemy, * {{Code|nazwa_modulu}} - jak w: {{LinkPatrz|nazwa_modulu}}, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_obiektow_strony_dany_modul_uzyskany}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} - jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, * {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} - jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="== Tekst rozdziału ==\nTekst Rozdziału{{Br}}\nTekst rozdziału\nTekst rozdziału\n*# Tekst rodziału\n Tekst rozdziału\n"; local tablica_analizy_obiektow_strony_dany_modul={}; local szablonowe_modul=require("Module:Szablonowe"); tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local tablica_danych_parametrow_szablonu_strony={}; tekst=stronicowyparser_rozdzialy_modul.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(tekst,nil,"",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nil,nil); </syntaxhighlight> Zwracane wyniki: <syntaxhighlight lang="lua"> local tekst="== Tekst rozdziału ==\nTekst Rozdziału\nTekst rozdziału Tekst rozdziału\n*# Tekst rodziału\n'\"`UNIQ--INNEPRE-1-QINU`\"'"; </syntaxhighlight> == {{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 zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza 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 {{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 nie potrzebne. Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalszymo wartościami zwracanymi są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek rozdziału. 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_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; end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst}}, 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, * {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni}}, * {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, * {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki}}, * {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci}}, * {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe, * {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - 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, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych}}, * {{Code|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adreesu szablonu, określa i zawraca jego zawartość, * {{Code|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału), * {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu (może zwracać wartość: {{Code|nil}}) przed samym możliwym kodowaniem, funkcja ta bezpośrednio jest wywoływana w tej funkcji, a pośrednio uruchamiana w: {{Code|{{sr|#p.PobierzSpecjalniePrzygotowanyPreWikikodStrony|p=StronicowyParser/Tekst}}}}, z modułu: {{Code|{{ld2|StronicowyParser/Tekst}}}}. Parametry funkcji zwracanej: * Funkcja nie przyjmuje żadnych parametrów. Jednoczesne parametry zwracane przez funkcję zwracaną: * {{Code|naglowek_tab_aktualnego_rozdzialu}} - tojest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią, * {{Code|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału), * {{Code|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału, * {{Code|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału * {{Code|numeracja_aktualnego_rozdzialu}} - 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}}, * {{Code|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym. 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> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> e21ucymq4j1q8gmayhun8obuv39c65m 543825 543824 2026-05-22T05:48:51Z Persino 2851 /* {{Code|p.HnNumerWprowadzeniaTekstu}} */ 543825 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}} == Wstęp == Poniższe funkcje służą do analizowania stron spisu treści, aby przygotować je do analizowania przez moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}. === Rozdziały === * Dodatnie - dzielimy je na normalne i inne, a te na rozdziały centrowane znacznikowe i centrowane: ** normalne (równaniowe) - to są rozdziały napisane za pomocą znaku {{Code|{{=}}}}, które po prawej i lewej stronie znajduje się tych znaków minimalnie taka sama liczba, a pomiędzy nimi jest zwykły tekst, i nie tylko, są to rozdziały typu, np.: {{Code|<nowiki>== Tekst rozdziału ==</nowiki>}}, ** Inne (nierównaniowe): *** Rozdziały centrowane znacznikowe - są to rozdziały dodatnie napisane za pomocą znacznika: {{Tag|center}}, przykład: {{Tag|center|zawartość=Tekst rozdziału}}, *** Rozdziały centrowane szablonowe - są to rozdziały dodatnie napisane przy pomocy jednego szablonu z: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, przykład: {{Code|{{s|Center|Tekst rozdziału}}}}, * Ujemne - to są listy w liniach zaczynających się od znaku: {{Code|<nowiki>[;%*:#]</nowiki>}}, nie mogą być to znaczniki list, za tymi znakami znajduje się zwykły tekst, i nie tylko, są to rozdziały typu: {{Code|<nowiki>:** Tekst rozdziału</nowiki>}}, * Zerowe - to są rozdziały nie będące ani dodatnie, czy ujemne, ale nie wszystkie takie są zerowe, to zależy od pewnych kryteriów ustalanych przez funkcję: {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|b=tak}}}}, są to rozdziały typu: {{Code|Tekst rozdziału:}}. === Zmienne spotykane w opisywanych tutaj funkcjach === ==== Zmienne bazy ==== W poniższych funkcjach często spotykamy parametry: * {{Code|tekst}} {{Patrz|tekst}} (cały tekst), {{Code|linia}} {{Patrz|linia}} (linia w tekście) - tekst zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje, * {{Code|szablon}} {{Patrz|szablon}} - zakodowany tekst szablonu, jak w: {{LinkPatrz|tekst}}, tym szablonem może być też nie tylko normalnie szablon, ale może być to jakikolwiek instrukcja warunkowa wikikodu, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - pełna nazwa strony jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. ==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ==== * {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} - tabela parametrów szablonu, * {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu, * {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} - tabela jego modyfikatorów. ==== Baza danych wikikodu ==== Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu. ===== Zmienne bazy danych i do nich parametrów ===== * {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} - nazwa modułu (uchwyt) używana zamiast tabeli bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jeżeli taki istnieje w bazie wewnętrznym funkcji: {{Code|{{m|Szablonowe}}}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne, * {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy. ===== Inne elementy bazy ===== * {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} - tabela potrzebna do rozważań dla funkcji: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}, mówiąca coś o przekierowaniach, aby nie liczyć pewnych parametrów od począdku. ==== Funkcje bazy danych i do nich parametrów ==== * {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} - funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} - fukcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. ==== Inne funkcje ==== ===== Funkcje bazy ===== * {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} - służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych, * {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}}{{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} - funkcja służąca do kodowania i modyfikowania tekstu, zastępując w nim elementy ich kodami, tworząc tablicę kodów: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, którego elementu można rozkładać i umieszczać w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} - sprawdzająca, czy w kodzie są kody (czy tekst jest zakodowany), tzn. czy są kody o jakikolwiek {{Code|obiekt}} {{LinkPatrz|obiekt}} (typ obiektu kodu) i {{Code|kod}} {{LinkPatrz|kod}} (o liczbie całkowitej dodatniej). ===== Inne ===== * {{Code|{{sr|p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} - funkcja do analizowania linków zwykłych wewnętrznychi zewnętrznych oraz linków tzw. inteligentnych. ==== Elementy bazy ==== * {{Code|obiekt}} {{Patrz|obiekt}} - parametr, w postaci łańcucha znakowego typu elementu w kodzie, * {{Code|kod}} {{Patrz|kod}} - numer tego elementu o danym typie {{LinkPatrz|obiekt}}. Te numery mogą mieć przerwy, możliwie zaczynające się od jedynki, ale nigdy od zera, dla kodów tego samego typu, bo za pomocą innych funkcji można skasować to z jedynką lub elementy powodujące przerwy, te operacje są według {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}. ==== Inne zmienne ==== * {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} - te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki, * {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} - nazwa artykułu spisu treści. === Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, do usuwania elementów tabeli parametrów === Funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, często ją się definiuje: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local tab_analiza=szablonowe_modul.LiczbyParametroweInformacjiBazyKodowaniaWikikodu(); local __FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE=function(szablon,obiekt,kod,poziom_iteracji) local tab_obiekt=tab_analiza[obiekt]; if(not tab_obiekt)then return;end; for _,wartosc in pairs(tab_obiekt)do local element_wartosc=tablica_danych_parametrow_szablonu_strony[wartosc]; if(element_wartosc)then element_wartosc[kod]=nil; end; end; end; </syntaxhighlight> Ta funkcja usuwa elementy tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, które są reprezentowane przez element liczbowy {{Code|kod}} {{LinkPatrz|kod}}. === Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, do usuwania elementów tabeli bazy === A funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, można zdefiniować, usuwając z tablicy wielowymiarowej jeden element reprezentowany przez dwie zmienne: <syntaxhighlight lang="lua"> local __FUNKCJA_OPERACJE_USUWANIE_BAZOWE=function(szablon,obiekt,kod,poziom_iteracji) tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil; end; </syntaxhighlight> Przy tej funkcji należy uważać, aby nie wywołać błędu języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jakby element {{Code|obiekt}} {{LinkPatrz|obiekt}} nie istniał w tabeli. Ta funkcja usuwa elementy z tablicy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, które są reprezentowane przez zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}. == {{Code|p.NapisWprowadzeniaTekstu}} == Funkcja tworzy nagłówek rozdziału. Dla poziomu większego niż zero, ale mniejszego niż sieden zwraca nagłówek, np.: {{Code|{{=}}{{=}} Nagłówek tekstu {{=}}{{=}}}}, a dla większego niż sześć kreuje je jako, np.: {{Code|<nowiki><h6 class=\"mw-hnumber mw-hnumber-7">Nagłówek tekstu</h6></nowiki>}}. Gdy {{Code|0 < poziom <{{=}} 6}} tworzony jest taki nagłówek, że z lewej i prawej strony jest tyle minimalnie równa się, ile wskazuje poziom. A dla większego niż sześć tworzony jest nagłówek za pomocą znacznika {{Code|<nowiki><h6></nowiki>}} z klasą ogólną {{Code|mw-hnumber}} plus {{Code|mw-hnumber-<poziom>}}, gdzie {{Code|<poziom>}}, to numer danego poziomu. A więc funkcja pozwala tworzyć nagłówki o dowolnym poziomie większym niż zero, o ile {{lpg|Lua}} w {{lpr|Lua|Scribunto}} na to pozwoli, ze strony swoich ograniczeń. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.NapisWprowadzeniaTekstu(rozdzial,poziom)...end; </syntaxhighlight> Parametry funkcji: * {{Code|rozdzial}} - tekst wnętrza rozdziału, * {{Code|poziom}} - numer całkowity dodatni poziomu. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local rozdzial="Tekst rozdziału"; local napis_rozdzialu1=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstu(rozdzial,4); local napis_rozdzialu2=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstu(rozdzial,8); </syntaxhighlight> Wyniki użycia w zmiennych: <syntaxhighlight lang="lua"> local napis_rozdzialu1="\n====Tekst rozdziału====\n"; local napis_rozdzialu2="\n<h6 class=\"mw-hnumber mw-hnumber-8\">Tekst rozdziału</h6>\n"; </syntaxhighlight> == {{Code|p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego}} == Funkcja sprawdzająca, czy we podanym rozdziale, dodatnim lub ujemnym, o pewnym formacie, który musi istnieć, jako format szablonu {{s|HNumer}}, czy istnieje w nim element (obiekt), w postaci zakodowanej, o kodzie: {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}, który nie zawiera w sobie żadnej nowej linii, a jak nie zawiera, to czy ten element jest bezpośrednio elementem rozdziału napisanego wewnątrz tego szablonu. Defnicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego(tekst,zawartosc,obiekt,kod)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst zawartości pierwszego parametru wspomnianego szablonu, * {{Code|zawartość}} - zawartość elementu kodu, * {{Code|obiekt}} {{LinkPatrz|obiekt}} - jaki to jest obiekt, np. {{Code|ZNACZNIK}}, * {{Code|kod}} {{LinkPatrz|kod}} - kod danego obiektu. Funkcja wykorzystuje do swojego liczenia instrukcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{LinkPatrz|NormaWzoruKodowaniaTekstu}}, aby policzyć kod pewnego elementu mając zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}, aby wykorzystać ta metodę. Przykłady użycia, używając omawianego szablonu: <syntaxhighlight lang="mediawiki"> {{HNumer|1= === Oto jest tekst <span class="plainlinks">Zawartość znacznika</span> ===}} {{HNumer|1= * Oto jest tekst <span class="plainlinks">Zawartość znacznika</span>}} </syntaxhighlight> Zmienną {{Code|tekst}} w nich kolejno, które należy zakodować odpowiednio właściwą funkcją, aby otrzymać odpowiednio ich wersje zakodowane, tej zmiennej, aby móc operować tą funkcją, w przeciwnym wypadku tej funkcji nie ma sensu używać, bo otrzymamy nieprzewidywalne skutki: <syntaxhighlight lang="lua"> local tekst="=== Oto jest tekst <span class=\"plainlinks\">Zawartość znacznika</span> ==="; local tekst="* Oto jest tekst <span class=\"plainlinks\">Zawartość znacznika</span>"; </syntaxhighlight> A {{Code|zawartosc}} kolejno, która mieści się w wersji zakodowanej zmiennej {{Code|tekst}} (tutaj mamy wersje jego niezakodowaną): <syntaxhighlight lang="lua"> local zawartosc="Zawartość znacznika"; local zawartosc="Zawartość znacznika"; </syntaxhighlight> W obu przykładach szablon zwraca wartość: {{Code|true}} (bo w tej ostatniej zmiennej nie ma nowej linii), pod warunkiem, że znacznik: {{Code|<nowiki><span class="plainlinks">Zawartość znacznika</span></nowiki>}}, jest zakodowany w zmiennej {{Code|tekst}}, i jest częścią zmiennej tej wersji, co jest uwidocznione kodem, według dwóch kolejnych sprawdzeń wykluczających się: <syntaxhighlight lang="lua"> if(mw.ustring.match(tekst,"\n=+[^\n]*"..kod_norma_wzoru_obiektu.."[^\n]*=+[^%S\n]*\n"))then return true;end; if(mw.ustring.match(tekst,"\n[:#%*;]+[^\n]*"..kod_norma_wzoru_obiektu.."[^\n]*\n"))then return true;end; </syntaxhighlight> Widzimy, że ten znacznik musi leżeć bezpośrednio w zakodowanym tekście (to musi być zakodowane, bo w przeciwnym wypadku nie ma o czym mówić). == {{Code|p.NapisWprowadzeniaTekstuHNumer}} == Generuje napis wprowadzenia tekstu według szablonu {{s|HNumer}}, w którym parametrach szablonów jest równaniowy nagłówek. Szablon dla {{Code|0 < poziom <{{=}} 6}} poziomów, np.: {{Code|{{=}}{{=}} Nagłówek Tekstu {{=}}{{=}}}}, podaje poziom napisu wprowadzenia tekstu przy pomocy funkcji: {{Code|{{sr|#p.PodajNapisPoziomuWprowadzeniaTekstu}}}}, i go zamienia na znaczniki od: {{Code|<nowiki><h1></nowiki>}} do {{Code|<nowiki><h6></nowiki>}}, a dla {{Code|poziom > 6}}, tworzy inny nagłówek, dla {{Code|<nowiki>======== Nagłówek tekstu ========</nowiki>}}, tworzy: {{Code|<nowiki><h6 class="mw-hnumber mw-hnumber-8">Nagłówek tekstu</h6></nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.NapisWprowadzeniaTekstuHNumer(parametr)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - napisz wprowadzenia tekstu dodatni, czyli napisany za pomocą znaku {{Code|{{=}}}}, rozdziały napisane za pomocą list, tzn. napisane tak by zaczynały się od: {{Code|<nowiki>#*:;</nowiki>}}, odpadają, inne listy znacznikowe też. Przykłady użycia reprezentujące dwa rozłączne formy przedstawiające nagłówki, napisane tym samym sposobem: <syntaxhighlight lang="mediawiki"> {{HNumer|1= === Nagłówek tekstu ===}} {{HNumer|1= ======= Nagłówek tekstu =======}} </syntaxhighlight> Wtedy wywołania funkcyjne, a w nich parametr {{Code|parametr}} można zdefiniować dwóch w zmiennych, one są przetwarzane na odpowiednie nagłówki, ten parametr może być zakodowany, ale nie musi tak być, tak otrzymany nagłówek, równie dobrze możemy zakodować, a otrzymany tekst, aby przygotować do dalszej analizy przez inne funkcje, czy metody: <syntaxhighlight lang="lua"> ---- Nagłówki typowo dodatnie local tekst1="=== Nagłówek tekstu ==="; local tekst2="======= Nagłówek tekstu ======="; ---- Wywołania tworzące nagłówki local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local naglowek1=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstuHNumer(tekst1); local naglowek2=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstuHNumer(tekst2); </syntaxhighlight> Funkcja zamienia to kolejno je na standardowe nagłówki {{Strong|HTML}}, które reprezentują nagłówko o dowolnym poziomie, tutaj dla: {{Code|poziom > 6}}, też można tak zrobić poprzez osobne dwie klasy, tzn. klasę ogólną: {{Code|mw-hnumber}}, i szczególną: {{Code|mw-hnumber-<liczba>}}: <syntaxhighlight lang="lua"> local naglowek1="<h3>Nagłówek tekstu</h3>"; local naglowek2="<h6 class=\"mw-hnumber mw-hnumber-8\">Nagłówek tekstu</h6>"; </syntaxhighlight> == {{Code|p.PodajNapisPoziomuWprowadzeniaTekstu}} == Szablon na podstawie dowolnego nagłówka dodatniego równaniowego, tzn. o poziomie o dobrowolnej liczbie, tzn. jego poziom może być: {{Code|poziom > {{=}} 1}}, a nie {{Code|1 <{{=}} poziom <{{=}} 6 }}, równa się, czyli np.: {{Code|<nowiki>====== Tekst nagłówka ======</nowiki>}}, takie poziomy są jedynie interpretowalne przez {{Strong|MediaWiki}}, a ta funkcja również uwzględnia poziomy: {{Code|poziom > 6}}, czyli o liczbie {{Code|{{=}}}} z prawej i lewej strony nagłówka o większej liczbie niż sześć. Metoda podaje jego zawartość (nagłówek jest trimowany funkcją: {{Code|mw.text.trim}}) i poziom, jako dwa kolejne parametry zwracane, tzn. {{Code|naglowek, poziom}}, przez nią. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PodajNapisPoziomuWprowadzeniaTekstu(linia)...end; </syntaxhighlight> Parametry funkcji: * {{Code|linia}} {{LinkPatrz|linia}} - parametr przedstawiający linię rozważanego tekstu, ona może być zakodowana, Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="====== Tekst nagłówka ======"; local naglowek,poziom=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(tekst); </syntaxhighlight> Wynikiem działania tego przykładu: <syntaxhighlight lang="lua"> local naglowek="Tekst nagłówka"; local poziom=6; </syntaxhighlight> Zawartością zmiennej wchodzącej do naszej funkcji musi być sciśle od poczatku do końca nagłówek o wspomnianym formacie. == {{Code|p.PodajTekstHNumerNapisuWprowadzeniaTekstu}} == Szablon podaje zawartość nagłówka rozdziału od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, i jego poziom, czyli liczba stojąca przy {{Code|h}}, tzn, jak mamy {{Code|<nowiki><h5></nowiki>}}, to tą liczbą jest {{Code|5}}. W innych przypadkach szablon zwraca zamiast liczby wartość {{Code|nil}}, np. gdy tag znacznika końcący nagłówek nie zgadza się z tym rozpoczynającym, lub gdy liczba przy {{Code|h}} jest większa niż {{Code|6}}, czyli: {{Code|<nowiki><h7></nowiki>}}, albo gdy np. mamy: {{Code|<nowiki><h67></nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PodajTekstHNumerNapisuWprowadzeniaTekstu(linia)...end; </syntaxhighlight> Parametry funkcji: * {{Code|linia}} - linia rozważanego tekstu, w tekście musi mieścić się ten znacznik, choćby jeden, on nie musi się rozpoczynać na samym początku, a kończyć się na samym końcu, wnętrze jego najlepiej by było zakodowane, najlepiej, by był w nim to znacznik tylko jeden w samej linii zawarty bezpośrednio tam, aby on cały był jednocześnie tą linią. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="<h5 class=\"plainlinks\">Tekst nagłówka</h5>"; local zawartosc,poziom=stronicowyparser_rozdzialy_modul.PodajTekstHNumerNapisuWprowadzeniaTekstu(tekst); </syntaxhighlight> Zwrócone wyniki: <syntaxhighlight lang="lua"> local zawartosc="Tekst nagłówka"; local poziom=5; </syntaxhighlight> == {{Code|p.CzyJestNapisWprowadzeniaTekstu}} == Funkcja podaje, czy w podanym tekście, jest jakikolwiek nagłówek dodatni, tzn. czy napisany za pomocą {{Code|{{=}}}}, tzn. np. {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}}, w zakodowanym tekście. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestNapisWprowadzeniaTekstu(zawartosc)...end; </syntaxhighlight> Parametry funkcji: * {{Code|zawartosc}} - tekst, w którym zawarty jest jakikolwiek nagłówek, ono musi być zakodowane. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="Oto jest tekst\n== Tekst nagłówka == \n Oto jest dalszy tekst\n"; local napis_pierwszy_w_tekscie=stronicowyparser_rozdzialy_modul.CzyJestNapisWprowadzeniaTekstu(tekst); </syntaxhighlight> W powyższym tekście funkcja zwraca wartość równą pierwszemu wyszukiwanemu nagłówkowi, czyli: <syntaxhighlight lang="lua"> local napis_pierwszy_w_tekscie="== Tekst nagłówka == "; </syntaxhighlight> Na podstawie tego wiadomo, że jakikolwiek taki nagłówek w tekście istnieje, gdyby nie było go tam wcale, to funkcja zwracałaby wartość: {{Code|nil}}. == {{Code|p.CzyJestListaNapisuWprowadzeniaTekstu}} == Funkcja sprawdza, czy w tekście występuje nagłówek ujemny, czyli napis wprowadzenia tekstu, w postaci listy zaczynającej się od nowej linii: {{Code|<nowiki>[;%*:#]</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc)...end; </syntaxhighlight> Parametry funkcji: * {{Code|zawartosc}} - tekst, w który ma znajdować napis wprowadzenia tekstu w postaci listy. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local zawartosc="Oto jest tekst\n:* Tekst nagłóka ujemnego\n"; local lista=stronicowyparser_rozdzialy_modul.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc); </syntaxhighlight> Funkcja zwraca wartość niepustą łańcuchową powiadamiającą, że taka lista istnieje, czyli w tym przypadku: {{Code|<nowiki>\n:*</nowiki>}}. == {{Code|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}} == Funkcja sprawdzająca, czy w tekście jest jakolwiek nagłówek podany w postaci równaniowej lub nagłówka od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}. Definicja skrótowa funkcji <syntaxhighlight lang="lua"> function p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz)...end; </syntaxhighlight> Parametry funkcji: * {{Code|wiersz}} - czy w tekście jest wiersz z takim opisywanym nagłókiem. Funkcja używa do sprawdzenia: {{Code|{{sr|#p.CzyJestNapisWprowadzeniaTekstu|b=tak}}}} (czy to jest rozdział dodatni) i {{Code|{{sr|#p.PodajTekstHNumerNapisuWprowadzeniaTekstu|b=tak}}}} (czy ujemny). Przykłady funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst1="====== Tekst nagłówka ======"; local tekst2="<h5 class=\"plainlinks\">Tekst nagłówka</h5>"; local czy_jest_naglowek1,jaki_naglowek1=stronicowyparser_rozdzialy_modul.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(tekst1); local czy_jest_naglowek2,jaki_naglowek2=stronicowyparser_rozdzialy_modul.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(tekst2); </syntaxhighlight> Funkcja zwraca wyniki: <syntaxhighlight lang="lua"> local czy_jest_naglowek1,jaki_naglowek1=true,true; local czy_jest_naglowek2,jaki_naglowek2=true,false; </syntaxhighlight> == {{Code|p.WierszHNumer}} == Funkcja w nagłówkach od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, usuwa w nich nowe linie, zamieniając je po kolei na spację, i dodaje z lewej (przed znacznikiem) i prawej (po) strony tego nagłówka znak nowej linii: {{Code|\n}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.WierszHNumer(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - parametr z tymi nagłówkami. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="Oto jest tekst<h2>Tekst nagłówka\nDalej Tekst nagłówka</h2> Tekst rozdziału\nDalszy tekst rozdziału <h3>Tekst nagłówka\nDalszy nagłówek</h3>"; local wynik=stronicowyparser_rozdzialy_modul.WierszHNumer(tekst); </syntaxhighlight> Zwrócone wyniki: <syntaxhighlight lang="lua"> local wynik="Oto jest tekst\n<h2>Tekst nagłówka Dalej Tekst nagłówka</h2>\n Tekst rozdziału\nDalszy tekst rozdziału \n<h3>Tekst nagłówka Dalszy nagłówek</h3>\n"; </syntaxhighlight> == {{Code|p.CzyJestJakikolwiekLinkArtykularnyTekstu}} == Funkcja sprawdza na podstawie artykułu spisu treści, czy są w nim linki artykularne, które generują szablony, w postaci: {{s|SpisTreści}}, {{s|Sekcja referencyjna}} (lub jego skrót: {{s|Sr}}), {{s|Link wewnętrzny}}, {{s|LinkOgólne}} (lub jego skrót: {{s|Lo}}), czyli linki według tabeli: <syntaxhighlight lang="lua"> p.linki_szablony_elementy_spisu_rzeczy={ ["SpisTreści"]=true, ["Sekcja referencyjna"]=true, ["Sr"]=true, ["Link wewnętrzny"]=true, ["LinkOgólne"]=true, ["Lo"]=true, }; </syntaxhighlight> Tablica opisana w: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}}. Albo inne generujące części spisu treści: {{s|SpisPozycja}} i {{s|SpisZw}}, na podstawie, które są elementami z: <syntaxhighlight lang="lua"> p.inne_linki_szablony_elementy_spisu_rzeczy={ ["SpisPozycja"]={true,numer_link="tyt",}, ["SpisZw"]={false,numer=1,link=2,}, }; </syntaxhighlight> Tablica opisana w: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}}. Bądź szablony linków inteligentnych. Ewentualnie ich skróty, artykułów sprawdzane przy pomocy funkcji: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}}, te szablony mieszczą się w kategorii: {{Code|{{lk2|Szablony linków inteligentnych}}}}, i ich skróty w: {{Code|{{lk2|Przekierowania skrótów do szablonów linków inteligentnych}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestJakikolwiekLinkArtykularnyTekstu(tekst,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} {{LinkPatrz|tekst}} - tekst do sprawdzenia, czy zawiera zakodowane linki artykularne, w postaci szablonów, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Funkcja wykorzystuje: * {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu}}, * {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=Szablonowe}}}} - jednocześnie można powiedzieć, że on sprawdza, czy to jest link inteligentny. Przykład użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="Oto jest tekst {{lpg|Artykuł|Nazwa artykułu}}.\n Oto jest dalszy tekst. {{lu|Artykuł/Podstrona}}."; local tablica_analizy_obiektow_strony_dany_modul={}; local tablica_danych_parametrow_szablonu_strony={}; tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local czy_tak_wynik=stronicowyparser_rozdzialy_modul.CzyJestJakikolwiekLinkArtykularnyTekstu(tekst,"",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); </syntaxhighlight> Powyższe wywołanie zwróci wynik {{Code|true}}. W niej tekst był kodowany przy pomocy funkcji: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, a póżniej był liczony wynik z dyskutowanej funkcji. == {{Code|p.CzyJestInnySpecjalnyTekstowyObiekt}} == Funkcja sprawdza, czy jest obiekt zakodowany o kodzie: {{Code|INNEPRE}}, {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|MATH}}, {{Code|GALERIA}} i {{Code|MAPAOBRAZU}}, a co oznaczają te kody to można zobaczyć w: {{sr|Szablonowe|dokumentacji modułu Szablonowe}}, wtedy funkcja zwraca wynik {{Code|true}}, w przeciwnym wypadku {{Code|false}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestInnySpecjalnyTekstowyObiekt(tekst,tablica_analizy_obiektow_strony_dany_modul)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} {{LinkPatrz|tekst}} - tekst do policzenia, zawierające elementy z omawianymi kodami, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. Funkcja używa iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="\n Oto jest tekst z INNEPRE.\n<pre>Oto jest tekst z PRE</pre>\nOto jest dalszy tekst ze wzorem MATH: <MATH>c^2=a^2+b^2</MATH>."; local tablica_analizy_obiektow_strony_dany_modul={}; tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local czy_tak_wynik=stronicowyparser_rozdzialy_modul.CzyJestInnySpecjalnyTekstowyObiekt(tekst,tablica_analizy_obiektow_strony_dany_modul); </syntaxhighlight> Funkcja zwraca wynik {{Code|true}}. Aby policzyć ten wynik należy wykorzystać funkcję kodującą: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}. == {{Code|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}} == Mając napis rozdziału wraz z numeracją, fukcja liczy właściwy napis i numerację w osobnych po kolei parametrach. Jest to funkcja skomplikowana analizująca, czy numeracja jest poprawna, czy nie, jeśli numeracja jest poprawna, to ona zwraca rozdział bez numeracji i samą numerację, a jeśli nie, to cały rozdział i numerację, będącą ciągiem pustym. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja)...end; </syntaxhighlight> Parametry funkcji: * {{Code|rozdzial_z_numeracja}} - rozdzial z numeracją lub bez. Zwracane wartości: * {{Code|rozdzial}} - rozdzial bez numeracji, * {{Code|numetracja}} - numeracja. Przykłady użycia: ; Pierwszy{{Dk}} {{Code|z numeracją}}{{Dk}} <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local rozdzial_z_numeracja="5.1.2.3. Napis Rozdziału"; local rozdzial,numeracja=stronicowyparser_rozdzialy_modul.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja); </syntaxhighlight> Zwracane wyniki: <syntaxhighlight lang="lua"> local rozdzial="Napis Rozdziału"; local numeracja="5.1.2.3."; </syntaxhighlight> ; Drugi{{Dk}} {{Code|bez numeracji}}{{Dk}} <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local rozdzial_z_numeracja="Napis Rozdziału"; local rozdzial,numeracja=stronicowyparser_rozdzialy_modul.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja); </syntaxhighlight> Zwracane wyniki: <syntaxhighlight lang="lua"> local rozdzial="Napis Rozdziału"; local numeracja=""; </syntaxhighlight> == {{Code|p.__FUNKCJA_KOMPLETOWANIA}} == Funkcja kompletowania, sprawdza, czy nazwa szablonu jest jedna z wielu, tzn.: {{s|Kompletność}}, {{s|Kompletność krótka}}, {{s|Kompletność junior}} i {{s|Książka}}, wtedy zwraca wartość: {{Code|true}}, w przeciwnym wypadku: {{Code|nil}}, a tabela dzięki to wszystko się dzieje, przedstawia się w formie: <syntaxhighlight lang="lua"> p.szablony_kompletowania_stron_woluminu={ ["Kompletność"]=true, ["Kompletność krótka"]=true, ["Kompletność junior"]=true, ["Książka"]=true, }; </syntaxhighlight> Ta tabela mieści się w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}, opisana w: {{Code|{{sr|#p.szablony_kompletowania_stron_woluminu|p=StronicowyParser/obiekty}}}}, wraz z innymi tabelami. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.__FUNKCJA_KOMPLETOWANIA(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, * {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu}}, * {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|kod}} {{LinkPatrz|kod}} - kod, dla jego typu {{Code|SZABLON}} {{LinkPatrz|obiekt}}, potrzebny do poprzedniej tabeli. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local nazwa_szablonu="Kompletność krótka"; local czy_wynik=stronicowyparser_rozdzialy_modul.__FUNKCJA_KOMPLETOWANIA(nil,nazwa_szablonu,nil,nil,nil); </syntaxhighlight> Funkcja w tym przypadku zwróci wynik: {{Code|true}}, bo ta podana nazwa strony należy do naszej tabeli. == {{Code|p.UruchamianieAnalizatoraSpisuRzeczyStrony}} == Funkcja zwraca wynik, czy uruchomić wydzielonie generowania spisu treści z całego jego pierwotnego. Szablon zwraca zawsze wartość {{Code|true}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UruchamianieAnalizatoraSpisuRzeczyStrony()...end; </syntaxhighlight> Funkcja nie przyjmuje żadnego parametru. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local czy_tak=stronicowyparser_rozdzialy_modul.UruchamianieAnalizatoraSpisuRzeczyStrony(); </syntaxhighlight> Funkcja zwraca, jak zawsze wynik, wspomniany w nagłówku. == {{Code|p.CzyZerowyNapisWprowadzeniaTekstu}} == Funkcja sprawdza, czy napis wprowadzenia tekstu, który nie jest dodatni, tzn. np.: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}} (czyli określony wzorem: {{Code|<nowiki>=+[^\n]*[^=]+[^\n]*=+[^%S\n]*</nowiki>}}), ani np.: linia opisywana formułą: {{Code|<nowiki>\n[:#%*;]+[^\n]*</nowiki>}}, zatem to jest przepis na definicję na tą funkcję, ale nie do końca, bo w tej funkcji pierwszy parametr nie może opisywać tego, ani tego. Funkcja zwraca dwa parametry, tzn. otrzymany rozdział i wartość: {{Code|true/false}}. Wartość {{Code|true}} mówi o rozdziale zerowym, a przeciwna wartość, że taki on nie jest. Także funkcja może zwracać wartość {{Code|nil}}, to determiniuje, że to nie jest rozdział wcale zerowy, czyli rozdział świadczący, że to jest zerowy, nie musi być wcale zerowy. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyZerowyNapisWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametr funkcji: * {{Code|linia}} {{LinkPatrz|linia}} - rozważana zakodowana linia, która może być rozdziałem zerowym, ale ona nie może być dodatnia, ani ujemna, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Do liczenia rozdziału spisu treści (rzeczy) funkcja wykorzystuje z modułu {{Code|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}}}: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}} - funkcja sprawdzająca {{Code|true/nil}}, czy w tekście znajduje się rozdział, który jest o nazwie typu: {{Code|Spis treści}} ({{Code|Spis rzeczy}}) - niezależnie jakimi literami napisany, ile tam jest odstępów, a do kompletowania (rozwijania) rozdziałów, służy do tego z {{Code|{{ld2|StronicowyParser/SpisTreści}}}}: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}. Przykłady użycia (w przykładach przyjeliśmy najprostrzy wygląd tych rozdziałów, tzn. ich nie trzeba rozwijać i kompletować dalej, czyli wtedy ta funkcja jest ona w tym jedynie przypadku tożsamościowa): <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local linia="Spis treści"; local tablica_analizy_obiektow_strony_dany_modul={}; ---- Ta część kodu w tym przypadku jest opcjonalna, ze względu na niekodowalną zmienną: linia; local szablonowe_modul=require("Module:Szablonowe"); tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); ---- Koniec tej części kodu; local tablica_danych_parametrow_szablonu_strony={}; local rozdzial,czy_tak=stronicowyparser_rozdzialy_modul.CzyZerowyNapisWprowadzeniaTekstu(linia,"",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); </syntaxhighlight> Funckja w tym wypadku zwraca wynik: <syntaxhighlight lang="lua"> local rozdzial,czy_tak="Spis treści",true; </syntaxhighlight> Weźmy inny przykład: <syntaxhighlight lang="lua"> ---- Przykład pierwszy; local linia="'''Nagłówek'''"; local rozdzial,czy_tak="'''Nagłówek'''",true; ---- Przykład drugi; local linia="'''Nagłówek'''."; local rozdzial,czy_tak="'''Nagłówek'''.",false; </syntaxhighlight> == {{Code|p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu}} == Funkcja sprawdza, czy strona jest z przedrostkiem listy: {{Code|:}}, a dla tego, czy linia jest w cudzysłowach pojedyńczych podwójnych, a jeżeli to nie jest prawda, to funkcja zwraca wynik {{Code|false}}, normalnie przy braku parametrów linkowych funkcja zwraca wynik {{Code|true}}, w przeciwnym wypadku on rewiduje, czy w lini są artykuły aktualnej ksiązki, wtedy ona zwraca wynik {{Code|false}}, a jeżeli to jest fałszywa, to zwracany jest wynik {{Code|true}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLinikamiNieWoluminu(przedrotek_listy,linia,z_parametrami_linkowymi,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end; </syntaxhighlight> Parametry funkcji: * {{Code|przedrotek_listy}} - przedrostek listy z linią {{Code|linia}}, * {{Code||linia}} {{LinkPatrz|linia}} - linia bez przedrostka, * {{Code|z_parametrami_linkowymi}} - wartość {{Code|false}}, aby nie sprawdzał właśności artykularnych artykułów na linku, wtedy funkcja na samym końcu przy sprawdzedniu tego parametru,a jeżeli ta wartość, to wtedy otrzymany wynik z funkcji to {{Code|true}}, przeciwnym funkcja idzie dalej, * {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}} - parametry nazw, * {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci}}, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych}}. Funckja wykorzustuje: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|NormaWzoruKodowaniaTekstu}}, {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu}}, i {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} - jak w: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local linia="''[[Książka/Artykuł|Artykuł]]''"; local tablica_analizy_obiektow_strony_dany_modul={}; linia=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); local przedrotek_listy=":"; local tablica_danych_parametrow_szablonu_strony={}; local tab_nazwa_spisow_przekierowaniowych={}; ---- Tutaj funkcja zwróci wartość: true; local czy_tak=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia,false,"","","Książka","","",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); ---- Tutaj funkcja zwróci wartość: false; local czy_tak=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia,true,"","","Książka","","",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); </syntaxhighlight> == {{Code|p.HnNumerWprowadzeniaTekstu}} == Funkcja zwraca numer poziomu nagłówka od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}. Jeśli poziom jest mniejszy niż 6, wtedy wynik zwracany tej funkcji jest liczbą stojącą przy {{Code|h}}. A gdy mamy {{Code|<nowiki><h6></nowiki>}}, jeżeli ten znacznik nie ma klasy ('''class''') atrybutu: {{Code|<nowiki>mw-hnumber-<liczba></nowiki>}}, to zwracane jest: 6, w przeciwnym wypadku daje to wynik, którym jest: {{Code|<liczba>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.HnNumerWprowadzeniaTekstu(nazwa,atrybuty)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa}} - nazwa tagu, * {{Code|atrybuty}} - tabela atrybutów, których z jedną z elementów może być opcja: '''class'''. Funkcja wykorzystuje: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu}}}}, z modułu: {{Code|{{ld2|StronicowyParser/obiekty}}}}, opisana w: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}. Przykłady użycia: ; Pierwszy{{Dk}} {{Code|poziom<6}}{{Dk}} <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local nazwa="h5"; local atrybuty={}; local poziom=stronicowyparser_rozdzialy_modul.HnNumerWprowadzeniaTekstu(nazwa,atrybuty); </syntaxhighlight> Funkcja zwróci wynik: {{Code|5}}. ; Poziom{{Dk}} {{Code|poziom>{{=}}6}}{{Dk}} <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local nazwa="h6"; local atrybuty={};atrybuty["class"]="mw-hnumber-9"; local poziom=stronicowyparser_rozdzialy_modul.HnNumerWprowadzeniaTekstu(nazwa,atrybuty); </syntaxhighlight> Funkcja daje wynik: {{Code|9}}. == {{Code|p.NumeracjaOrazTekstWprowadzeniaTekstu}} == Funkcja zwraca numerację i rozdział całego rozdziału. Jest to funkcja bardzo prosta ponieważ nie analizuje numeracji, czy jest poprawnie podana, czy nie. Zawartość rozdziału musi się składać z numeracji, składający się z numerków oddzielonych kropkami - tutaj też mogą być dwie kropki koło siebie, albo numeracja może składać się z samych kropek, chociaż to jest niepoprawne, ale tak może być, na końcu numeracji może być też krokpa, po nm znajduje się właściwy rozdział zawartości tej wielkiej zawartości (rozdziału). A gdy numeracja nie istnieje, to zamiast niego zwracaną wartością jest wartość pusta. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.NumeracjaOrazTekstWprowadzeniaTekstu(zawartosc)...end; </syntaxhighlight> Parametry funkcji: * {{Code|zawartosc}} - zawartość rozdziału. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local zawartosc="5.1.6. Rozdział"; local numeracja,rozdzial=stronicowyparser_rozdzialy_modul.NumeracjaOrazTekstWprowadzeniaTekstu(zawartosc); </syntaxhighlight> Zwrócone wyniki: <syntaxhighlight lang="lua"> local numeracja,rozdzial="5.1.6.","Rozdział"; </syntaxhighlight> == {{Code|p.ParserPodawaniaNapisuWprowadzeniaTekstu}} == Funkcja sprawdza, czy podany napis, nie dodatni, opisanym nie znakami {{Code|{{=}}}}. Ona bada linie list tzn. zaczynające się od linii znakami: {{Code|<nowiki>[;%*:#]</nowiki>}} (to są rozdziały ujemne), także rozważa też rozdziały zerowe (to nie są nagłówki typu {{Code|<nowiki>== Nagłówek==</nowiki>}}, ani ujemne). Funkcja zalicza do rozdziałów znaczniki utworzone ze znaczników od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, też rozważa parametr w nim: {{Code|<nowiki>mw-hnumber-<liczba></nowiki>}}, wtedy poziom nie musi być od {{Code|1-6}}, ale też i: {{Code|> 6}}. Funkcja sprawdza, czy zaliczyć rozdziały centrowane (znacznikowe: znacznik {{Tag|center}}, i centrowane: {{s|ce}}, {{s|centruj}} i {{s|center}}) do rozdziałów, ona też potrafi odliczyć je od wykrywanych rozdziałów. Nie wyszystkie rozdziały ujemne (rozdziały listy) przez ten twór są przez niego uważane jako rozdziały, które trzeba zaliczyć, podobnie zerowe i centrowane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) ... return function(linia,tak_ce_spis_tresci) ... ---- ciało funkcji zwracanej. Tutaj są sprawdzane, czy podane linie zaliczyć do rozdziałów. Zmienna: tak_ce_spis_tresci, to jest zmienna mówiąca, czy uwzględniać rozdziały centrowane. return linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;---- Zwracane parametry tej funkcji; end; end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni}}, * {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, * {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki}}, * {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci}}, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych}}. Parametry funkcji zwracanej: * {{Code|linia}} {{LinkPatrz|linia}} - linia zakodowana do rozważenia bez rozdziałów dodatnich, aby sprawdzić, czy to jest rozdział, * {{Code|tak_ce_spis_tresci}} - czy ma uwzględniać rozdziały centrowane znacznikowe, czy szablonowe, podane pozyżej. Parametry zwracane przez funkcję, zwracaną przez tą funkcję, opisuje daną linie, czy ją uważać za rozdział, któremu w innej funkcji niż ta można przyporządkować jej zawartość: * {{Code|linia_temp}} - rozważana linia, * {{Code|nazwa_rozdzialu}} - nazwa rozdziału w opisanym linii rozdział, zwykle jest to ciało danego nagłówka, częśc tekstu po znakach listy następujące po sobie od początku linii, * {{Code|poziom_rozdziału}} - poziom danego rozdziału podanego, jest ściśle zależna od tego, czy to jest rozdział centrowany, wtedy rozdział: {{Code|2}}, nagłówek, to liczba przy: {{Code|h}}, dla znaczników nagłówka, lub przy: {{Code|mw-hnumber-<number>}} dla: {{Code|<nowiki><h6></nowiki>}}, * {{Code|poczatek_rozdzialu}} - początek rozdziału, początek rozdziału to jest przedrostek listy, czyli znaki: {{Code|<nowiki>[;%*:#]</nowiki>}}, * {{Code|numeracja_rozdzialu}} - numeracja rozdziału, to są numerki oddzielone od siebie kropką, na końcu tegomoże być ona, ale nie musi, * {{Code|czy_rozdzial_centrowany}} - czy rozdział centrowany, jeśli centrowany to: {{Code|true}}, w przeciwny wypadku: {{Code|nil}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tablica_analizy_obiektow_strony_dany_modul={}; local linia="<h6>Nagłówek</h6>"; linia=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); local tab_nazwa_spisow_przekierowaniowych={}; local nazwa_przestrzeni=""; local nazwa_przestrzeni_ksiazki=""; local nazwa_ksiazki="Książki"; local nazwa_spisu_tresci=""; local pelna_nazwa_spisu_tresci_szablonowa=""; local parser=stronicowyparser_rozdzialy_modul.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) end; local linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true); </syntaxhighlight> Funkcja zwraca wyniki: <syntaxhighlight lang="lua"> local linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany="'\"`UNIQ--ZNACZNIK-1-QINU`\"'","Nagłówek",6,nil,"",nil; </syntaxhighlight> == {{Code|p.TekstPoNapisieWprowadzeniaTekstuStrony}} == Funkcja liczy tekst pomiędzy dwoma {{Code|id}} rozdziałami o danych identyfikatorach na podstawie wydobytego ze strony zawartości. Ten tekst jest uzyskany z funkcji: {{Code|mw.title.makeTitle}}, na podstawie nazwy podanej jako pierwszy argument ramki tablicy transportu, funkcja też potrafić sprawdzić, czy uchwyt pliku jest prawidłowy lub czy plik istnieje, a także czy zawartość strony istnieje, bo np. chcelibyśmy policzyć zawartość strony w przestrzeni {{Np|Special|link=tak}} lub {{Np|Media|link=tak}}, wtedy wiadomo, że otrzymamy, że zawartość strony w tych przestrzeniach nazw nie istnieje, wyjątiem są inne istniejące strony, którego zawartość na pewno istnieje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstPoNapisieWprowadzeniaTekstuStrony(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji rablicy transportu. Parametry ramki funkcji tablicy transprotu dziecka rodzica: * {{Code|1}} - nazwa strony do analizy (rozwijany funkcją: {{Code|frame:preprocess}}), którego chcemy sprawdzić zawartość strony, jeśli istnieje, pomiędzy dwoma {{Code|id}} rozdziałami - funkcja rozwija nazwę strony wwzględem funkcji: {{Code|frame:preprocess}}, * {{Code|2}} - ten rozdział pierwszy, za którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany od poczatku, do pewnego identyfikatora, * {{Code|3}} - ten rozdział drugi, przed którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany do końca, od pewnego identyfikatora. Funkcja ramki uruchamia: {{Code|{{sr|#p.TekstWprowadzeniaTekstu|b=tak}}}}, do wyszukiwania tekstu pomiędzy dwoma rozdziałami, jako typową funkcję biblioteczną. Przykłady użycia w postaci ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> {{#invoke:StronicowyParser/Rozdziały|TekstPoNapisieWprowadzeniaTekstuStrony|Pomoc:Spis treści|Pomoc Wikibooks|Wstęp}}; </syntaxhighlight> Wyniki zwrócone przez ramkę uruchomioną, w rozdzicu, jako dziecko: <syntaxhighlight lang="mediawiki"> '''{{lr|Czym jest Wikibooks|Wikibooks}}''' jest zbiorem darmowych książek pisanych przez internautów. Poniższe strony pomocy zawierają porady i informacje o naszym projekcie. Projekt ten – będący siostrzanym projektem Wikipedii – powstał 10 lipca 2003 r. Polska wersja została uruchomiona '''24 stycznia 2004 roku''' i w tej chwili posiada już {{Forma wyrazu podręcznik po liczbie|'''{{LICZBAPODRĘCZNIKÓW}}'''}}, a w nich {{Forma wyrazu artykuł po liczbie|'''{{NUMBEROFARTICLES}}'''}}. </syntaxhighlight> == {{Code|p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu}} == Funkcja usuwa dolne myślniki i odstępy na końcach podanego tekstu oraz zamienia kolejne je wewnątrz tekstu na jeden dolny myślnik. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przerobienia. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst=" ____ ___ Tekst_________________ _______nagłówka ___ ___ ___ strony ___ ___"; tekst=stronicowyparser_rozdzialy_modul.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(tekst); </syntaxhighlight> Uzyskano wyniki: <syntaxhighlight lang="lua"> tekst="Tekst_nagłówka_strony"; </syntaxhighlight> == {{Code|p.ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony}} == Funkcja zwraca nagłówek (sekcję) rozwinięty o danym identyfikatorze na podstawie wydobytego ze strony zawartości. Ten tekst jest uzyskany z funkcji: {{Code|mw.title.makeTitle}}, na podstawie nazwy podanej jako pierwszy argument ramki tablicy transportu, funkcja też potrafić sprawdzić, czy uchwyt pliku jest prawidłowy lub czy plik istnieje, a także czy zawartość strony istnieje, bo np. chcelibyśmy policzyć zawartość strony w przestrzeni {{Np|Special|link=tak}} lub {{Np|Media|link=tak}}, wtedy wiadomo, że otrzymamy, że zawartość strony w tych przestrzeniach nazw nie istnieje, wyjątiem są inne istniejące strony, którego zawartość na pewno istnieje. Funkcja też uwzględnia, że dany rozdział w tekście może się powtarzać, i dlatego trzeba to robić za pomocą numerków przy {{Code|id}}, aby wyszukać ten ściśle określony . Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu funkcji. Parametry ramki funkcji tablicy transportu: * {{Code|1}} - nazwa strony - funkcja rozwija nazwę strony, * {{Code|2}} - identyfikator rozdzialu - domyślna wartość pusta. Przykłady użycia: <syntaxhighlight lang="lua"> {{#invoke:StronicowyParser/Rozdziały|ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony|Wikibooks:Jak_przeglądać_Wikibooks|Opera}} </syntaxhighlight> Uzyskane wyniki w postaci nierozwiniętego wikikodu: <syntaxhighlight lang="mediawiki"> <templatestyles src="Szablon:Link_wewnętrzny/styles.css"><span class="niew link">[[:w:Opera (program)|Opera]]</span> </syntaxhighlight> == {{Code|p.NumerSekcjiStrony}} == Funkcja liczy numer sekcji rozdziału, który posiada dany identyfikator na podstawie wydobytego ze strony zawartości. Ten tekst jest uzyskany z funkcji: {{Code|mw.title.makeTitle}}, na podstawie nazwy podanej jako pierwszy argument ramki tablicy transportu, funkcja też potrafić sprawdzić, czy uchwyt pliku jest prawidłowy lub czy plik istnieje, a także czy zawartość strony istnieje, bo np. chcelibyśmy policzyć zawartość strony w przestrzeni {{Np|Special|link=tak}} lub {{Np|Media|link=tak}}, wtedy wiadomo, że otrzymamy, że zawartość strony w tych przestrzeniach nazw nie istnieje, wyjątiem są inne istniejące strony, którego zawartość na pewno istnieje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.NumerSekcjiStrony(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji rablicy transportu. Parametry ramki funkcji tablicy transprotu dziecka rodzica: * {{Code|1}} - nazwa strony do analizy (rozwijany funkcją: {{Code|frame:preprocess}}), którego chcemy sprawdzić zawartość strony, jeśli istnieje, pomiędzy dwoma id rozdziałami - funkcja rozwija nazwę strony wwzględem funkcji: frame:preprocess, * {{Code|2}} - ten rozdział pierwszy, za którym jest wyszukiwany tekst - domyślna wartość pusta, Przykład użycia w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="lua"> {{#invoke:StronicowyParser/Rozdziały|NumerSekcjiStrony|Wikibooks:Jak_przeglądać_Wikibooks|Opera}} </syntaxhighlight> Otrzymane wyniki, to przedstawia numer sekcji podanego rozdziału jest: {{Code|9}}. == {{Code|p.TekstWprowadzeniaTekstu}} == Funkcja liczy tekst pomiędzy dwoma rozdziami o danych identyfikatorach {{Code|id}} na podstawie podanego tekstu do rozważań, który może posiadać rozdziały z tymi unikalnymi wartościami. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstWprowadzeniaTekstu(tekst,id_rozdzialu1,id_rozdzialu2)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do analizy, do uzyskania pomiędzy dwoma identyfikatorami tekstu, * {{Code|id_rozdzialu1}} - ten rozdział pierwszy, za którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany od poczatku, do pewnego identyfikatora, * {{Code|id_rozdzialu2}} - ten rozdział drugi, przed którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany do końca, od pewnego identyfikatora. Przykład użycia: <syntaxhighlight lang="lua"> local strona="Pomoc:Spis treści"; local title=mw.title.makeTitle('',strona); local tekst=title:getContent(); local id_rozdzialu1="Pomoc Wikibooks"; local id_rozdzialu2="Wstęp"; local stronicowyparser_rozdzialu_modul=require("Module:StronicowyParser/Rozdziały"); tekst=stronicowyparser_rozdzialu_modul.TekstWprowadzeniaTekstu(tekst,id_rozdzialu1,id_rozdzialu2); </syntaxhighlight> Uzykane wyniki w tekście pomiędzy dwoma identyfikatorami: <syntaxhighlight lang="lua"> local tekst="'''{{lr|Czym jest Wikibooks|Wikibooks}}''' jest zbiorem darmowych książek pisanych przez internautów. Poniższe strony pomocy zawierają porady i informacje o naszym projekcie. Projekt ten – będący siostrzanym projektem Wikipedii – powstał 10 lipca 2003 r. Polska wersja została uruchomiona '''24 stycznia 2004 roku''' i w tej chwili posiada już {{Forma wyrazu podręcznik po liczbie|'''{{LICZBAPODRĘCZNIKÓW}}'''}}, a w nich {{Forma wyrazu artykuł po liczbie|'''{{NUMBEROFARTICLES}}'''}}."; </syntaxhighlight> == {{Code|p.ObiektySzablonoweFormatowaniaTekstu}} == Funkcja, która zastępuje szablony ich ściśle okreslonymi parametrami, ale nie normalnie wszystkimi, według danych, które zwykle są tabelami z modulu: {{Code|{{ld2|StronicowyParser/obiekty}}}}, ale nie zawsze, bo taką tabelę można skonstrułować i włanorecznie podać do tej procedury. Przykładową tą tabelą, którą można znaleźć pod tym modułem, o którym wspomnialiśmy, jest: <syntaxhighlight lang="lua"> p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu={ ["Kolumny"]=2,---- Tutaj parametry, więcej niż jeden, oddzielamy średnikami, ale tutaj mamy jedynie jeden parametr, więc średniki nie są tutaj potrzebne; }; </syntaxhighlight> Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod)...end; </syntaxhighlight> Parametry funkcji: * {{Code|szablon}} - szablon, który chcemy zastąpić odpowiednimi, nie wszystkimi, jego parametrami, * {{Code|szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu}} - tabela informująca, które parametry szablonu należy zastąpić parametrami, tutaj parametry są oddzielone średnikami, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|kod}} {{LinkPatrz|kod}} - kod, dla obiektu {{Code|SZABLON}} {{LinkPatrz|obiekt}}, będący jednocześnie częścią kodów bazy, czyli: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablon="{{Kolumny|2|Oto jest tekst tego szablonu}}"; local tablica_analizy_obiektow_strony_dany_modul={}; local szablonowe_modul=require("Module:Szablonowe"); szablon=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul); local szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu=mw.loadData("Module:StronicowyParser/obiekty").szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu; local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały") local tablica_danych_parametrow_szablonu_strony={}; local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul); local tekst=""; for szablon,obiekt,kod in iterator do if(obiekt=="SZABLON")then tekst=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu,"",tablica_danych_parametrow_szablonu_strony,kod)..tekst; end; end; </syntaxhighlight> Uzyskane wyniki: {{Code|Oto jest tekst tego szablonu}}. == {{Code|p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu}} == Szablon zamieniający wywołania szablonów w tekście na ich odpowiednie wartości, które przedstawiają się za pomocą dodatków o ogólnym wzorze: {{Code|(<name>)}}. Przykładowa tabela z tymi dodatkami jest w: {{Code|{{ld2|StronicowyParser/obiekty}}}}, a w nim tabela: <syntaxhighlight lang="lua"> p.szablony_z_dodatkiem_obiektowym={ ["ISBN"]="ISBN $(1)"; }; </syntaxhighlight> Pierwszym elementem (kluczem) jest nazwa szablonu, a wartością tego elementu jest przepis, jak zastąpić ten szablon nim, a właściwie w nim dodatek, robiąc jeszcze dodatkowe operacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu(szablon,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod)...end; </syntaxhighlight> Parametry funkcji: * {{Code|szablon}} {{LinkPatrz|szablon}} - zakodowany szablon, z możliwym dodatkiem, w nazwie szablonu, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|kod}} {{LinkPatrz|kod}} - kod dla obiektu {{Code|SZABLON}} {{LinkPatrz|obiekt}}. Funkcja na podstawie użytych elementów z: {{Code|{{ld2|Techniczne}}}}, wykonuje operacje na parametrach, używając procedur dla nazw argumentów: {{Code|{{sr|#p["PrzekształćWzórDoCzystegoTekstu"]|p=Techniczne}}}}, i jego wartościach: {{Code|{{sr|#p["TekstBezOdwołańDoParametrówWeWzorze"]|p=Techniczne}}}}, zamieniając elementy typu: {{Code|(<name>)}}, gdzie {{Code|name}}, to nazwa argumentu, na ich wartości. Przykłady użycia: <syntaxhighlight lang="lua"> local szablon="{{ISBN|83-8678-825-9}}"; local tablica_analizy_obiektow_strony_dany_modul={}; local szablonowe_modul=require("Module:Szablonowe"); szablon=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały") local tablica_danych_parametrow_szablonu_strony={}; local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul); local tekst=""; for szablon,obiekt,kod in iterator do if(obiekt=="SZABLON")then tekst=stronicowyparser_rozdzialy_modul.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu(szablon,"",tablica_danych_parametrow_szablonu_strony,kod)..tekst; end; end; </syntaxhighlight> Wynikiem działania tego przykładu, ukryty pod przykładem pod zmienną {{Code|tekst}}, przedstawiamy na podstawie tekstu, którym jest wywołanie szablonu: {{Code|{{s|ISBN|83-8678-825-9}}}}, którym jest ukryty pod zmienną {{Code|szablon}}, w wyniku działania tej funkcji, zamieniany jest on na: {{Code|ISBN 83-8678-825-9}}. == {{Code|p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii}} == Funkcja zamienia znaczniki nowej linii: {{Code|<nowiki><br /></nowiki>}} i kreski poziomej {{Code|<nowiki><hr /></nowiki>}}, a także szablony, ich odpowiedniki wersji znacznikowych, tzn. kolejno: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, na jedną wartość: {{Code|\n\n }} (który charakteryzuje trzy linie, ostatnia linia ma początku ma spację, aby ona przypadkiem nie była traktowana, jako np. rozdział), ustaloną przez nią. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} {{LinkPatrz|tekst}} - zakodowany tekst, na którym operujemy, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} - jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, * {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} - jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="Tekst przed{{Br}}, tekst po <br />, a po nim znacznik: <hr />, i szablon {{Hr}}."; local tablica_analizy_obiektow_strony_dany_modul={}; tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local tablica_danych_parametrow_szablonu_strony={}; tekst=stronicowyparser_rozdzialy_modul.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst,"",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); </syntaxhighlight> Zwrócone wyniki: <syntaxhighlight lang="lua"> local tekst="Tekst przed\n\n , tekst po \n\n , a po nim znacznik: \n\n , i szablon \n\n ."; </syntaxhighlight> == {{Code|p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia}} == Funkcja łączy linie w jedną linię, pomiędzy liniami, które nie udało się połączyć z nimi, a jakie to są linie, otóż te, które reprezentują rozdziały, takie jak: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}}, i linie reprezentowane przez listy, które zaczynają się na: {{Code|<nowiki>[;%*:#]</nowiki>}}. Też nie zostaną połączone z innymi, które zawierają szablony: {{Code|{{s|SpisPozycja}}}}, {{Code|{{s|SpisZw}}}} i {{Code|{{s|SpisTreści}}}}, te szablony sa umieszczone w tabeli, na stronie: {{Code|{{ld2|StronicowyParser/obiekty}}}}, tzn.: <syntaxhighlight lang="lua"> p.szablony_w_nie_w_tej_samej_linii={ ["SpisPozycja"]=true, ["SpisZw"]=true, ["SpisTreści"]=true, }; </syntaxhighlight> Funkcja w wewnątrz linii każdy znacznik: {{Code|<nowiki><br /></nowiki>}} lub {{Code|<nowiki><hr /></nowiki>}} albo {{Code|{{s|Br}}}} lub {{Code|{{s|Hr}}}}, zamienia na {{Code|\n\n }} (przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii|b=tak}}}}), co potem odpowiada trzem liniom, linia pośrodku jest pusta (lub biała), a jeżeli taki znacznik szablonowy, czy znacznikowy, jest na końcu linii, czyli po prostu, wtedy mamy, jeśli: {{Code|<nowiki>^(.*\n)[^%S\n]*\n[^%S\n]*$</nowiki>}}, co odpowiada dwom oddzielnym liniom, na jakie dzielona jest ona, w końcowym tekście. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(tekst,nazwa_modulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_obiektow_strony_dany_modul_uzyskany,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} {{LinkPatrz|tekst}} - zakodowany tekst, na którym operujemy, * {{Code|nazwa_modulu}} - jak w: {{LinkPatrz|nazwa_modulu}}, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_obiektow_strony_dany_modul_uzyskany}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} - jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, * {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} - jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="== Tekst rozdziału ==\nTekst Rozdziału{{Br}}\nTekst rozdziału\nTekst rozdziału\n*# Tekst rodziału\n Tekst rozdziału\n"; local tablica_analizy_obiektow_strony_dany_modul={}; local szablonowe_modul=require("Module:Szablonowe"); tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local tablica_danych_parametrow_szablonu_strony={}; tekst=stronicowyparser_rozdzialy_modul.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(tekst,nil,"",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nil,nil); </syntaxhighlight> Zwracane wyniki: <syntaxhighlight lang="lua"> local tekst="== Tekst rozdziału ==\nTekst Rozdziału\nTekst rozdziału Tekst rozdziału\n*# Tekst rodziału\n'\"`UNIQ--INNEPRE-1-QINU`\"'"; </syntaxhighlight> == {{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 zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza 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 {{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 nie potrzebne. Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalszymo wartościami zwracanymi są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek rozdziału. 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_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; end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst}}, 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, * {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni}}, * {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, * {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki}}, * {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci}}, * {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe, * {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - 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, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych}}, * {{Code|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adreesu szablonu, określa i zawraca jego zawartość, * {{Code|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału), * {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu (może zwracać wartość: {{Code|nil}}) przed samym możliwym kodowaniem, funkcja ta bezpośrednio jest wywoływana w tej funkcji, a pośrednio uruchamiana w: {{Code|{{sr|#p.PobierzSpecjalniePrzygotowanyPreWikikodStrony|p=StronicowyParser/Tekst}}}}, z modułu: {{Code|{{ld2|StronicowyParser/Tekst}}}}. Parametry funkcji zwracanej: * Funkcja nie przyjmuje żadnych parametrów. Jednoczesne parametry zwracane przez funkcję zwracaną: * {{Code|naglowek_tab_aktualnego_rozdzialu}} - tojest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią, * {{Code|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału), * {{Code|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału, * {{Code|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału * {{Code|numeracja_aktualnego_rozdzialu}} - 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}}, * {{Code|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym. 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> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> sss9zjgu03alfpdphf6lp1rufky6j0i 543826 543825 2026-05-22T05:51:20Z Persino 2851 /* {{Code|p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu}} */ 543826 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}} == Wstęp == Poniższe funkcje służą do analizowania stron spisu treści, aby przygotować je do analizowania przez moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}. === Rozdziały === * Dodatnie - dzielimy je na normalne i inne, a te na rozdziały centrowane znacznikowe i centrowane: ** normalne (równaniowe) - to są rozdziały napisane za pomocą znaku {{Code|{{=}}}}, które po prawej i lewej stronie znajduje się tych znaków minimalnie taka sama liczba, a pomiędzy nimi jest zwykły tekst, i nie tylko, są to rozdziały typu, np.: {{Code|<nowiki>== Tekst rozdziału ==</nowiki>}}, ** Inne (nierównaniowe): *** Rozdziały centrowane znacznikowe - są to rozdziały dodatnie napisane za pomocą znacznika: {{Tag|center}}, przykład: {{Tag|center|zawartość=Tekst rozdziału}}, *** Rozdziały centrowane szablonowe - są to rozdziały dodatnie napisane przy pomocy jednego szablonu z: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, przykład: {{Code|{{s|Center|Tekst rozdziału}}}}, * Ujemne - to są listy w liniach zaczynających się od znaku: {{Code|<nowiki>[;%*:#]</nowiki>}}, nie mogą być to znaczniki list, za tymi znakami znajduje się zwykły tekst, i nie tylko, są to rozdziały typu: {{Code|<nowiki>:** Tekst rozdziału</nowiki>}}, * Zerowe - to są rozdziały nie będące ani dodatnie, czy ujemne, ale nie wszystkie takie są zerowe, to zależy od pewnych kryteriów ustalanych przez funkcję: {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|b=tak}}}}, są to rozdziały typu: {{Code|Tekst rozdziału:}}. === Zmienne spotykane w opisywanych tutaj funkcjach === ==== Zmienne bazy ==== W poniższych funkcjach często spotykamy parametry: * {{Code|tekst}} {{Patrz|tekst}} (cały tekst), {{Code|linia}} {{Patrz|linia}} (linia w tekście) - tekst zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje, * {{Code|szablon}} {{Patrz|szablon}} - zakodowany tekst szablonu, jak w: {{LinkPatrz|tekst}}, tym szablonem może być też nie tylko normalnie szablon, ale może być to jakikolwiek instrukcja warunkowa wikikodu, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - pełna nazwa strony jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. ==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ==== * {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} - tabela parametrów szablonu, * {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu, * {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} - tabela jego modyfikatorów. ==== Baza danych wikikodu ==== Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu. ===== Zmienne bazy danych i do nich parametrów ===== * {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} - nazwa modułu (uchwyt) używana zamiast tabeli bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jeżeli taki istnieje w bazie wewnętrznym funkcji: {{Code|{{m|Szablonowe}}}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne, * {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy. ===== Inne elementy bazy ===== * {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} - tabela potrzebna do rozważań dla funkcji: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}, mówiąca coś o przekierowaniach, aby nie liczyć pewnych parametrów od począdku. ==== Funkcje bazy danych i do nich parametrów ==== * {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} - funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} - fukcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. ==== Inne funkcje ==== ===== Funkcje bazy ===== * {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} - służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych, * {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}}{{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} - funkcja służąca do kodowania i modyfikowania tekstu, zastępując w nim elementy ich kodami, tworząc tablicę kodów: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, którego elementu można rozkładać i umieszczać w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} - sprawdzająca, czy w kodzie są kody (czy tekst jest zakodowany), tzn. czy są kody o jakikolwiek {{Code|obiekt}} {{LinkPatrz|obiekt}} (typ obiektu kodu) i {{Code|kod}} {{LinkPatrz|kod}} (o liczbie całkowitej dodatniej). ===== Inne ===== * {{Code|{{sr|p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} - funkcja do analizowania linków zwykłych wewnętrznychi zewnętrznych oraz linków tzw. inteligentnych. ==== Elementy bazy ==== * {{Code|obiekt}} {{Patrz|obiekt}} - parametr, w postaci łańcucha znakowego typu elementu w kodzie, * {{Code|kod}} {{Patrz|kod}} - numer tego elementu o danym typie {{LinkPatrz|obiekt}}. Te numery mogą mieć przerwy, możliwie zaczynające się od jedynki, ale nigdy od zera, dla kodów tego samego typu, bo za pomocą innych funkcji można skasować to z jedynką lub elementy powodujące przerwy, te operacje są według {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}. ==== Inne zmienne ==== * {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} - te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki, * {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} - nazwa artykułu spisu treści. === Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, do usuwania elementów tabeli parametrów === Funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, często ją się definiuje: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local tab_analiza=szablonowe_modul.LiczbyParametroweInformacjiBazyKodowaniaWikikodu(); local __FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE=function(szablon,obiekt,kod,poziom_iteracji) local tab_obiekt=tab_analiza[obiekt]; if(not tab_obiekt)then return;end; for _,wartosc in pairs(tab_obiekt)do local element_wartosc=tablica_danych_parametrow_szablonu_strony[wartosc]; if(element_wartosc)then element_wartosc[kod]=nil; end; end; end; </syntaxhighlight> Ta funkcja usuwa elementy tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, które są reprezentowane przez element liczbowy {{Code|kod}} {{LinkPatrz|kod}}. === Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, do usuwania elementów tabeli bazy === A funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, można zdefiniować, usuwając z tablicy wielowymiarowej jeden element reprezentowany przez dwie zmienne: <syntaxhighlight lang="lua"> local __FUNKCJA_OPERACJE_USUWANIE_BAZOWE=function(szablon,obiekt,kod,poziom_iteracji) tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil; end; </syntaxhighlight> Przy tej funkcji należy uważać, aby nie wywołać błędu języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jakby element {{Code|obiekt}} {{LinkPatrz|obiekt}} nie istniał w tabeli. Ta funkcja usuwa elementy z tablicy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, które są reprezentowane przez zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}. == {{Code|p.NapisWprowadzeniaTekstu}} == Funkcja tworzy nagłówek rozdziału. Dla poziomu większego niż zero, ale mniejszego niż sieden zwraca nagłówek, np.: {{Code|{{=}}{{=}} Nagłówek tekstu {{=}}{{=}}}}, a dla większego niż sześć kreuje je jako, np.: {{Code|<nowiki><h6 class=\"mw-hnumber mw-hnumber-7">Nagłówek tekstu</h6></nowiki>}}. Gdy {{Code|0 < poziom <{{=}} 6}} tworzony jest taki nagłówek, że z lewej i prawej strony jest tyle minimalnie równa się, ile wskazuje poziom. A dla większego niż sześć tworzony jest nagłówek za pomocą znacznika {{Code|<nowiki><h6></nowiki>}} z klasą ogólną {{Code|mw-hnumber}} plus {{Code|mw-hnumber-<poziom>}}, gdzie {{Code|<poziom>}}, to numer danego poziomu. A więc funkcja pozwala tworzyć nagłówki o dowolnym poziomie większym niż zero, o ile {{lpg|Lua}} w {{lpr|Lua|Scribunto}} na to pozwoli, ze strony swoich ograniczeń. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.NapisWprowadzeniaTekstu(rozdzial,poziom)...end; </syntaxhighlight> Parametry funkcji: * {{Code|rozdzial}} - tekst wnętrza rozdziału, * {{Code|poziom}} - numer całkowity dodatni poziomu. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local rozdzial="Tekst rozdziału"; local napis_rozdzialu1=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstu(rozdzial,4); local napis_rozdzialu2=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstu(rozdzial,8); </syntaxhighlight> Wyniki użycia w zmiennych: <syntaxhighlight lang="lua"> local napis_rozdzialu1="\n====Tekst rozdziału====\n"; local napis_rozdzialu2="\n<h6 class=\"mw-hnumber mw-hnumber-8\">Tekst rozdziału</h6>\n"; </syntaxhighlight> == {{Code|p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego}} == Funkcja sprawdzająca, czy we podanym rozdziale, dodatnim lub ujemnym, o pewnym formacie, który musi istnieć, jako format szablonu {{s|HNumer}}, czy istnieje w nim element (obiekt), w postaci zakodowanej, o kodzie: {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}, który nie zawiera w sobie żadnej nowej linii, a jak nie zawiera, to czy ten element jest bezpośrednio elementem rozdziału napisanego wewnątrz tego szablonu. Defnicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego(tekst,zawartosc,obiekt,kod)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst zawartości pierwszego parametru wspomnianego szablonu, * {{Code|zawartość}} - zawartość elementu kodu, * {{Code|obiekt}} {{LinkPatrz|obiekt}} - jaki to jest obiekt, np. {{Code|ZNACZNIK}}, * {{Code|kod}} {{LinkPatrz|kod}} - kod danego obiektu. Funkcja wykorzystuje do swojego liczenia instrukcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{LinkPatrz|NormaWzoruKodowaniaTekstu}}, aby policzyć kod pewnego elementu mając zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}, aby wykorzystać ta metodę. Przykłady użycia, używając omawianego szablonu: <syntaxhighlight lang="mediawiki"> {{HNumer|1= === Oto jest tekst <span class="plainlinks">Zawartość znacznika</span> ===}} {{HNumer|1= * Oto jest tekst <span class="plainlinks">Zawartość znacznika</span>}} </syntaxhighlight> Zmienną {{Code|tekst}} w nich kolejno, które należy zakodować odpowiednio właściwą funkcją, aby otrzymać odpowiednio ich wersje zakodowane, tej zmiennej, aby móc operować tą funkcją, w przeciwnym wypadku tej funkcji nie ma sensu używać, bo otrzymamy nieprzewidywalne skutki: <syntaxhighlight lang="lua"> local tekst="=== Oto jest tekst <span class=\"plainlinks\">Zawartość znacznika</span> ==="; local tekst="* Oto jest tekst <span class=\"plainlinks\">Zawartość znacznika</span>"; </syntaxhighlight> A {{Code|zawartosc}} kolejno, która mieści się w wersji zakodowanej zmiennej {{Code|tekst}} (tutaj mamy wersje jego niezakodowaną): <syntaxhighlight lang="lua"> local zawartosc="Zawartość znacznika"; local zawartosc="Zawartość znacznika"; </syntaxhighlight> W obu przykładach szablon zwraca wartość: {{Code|true}} (bo w tej ostatniej zmiennej nie ma nowej linii), pod warunkiem, że znacznik: {{Code|<nowiki><span class="plainlinks">Zawartość znacznika</span></nowiki>}}, jest zakodowany w zmiennej {{Code|tekst}}, i jest częścią zmiennej tej wersji, co jest uwidocznione kodem, według dwóch kolejnych sprawdzeń wykluczających się: <syntaxhighlight lang="lua"> if(mw.ustring.match(tekst,"\n=+[^\n]*"..kod_norma_wzoru_obiektu.."[^\n]*=+[^%S\n]*\n"))then return true;end; if(mw.ustring.match(tekst,"\n[:#%*;]+[^\n]*"..kod_norma_wzoru_obiektu.."[^\n]*\n"))then return true;end; </syntaxhighlight> Widzimy, że ten znacznik musi leżeć bezpośrednio w zakodowanym tekście (to musi być zakodowane, bo w przeciwnym wypadku nie ma o czym mówić). == {{Code|p.NapisWprowadzeniaTekstuHNumer}} == Generuje napis wprowadzenia tekstu według szablonu {{s|HNumer}}, w którym parametrach szablonów jest równaniowy nagłówek. Szablon dla {{Code|0 < poziom <{{=}} 6}} poziomów, np.: {{Code|{{=}}{{=}} Nagłówek Tekstu {{=}}{{=}}}}, podaje poziom napisu wprowadzenia tekstu przy pomocy funkcji: {{Code|{{sr|#p.PodajNapisPoziomuWprowadzeniaTekstu}}}}, i go zamienia na znaczniki od: {{Code|<nowiki><h1></nowiki>}} do {{Code|<nowiki><h6></nowiki>}}, a dla {{Code|poziom > 6}}, tworzy inny nagłówek, dla {{Code|<nowiki>======== Nagłówek tekstu ========</nowiki>}}, tworzy: {{Code|<nowiki><h6 class="mw-hnumber mw-hnumber-8">Nagłówek tekstu</h6></nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.NapisWprowadzeniaTekstuHNumer(parametr)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - napisz wprowadzenia tekstu dodatni, czyli napisany za pomocą znaku {{Code|{{=}}}}, rozdziały napisane za pomocą list, tzn. napisane tak by zaczynały się od: {{Code|<nowiki>#*:;</nowiki>}}, odpadają, inne listy znacznikowe też. Przykłady użycia reprezentujące dwa rozłączne formy przedstawiające nagłówki, napisane tym samym sposobem: <syntaxhighlight lang="mediawiki"> {{HNumer|1= === Nagłówek tekstu ===}} {{HNumer|1= ======= Nagłówek tekstu =======}} </syntaxhighlight> Wtedy wywołania funkcyjne, a w nich parametr {{Code|parametr}} można zdefiniować dwóch w zmiennych, one są przetwarzane na odpowiednie nagłówki, ten parametr może być zakodowany, ale nie musi tak być, tak otrzymany nagłówek, równie dobrze możemy zakodować, a otrzymany tekst, aby przygotować do dalszej analizy przez inne funkcje, czy metody: <syntaxhighlight lang="lua"> ---- Nagłówki typowo dodatnie local tekst1="=== Nagłówek tekstu ==="; local tekst2="======= Nagłówek tekstu ======="; ---- Wywołania tworzące nagłówki local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local naglowek1=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstuHNumer(tekst1); local naglowek2=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstuHNumer(tekst2); </syntaxhighlight> Funkcja zamienia to kolejno je na standardowe nagłówki {{Strong|HTML}}, które reprezentują nagłówko o dowolnym poziomie, tutaj dla: {{Code|poziom > 6}}, też można tak zrobić poprzez osobne dwie klasy, tzn. klasę ogólną: {{Code|mw-hnumber}}, i szczególną: {{Code|mw-hnumber-<liczba>}}: <syntaxhighlight lang="lua"> local naglowek1="<h3>Nagłówek tekstu</h3>"; local naglowek2="<h6 class=\"mw-hnumber mw-hnumber-8\">Nagłówek tekstu</h6>"; </syntaxhighlight> == {{Code|p.PodajNapisPoziomuWprowadzeniaTekstu}} == Szablon na podstawie dowolnego nagłówka dodatniego równaniowego, tzn. o poziomie o dobrowolnej liczbie, tzn. jego poziom może być: {{Code|poziom > {{=}} 1}}, a nie {{Code|1 <{{=}} poziom <{{=}} 6 }}, równa się, czyli np.: {{Code|<nowiki>====== Tekst nagłówka ======</nowiki>}}, takie poziomy są jedynie interpretowalne przez {{Strong|MediaWiki}}, a ta funkcja również uwzględnia poziomy: {{Code|poziom > 6}}, czyli o liczbie {{Code|{{=}}}} z prawej i lewej strony nagłówka o większej liczbie niż sześć. Metoda podaje jego zawartość (nagłówek jest trimowany funkcją: {{Code|mw.text.trim}}) i poziom, jako dwa kolejne parametry zwracane, tzn. {{Code|naglowek, poziom}}, przez nią. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PodajNapisPoziomuWprowadzeniaTekstu(linia)...end; </syntaxhighlight> Parametry funkcji: * {{Code|linia}} {{LinkPatrz|linia}} - parametr przedstawiający linię rozważanego tekstu, ona może być zakodowana, Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="====== Tekst nagłówka ======"; local naglowek,poziom=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(tekst); </syntaxhighlight> Wynikiem działania tego przykładu: <syntaxhighlight lang="lua"> local naglowek="Tekst nagłówka"; local poziom=6; </syntaxhighlight> Zawartością zmiennej wchodzącej do naszej funkcji musi być sciśle od poczatku do końca nagłówek o wspomnianym formacie. == {{Code|p.PodajTekstHNumerNapisuWprowadzeniaTekstu}} == Szablon podaje zawartość nagłówka rozdziału od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, i jego poziom, czyli liczba stojąca przy {{Code|h}}, tzn, jak mamy {{Code|<nowiki><h5></nowiki>}}, to tą liczbą jest {{Code|5}}. W innych przypadkach szablon zwraca zamiast liczby wartość {{Code|nil}}, np. gdy tag znacznika końcący nagłówek nie zgadza się z tym rozpoczynającym, lub gdy liczba przy {{Code|h}} jest większa niż {{Code|6}}, czyli: {{Code|<nowiki><h7></nowiki>}}, albo gdy np. mamy: {{Code|<nowiki><h67></nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PodajTekstHNumerNapisuWprowadzeniaTekstu(linia)...end; </syntaxhighlight> Parametry funkcji: * {{Code|linia}} - linia rozważanego tekstu, w tekście musi mieścić się ten znacznik, choćby jeden, on nie musi się rozpoczynać na samym początku, a kończyć się na samym końcu, wnętrze jego najlepiej by było zakodowane, najlepiej, by był w nim to znacznik tylko jeden w samej linii zawarty bezpośrednio tam, aby on cały był jednocześnie tą linią. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="<h5 class=\"plainlinks\">Tekst nagłówka</h5>"; local zawartosc,poziom=stronicowyparser_rozdzialy_modul.PodajTekstHNumerNapisuWprowadzeniaTekstu(tekst); </syntaxhighlight> Zwrócone wyniki: <syntaxhighlight lang="lua"> local zawartosc="Tekst nagłówka"; local poziom=5; </syntaxhighlight> == {{Code|p.CzyJestNapisWprowadzeniaTekstu}} == Funkcja podaje, czy w podanym tekście, jest jakikolwiek nagłówek dodatni, tzn. czy napisany za pomocą {{Code|{{=}}}}, tzn. np. {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}}, w zakodowanym tekście. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestNapisWprowadzeniaTekstu(zawartosc)...end; </syntaxhighlight> Parametry funkcji: * {{Code|zawartosc}} - tekst, w którym zawarty jest jakikolwiek nagłówek, ono musi być zakodowane. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="Oto jest tekst\n== Tekst nagłówka == \n Oto jest dalszy tekst\n"; local napis_pierwszy_w_tekscie=stronicowyparser_rozdzialy_modul.CzyJestNapisWprowadzeniaTekstu(tekst); </syntaxhighlight> W powyższym tekście funkcja zwraca wartość równą pierwszemu wyszukiwanemu nagłówkowi, czyli: <syntaxhighlight lang="lua"> local napis_pierwszy_w_tekscie="== Tekst nagłówka == "; </syntaxhighlight> Na podstawie tego wiadomo, że jakikolwiek taki nagłówek w tekście istnieje, gdyby nie było go tam wcale, to funkcja zwracałaby wartość: {{Code|nil}}. == {{Code|p.CzyJestListaNapisuWprowadzeniaTekstu}} == Funkcja sprawdza, czy w tekście występuje nagłówek ujemny, czyli napis wprowadzenia tekstu, w postaci listy zaczynającej się od nowej linii: {{Code|<nowiki>[;%*:#]</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc)...end; </syntaxhighlight> Parametry funkcji: * {{Code|zawartosc}} - tekst, w który ma znajdować napis wprowadzenia tekstu w postaci listy. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local zawartosc="Oto jest tekst\n:* Tekst nagłóka ujemnego\n"; local lista=stronicowyparser_rozdzialy_modul.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc); </syntaxhighlight> Funkcja zwraca wartość niepustą łańcuchową powiadamiającą, że taka lista istnieje, czyli w tym przypadku: {{Code|<nowiki>\n:*</nowiki>}}. == {{Code|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}} == Funkcja sprawdzająca, czy w tekście jest jakolwiek nagłówek podany w postaci równaniowej lub nagłówka od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}. Definicja skrótowa funkcji <syntaxhighlight lang="lua"> function p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz)...end; </syntaxhighlight> Parametry funkcji: * {{Code|wiersz}} - czy w tekście jest wiersz z takim opisywanym nagłókiem. Funkcja używa do sprawdzenia: {{Code|{{sr|#p.CzyJestNapisWprowadzeniaTekstu|b=tak}}}} (czy to jest rozdział dodatni) i {{Code|{{sr|#p.PodajTekstHNumerNapisuWprowadzeniaTekstu|b=tak}}}} (czy ujemny). Przykłady funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst1="====== Tekst nagłówka ======"; local tekst2="<h5 class=\"plainlinks\">Tekst nagłówka</h5>"; local czy_jest_naglowek1,jaki_naglowek1=stronicowyparser_rozdzialy_modul.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(tekst1); local czy_jest_naglowek2,jaki_naglowek2=stronicowyparser_rozdzialy_modul.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(tekst2); </syntaxhighlight> Funkcja zwraca wyniki: <syntaxhighlight lang="lua"> local czy_jest_naglowek1,jaki_naglowek1=true,true; local czy_jest_naglowek2,jaki_naglowek2=true,false; </syntaxhighlight> == {{Code|p.WierszHNumer}} == Funkcja w nagłówkach od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, usuwa w nich nowe linie, zamieniając je po kolei na spację, i dodaje z lewej (przed znacznikiem) i prawej (po) strony tego nagłówka znak nowej linii: {{Code|\n}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.WierszHNumer(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - parametr z tymi nagłówkami. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="Oto jest tekst<h2>Tekst nagłówka\nDalej Tekst nagłówka</h2> Tekst rozdziału\nDalszy tekst rozdziału <h3>Tekst nagłówka\nDalszy nagłówek</h3>"; local wynik=stronicowyparser_rozdzialy_modul.WierszHNumer(tekst); </syntaxhighlight> Zwrócone wyniki: <syntaxhighlight lang="lua"> local wynik="Oto jest tekst\n<h2>Tekst nagłówka Dalej Tekst nagłówka</h2>\n Tekst rozdziału\nDalszy tekst rozdziału \n<h3>Tekst nagłówka Dalszy nagłówek</h3>\n"; </syntaxhighlight> == {{Code|p.CzyJestJakikolwiekLinkArtykularnyTekstu}} == Funkcja sprawdza na podstawie artykułu spisu treści, czy są w nim linki artykularne, które generują szablony, w postaci: {{s|SpisTreści}}, {{s|Sekcja referencyjna}} (lub jego skrót: {{s|Sr}}), {{s|Link wewnętrzny}}, {{s|LinkOgólne}} (lub jego skrót: {{s|Lo}}), czyli linki według tabeli: <syntaxhighlight lang="lua"> p.linki_szablony_elementy_spisu_rzeczy={ ["SpisTreści"]=true, ["Sekcja referencyjna"]=true, ["Sr"]=true, ["Link wewnętrzny"]=true, ["LinkOgólne"]=true, ["Lo"]=true, }; </syntaxhighlight> Tablica opisana w: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}}. Albo inne generujące części spisu treści: {{s|SpisPozycja}} i {{s|SpisZw}}, na podstawie, które są elementami z: <syntaxhighlight lang="lua"> p.inne_linki_szablony_elementy_spisu_rzeczy={ ["SpisPozycja"]={true,numer_link="tyt",}, ["SpisZw"]={false,numer=1,link=2,}, }; </syntaxhighlight> Tablica opisana w: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}}. Bądź szablony linków inteligentnych. Ewentualnie ich skróty, artykułów sprawdzane przy pomocy funkcji: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}}, te szablony mieszczą się w kategorii: {{Code|{{lk2|Szablony linków inteligentnych}}}}, i ich skróty w: {{Code|{{lk2|Przekierowania skrótów do szablonów linków inteligentnych}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestJakikolwiekLinkArtykularnyTekstu(tekst,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} {{LinkPatrz|tekst}} - tekst do sprawdzenia, czy zawiera zakodowane linki artykularne, w postaci szablonów, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Funkcja wykorzystuje: * {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu}}, * {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=Szablonowe}}}} - jednocześnie można powiedzieć, że on sprawdza, czy to jest link inteligentny. Przykład użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="Oto jest tekst {{lpg|Artykuł|Nazwa artykułu}}.\n Oto jest dalszy tekst. {{lu|Artykuł/Podstrona}}."; local tablica_analizy_obiektow_strony_dany_modul={}; local tablica_danych_parametrow_szablonu_strony={}; tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local czy_tak_wynik=stronicowyparser_rozdzialy_modul.CzyJestJakikolwiekLinkArtykularnyTekstu(tekst,"",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); </syntaxhighlight> Powyższe wywołanie zwróci wynik {{Code|true}}. W niej tekst był kodowany przy pomocy funkcji: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, a póżniej był liczony wynik z dyskutowanej funkcji. == {{Code|p.CzyJestInnySpecjalnyTekstowyObiekt}} == Funkcja sprawdza, czy jest obiekt zakodowany o kodzie: {{Code|INNEPRE}}, {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|MATH}}, {{Code|GALERIA}} i {{Code|MAPAOBRAZU}}, a co oznaczają te kody to można zobaczyć w: {{sr|Szablonowe|dokumentacji modułu Szablonowe}}, wtedy funkcja zwraca wynik {{Code|true}}, w przeciwnym wypadku {{Code|false}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestInnySpecjalnyTekstowyObiekt(tekst,tablica_analizy_obiektow_strony_dany_modul)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} {{LinkPatrz|tekst}} - tekst do policzenia, zawierające elementy z omawianymi kodami, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. Funkcja używa iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="\n Oto jest tekst z INNEPRE.\n<pre>Oto jest tekst z PRE</pre>\nOto jest dalszy tekst ze wzorem MATH: <MATH>c^2=a^2+b^2</MATH>."; local tablica_analizy_obiektow_strony_dany_modul={}; tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local czy_tak_wynik=stronicowyparser_rozdzialy_modul.CzyJestInnySpecjalnyTekstowyObiekt(tekst,tablica_analizy_obiektow_strony_dany_modul); </syntaxhighlight> Funkcja zwraca wynik {{Code|true}}. Aby policzyć ten wynik należy wykorzystać funkcję kodującą: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}. == {{Code|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}} == Mając napis rozdziału wraz z numeracją, fukcja liczy właściwy napis i numerację w osobnych po kolei parametrach. Jest to funkcja skomplikowana analizująca, czy numeracja jest poprawna, czy nie, jeśli numeracja jest poprawna, to ona zwraca rozdział bez numeracji i samą numerację, a jeśli nie, to cały rozdział i numerację, będącą ciągiem pustym. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja)...end; </syntaxhighlight> Parametry funkcji: * {{Code|rozdzial_z_numeracja}} - rozdzial z numeracją lub bez. Zwracane wartości: * {{Code|rozdzial}} - rozdzial bez numeracji, * {{Code|numetracja}} - numeracja. Przykłady użycia: ; Pierwszy{{Dk}} {{Code|z numeracją}}{{Dk}} <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local rozdzial_z_numeracja="5.1.2.3. Napis Rozdziału"; local rozdzial,numeracja=stronicowyparser_rozdzialy_modul.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja); </syntaxhighlight> Zwracane wyniki: <syntaxhighlight lang="lua"> local rozdzial="Napis Rozdziału"; local numeracja="5.1.2.3."; </syntaxhighlight> ; Drugi{{Dk}} {{Code|bez numeracji}}{{Dk}} <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local rozdzial_z_numeracja="Napis Rozdziału"; local rozdzial,numeracja=stronicowyparser_rozdzialy_modul.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja); </syntaxhighlight> Zwracane wyniki: <syntaxhighlight lang="lua"> local rozdzial="Napis Rozdziału"; local numeracja=""; </syntaxhighlight> == {{Code|p.__FUNKCJA_KOMPLETOWANIA}} == Funkcja kompletowania, sprawdza, czy nazwa szablonu jest jedna z wielu, tzn.: {{s|Kompletność}}, {{s|Kompletność krótka}}, {{s|Kompletność junior}} i {{s|Książka}}, wtedy zwraca wartość: {{Code|true}}, w przeciwnym wypadku: {{Code|nil}}, a tabela dzięki to wszystko się dzieje, przedstawia się w formie: <syntaxhighlight lang="lua"> p.szablony_kompletowania_stron_woluminu={ ["Kompletność"]=true, ["Kompletność krótka"]=true, ["Kompletność junior"]=true, ["Książka"]=true, }; </syntaxhighlight> Ta tabela mieści się w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}, opisana w: {{Code|{{sr|#p.szablony_kompletowania_stron_woluminu|p=StronicowyParser/obiekty}}}}, wraz z innymi tabelami. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.__FUNKCJA_KOMPLETOWANIA(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, * {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu}}, * {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|kod}} {{LinkPatrz|kod}} - kod, dla jego typu {{Code|SZABLON}} {{LinkPatrz|obiekt}}, potrzebny do poprzedniej tabeli. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local nazwa_szablonu="Kompletność krótka"; local czy_wynik=stronicowyparser_rozdzialy_modul.__FUNKCJA_KOMPLETOWANIA(nil,nazwa_szablonu,nil,nil,nil); </syntaxhighlight> Funkcja w tym przypadku zwróci wynik: {{Code|true}}, bo ta podana nazwa strony należy do naszej tabeli. == {{Code|p.UruchamianieAnalizatoraSpisuRzeczyStrony}} == Funkcja zwraca wynik, czy uruchomić wydzielonie generowania spisu treści z całego jego pierwotnego. Szablon zwraca zawsze wartość {{Code|true}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UruchamianieAnalizatoraSpisuRzeczyStrony()...end; </syntaxhighlight> Funkcja nie przyjmuje żadnego parametru. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local czy_tak=stronicowyparser_rozdzialy_modul.UruchamianieAnalizatoraSpisuRzeczyStrony(); </syntaxhighlight> Funkcja zwraca, jak zawsze wynik, wspomniany w nagłówku. == {{Code|p.CzyZerowyNapisWprowadzeniaTekstu}} == Funkcja sprawdza, czy napis wprowadzenia tekstu, który nie jest dodatni, tzn. np.: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}} (czyli określony wzorem: {{Code|<nowiki>=+[^\n]*[^=]+[^\n]*=+[^%S\n]*</nowiki>}}), ani np.: linia opisywana formułą: {{Code|<nowiki>\n[:#%*;]+[^\n]*</nowiki>}}, zatem to jest przepis na definicję na tą funkcję, ale nie do końca, bo w tej funkcji pierwszy parametr nie może opisywać tego, ani tego. Funkcja zwraca dwa parametry, tzn. otrzymany rozdział i wartość: {{Code|true/false}}. Wartość {{Code|true}} mówi o rozdziale zerowym, a przeciwna wartość, że taki on nie jest. Także funkcja może zwracać wartość {{Code|nil}}, to determiniuje, że to nie jest rozdział wcale zerowy, czyli rozdział świadczący, że to jest zerowy, nie musi być wcale zerowy. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyZerowyNapisWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametr funkcji: * {{Code|linia}} {{LinkPatrz|linia}} - rozważana zakodowana linia, która może być rozdziałem zerowym, ale ona nie może być dodatnia, ani ujemna, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Do liczenia rozdziału spisu treści (rzeczy) funkcja wykorzystuje z modułu {{Code|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}}}: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}} - funkcja sprawdzająca {{Code|true/nil}}, czy w tekście znajduje się rozdział, który jest o nazwie typu: {{Code|Spis treści}} ({{Code|Spis rzeczy}}) - niezależnie jakimi literami napisany, ile tam jest odstępów, a do kompletowania (rozwijania) rozdziałów, służy do tego z {{Code|{{ld2|StronicowyParser/SpisTreści}}}}: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}. Przykłady użycia (w przykładach przyjeliśmy najprostrzy wygląd tych rozdziałów, tzn. ich nie trzeba rozwijać i kompletować dalej, czyli wtedy ta funkcja jest ona w tym jedynie przypadku tożsamościowa): <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local linia="Spis treści"; local tablica_analizy_obiektow_strony_dany_modul={}; ---- Ta część kodu w tym przypadku jest opcjonalna, ze względu na niekodowalną zmienną: linia; local szablonowe_modul=require("Module:Szablonowe"); tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); ---- Koniec tej części kodu; local tablica_danych_parametrow_szablonu_strony={}; local rozdzial,czy_tak=stronicowyparser_rozdzialy_modul.CzyZerowyNapisWprowadzeniaTekstu(linia,"",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); </syntaxhighlight> Funckja w tym wypadku zwraca wynik: <syntaxhighlight lang="lua"> local rozdzial,czy_tak="Spis treści",true; </syntaxhighlight> Weźmy inny przykład: <syntaxhighlight lang="lua"> ---- Przykład pierwszy; local linia="'''Nagłówek'''"; local rozdzial,czy_tak="'''Nagłówek'''",true; ---- Przykład drugi; local linia="'''Nagłówek'''."; local rozdzial,czy_tak="'''Nagłówek'''.",false; </syntaxhighlight> == {{Code|p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu}} == Funkcja sprawdza, czy strona jest z przedrostkiem listy: {{Code|:}}, a dla tego, czy linia jest w cudzysłowach pojedyńczych podwójnych, a jeżeli to nie jest prawda, to funkcja zwraca wynik {{Code|false}}, normalnie przy braku parametrów linkowych funkcja zwraca wynik {{Code|true}}, w przeciwnym wypadku on rewiduje, czy w lini są artykuły aktualnej ksiązki, wtedy ona zwraca wynik {{Code|false}}, a jeżeli to jest fałszywa, to zwracany jest wynik {{Code|true}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLinikamiNieWoluminu(przedrotek_listy,linia,z_parametrami_linkowymi,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end; </syntaxhighlight> Parametry funkcji: * {{Code|przedrotek_listy}} - przedrostek listy z linią {{Code|linia}}, * {{Code||linia}} {{LinkPatrz|linia}} - linia bez przedrostka, * {{Code|z_parametrami_linkowymi}} - wartość {{Code|false}}, aby nie sprawdzał właśności artykularnych artykułów na linku, wtedy funkcja na samym końcu przy sprawdzedniu tego parametru,a jeżeli ta wartość, to wtedy otrzymany wynik z funkcji to {{Code|true}}, przeciwnym funkcja idzie dalej, * {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}} - parametry nazw, * {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci}}, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych}}. Funckja wykorzustuje: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|NormaWzoruKodowaniaTekstu}}, {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu}}, i {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} - jak w: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local linia="''[[Książka/Artykuł|Artykuł]]''"; local tablica_analizy_obiektow_strony_dany_modul={}; linia=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); local przedrotek_listy=":"; local tablica_danych_parametrow_szablonu_strony={}; local tab_nazwa_spisow_przekierowaniowych={}; ---- Tutaj funkcja zwróci wartość: true; local czy_tak=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia,false,"","","Książka","","",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); ---- Tutaj funkcja zwróci wartość: false; local czy_tak=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia,true,"","","Książka","","",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); </syntaxhighlight> == {{Code|p.HnNumerWprowadzeniaTekstu}} == Funkcja zwraca numer poziomu nagłówka od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}. Jeśli poziom jest mniejszy niż 6, wtedy wynik zwracany tej funkcji jest liczbą stojącą przy {{Code|h}}. A gdy mamy {{Code|<nowiki><h6></nowiki>}}, jeżeli ten znacznik nie ma klasy ('''class''') atrybutu: {{Code|<nowiki>mw-hnumber-<liczba></nowiki>}}, to zwracane jest: 6, w przeciwnym wypadku daje to wynik, którym jest: {{Code|<liczba>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.HnNumerWprowadzeniaTekstu(nazwa,atrybuty)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa}} - nazwa tagu, * {{Code|atrybuty}} - tabela atrybutów, których z jedną z elementów może być opcja: '''class'''. Funkcja wykorzystuje: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu}}}}, z modułu: {{Code|{{ld2|StronicowyParser/obiekty}}}}, opisana w: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}. Przykłady użycia: ; Pierwszy{{Dk}} {{Code|poziom<6}}{{Dk}} <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local nazwa="h5"; local atrybuty={}; local poziom=stronicowyparser_rozdzialy_modul.HnNumerWprowadzeniaTekstu(nazwa,atrybuty); </syntaxhighlight> Funkcja zwróci wynik: {{Code|5}}. ; Poziom{{Dk}} {{Code|poziom>{{=}}6}}{{Dk}} <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local nazwa="h6"; local atrybuty={};atrybuty["class"]="mw-hnumber-9"; local poziom=stronicowyparser_rozdzialy_modul.HnNumerWprowadzeniaTekstu(nazwa,atrybuty); </syntaxhighlight> Funkcja daje wynik: {{Code|9}}. == {{Code|p.NumeracjaOrazTekstWprowadzeniaTekstu}} == Funkcja zwraca numerację i rozdział całego rozdziału. Jest to funkcja bardzo prosta ponieważ nie analizuje numeracji, czy jest poprawnie podana, czy nie. Zawartość rozdziału musi się składać z numeracji, składający się z numerków oddzielonych kropkami - tutaj też mogą być dwie kropki koło siebie, albo numeracja może składać się z samych kropek, chociaż to jest niepoprawne, ale tak może być, na końcu numeracji może być też krokpa, po nm znajduje się właściwy rozdział zawartości tej wielkiej zawartości (rozdziału). A gdy numeracja nie istnieje, to zamiast niego zwracaną wartością jest wartość pusta. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.NumeracjaOrazTekstWprowadzeniaTekstu(zawartosc)...end; </syntaxhighlight> Parametry funkcji: * {{Code|zawartosc}} - zawartość rozdziału. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local zawartosc="5.1.6. Rozdział"; local numeracja,rozdzial=stronicowyparser_rozdzialy_modul.NumeracjaOrazTekstWprowadzeniaTekstu(zawartosc); </syntaxhighlight> Zwrócone wyniki: <syntaxhighlight lang="lua"> local numeracja,rozdzial="5.1.6.","Rozdział"; </syntaxhighlight> == {{Code|p.ParserPodawaniaNapisuWprowadzeniaTekstu}} == Funkcja sprawdza, czy podany napis, nie dodatni, opisanym nie znakami {{Code|{{=}}}}. Ona bada linie list tzn. zaczynające się od linii znakami: {{Code|<nowiki>[;%*:#]</nowiki>}} (to są rozdziały ujemne), także rozważa też rozdziały zerowe (to nie są nagłówki typu {{Code|<nowiki>== Nagłówek==</nowiki>}}, ani ujemne). Funkcja zalicza do rozdziałów znaczniki utworzone ze znaczników od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, też rozważa parametr w nim: {{Code|<nowiki>mw-hnumber-<liczba></nowiki>}}, wtedy poziom nie musi być od {{Code|1-6}}, ale też i: {{Code|> 6}}. Funkcja sprawdza, czy zaliczyć rozdziały centrowane (znacznikowe: znacznik {{Tag|center}}, i centrowane: {{s|ce}}, {{s|centruj}} i {{s|center}}) do rozdziałów, ona też potrafi odliczyć je od wykrywanych rozdziałów. Nie wyszystkie rozdziały ujemne (rozdziały listy) przez ten twór są przez niego uważane jako rozdziały, które trzeba zaliczyć, podobnie zerowe i centrowane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) ... return function(linia,tak_ce_spis_tresci) ... ---- ciało funkcji zwracanej. Tutaj są sprawdzane, czy podane linie zaliczyć do rozdziałów. Zmienna: tak_ce_spis_tresci, to jest zmienna mówiąca, czy uwzględniać rozdziały centrowane. return linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;---- Zwracane parametry tej funkcji; end; end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni}}, * {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, * {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki}}, * {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci}}, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych}}. Parametry funkcji zwracanej: * {{Code|linia}} {{LinkPatrz|linia}} - linia zakodowana do rozważenia bez rozdziałów dodatnich, aby sprawdzić, czy to jest rozdział, * {{Code|tak_ce_spis_tresci}} - czy ma uwzględniać rozdziały centrowane znacznikowe, czy szablonowe, podane pozyżej. Parametry zwracane przez funkcję, zwracaną przez tą funkcję, opisuje daną linie, czy ją uważać za rozdział, któremu w innej funkcji niż ta można przyporządkować jej zawartość: * {{Code|linia_temp}} - rozważana linia, * {{Code|nazwa_rozdzialu}} - nazwa rozdziału w opisanym linii rozdział, zwykle jest to ciało danego nagłówka, częśc tekstu po znakach listy następujące po sobie od początku linii, * {{Code|poziom_rozdziału}} - poziom danego rozdziału podanego, jest ściśle zależna od tego, czy to jest rozdział centrowany, wtedy rozdział: {{Code|2}}, nagłówek, to liczba przy: {{Code|h}}, dla znaczników nagłówka, lub przy: {{Code|mw-hnumber-<number>}} dla: {{Code|<nowiki><h6></nowiki>}}, * {{Code|poczatek_rozdzialu}} - początek rozdziału, początek rozdziału to jest przedrostek listy, czyli znaki: {{Code|<nowiki>[;%*:#]</nowiki>}}, * {{Code|numeracja_rozdzialu}} - numeracja rozdziału, to są numerki oddzielone od siebie kropką, na końcu tegomoże być ona, ale nie musi, * {{Code|czy_rozdzial_centrowany}} - czy rozdział centrowany, jeśli centrowany to: {{Code|true}}, w przeciwny wypadku: {{Code|nil}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tablica_analizy_obiektow_strony_dany_modul={}; local linia="<h6>Nagłówek</h6>"; linia=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); local tab_nazwa_spisow_przekierowaniowych={}; local nazwa_przestrzeni=""; local nazwa_przestrzeni_ksiazki=""; local nazwa_ksiazki="Książki"; local nazwa_spisu_tresci=""; local pelna_nazwa_spisu_tresci_szablonowa=""; local parser=stronicowyparser_rozdzialy_modul.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) end; local linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true); </syntaxhighlight> Funkcja zwraca wyniki: <syntaxhighlight lang="lua"> local linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany="'\"`UNIQ--ZNACZNIK-1-QINU`\"'","Nagłówek",6,nil,"",nil; </syntaxhighlight> == {{Code|p.TekstPoNapisieWprowadzeniaTekstuStrony}} == Funkcja liczy tekst pomiędzy dwoma {{Code|id}} rozdziałami o danych identyfikatorach na podstawie wydobytego ze strony zawartości. Ten tekst jest uzyskany z funkcji: {{Code|mw.title.makeTitle}}, na podstawie nazwy podanej jako pierwszy argument ramki tablicy transportu, funkcja też potrafić sprawdzić, czy uchwyt pliku jest prawidłowy lub czy plik istnieje, a także czy zawartość strony istnieje, bo np. chcelibyśmy policzyć zawartość strony w przestrzeni {{Np|Special|link=tak}} lub {{Np|Media|link=tak}}, wtedy wiadomo, że otrzymamy, że zawartość strony w tych przestrzeniach nazw nie istnieje, wyjątiem są inne istniejące strony, którego zawartość na pewno istnieje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstPoNapisieWprowadzeniaTekstuStrony(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji rablicy transportu. Parametry ramki funkcji tablicy transprotu dziecka rodzica: * {{Code|1}} - nazwa strony do analizy (rozwijany funkcją: {{Code|frame:preprocess}}), którego chcemy sprawdzić zawartość strony, jeśli istnieje, pomiędzy dwoma {{Code|id}} rozdziałami - funkcja rozwija nazwę strony wwzględem funkcji: {{Code|frame:preprocess}}, * {{Code|2}} - ten rozdział pierwszy, za którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany od poczatku, do pewnego identyfikatora, * {{Code|3}} - ten rozdział drugi, przed którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany do końca, od pewnego identyfikatora. Funkcja ramki uruchamia: {{Code|{{sr|#p.TekstWprowadzeniaTekstu|b=tak}}}}, do wyszukiwania tekstu pomiędzy dwoma rozdziałami, jako typową funkcję biblioteczną. Przykłady użycia w postaci ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> {{#invoke:StronicowyParser/Rozdziały|TekstPoNapisieWprowadzeniaTekstuStrony|Pomoc:Spis treści|Pomoc Wikibooks|Wstęp}}; </syntaxhighlight> Wyniki zwrócone przez ramkę uruchomioną, w rozdzicu, jako dziecko: <syntaxhighlight lang="mediawiki"> '''{{lr|Czym jest Wikibooks|Wikibooks}}''' jest zbiorem darmowych książek pisanych przez internautów. Poniższe strony pomocy zawierają porady i informacje o naszym projekcie. Projekt ten – będący siostrzanym projektem Wikipedii – powstał 10 lipca 2003 r. Polska wersja została uruchomiona '''24 stycznia 2004 roku''' i w tej chwili posiada już {{Forma wyrazu podręcznik po liczbie|'''{{LICZBAPODRĘCZNIKÓW}}'''}}, a w nich {{Forma wyrazu artykuł po liczbie|'''{{NUMBEROFARTICLES}}'''}}. </syntaxhighlight> == {{Code|p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu}} == Funkcja usuwa dolne myślniki i odstępy na końcach podanego tekstu oraz zamienia kolejne je wewnątrz tekstu na jeden dolny myślnik. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przerobienia. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst=" ____ ___ Tekst_________________ _______nagłówka ___ ___ ___ strony ___ ___"; tekst=stronicowyparser_rozdzialy_modul.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(tekst); </syntaxhighlight> Uzyskano wyniki: <syntaxhighlight lang="lua"> tekst="Tekst_nagłówka_strony"; </syntaxhighlight> == {{Code|p.ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony}} == Funkcja zwraca nagłówek (sekcję) rozwinięty o danym identyfikatorze na podstawie wydobytego ze strony zawartości. Ten tekst jest uzyskany z funkcji: {{Code|mw.title.makeTitle}}, na podstawie nazwy podanej jako pierwszy argument ramki tablicy transportu, funkcja też potrafić sprawdzić, czy uchwyt pliku jest prawidłowy lub czy plik istnieje, a także czy zawartość strony istnieje, bo np. chcelibyśmy policzyć zawartość strony w przestrzeni {{Np|Special|link=tak}} lub {{Np|Media|link=tak}}, wtedy wiadomo, że otrzymamy, że zawartość strony w tych przestrzeniach nazw nie istnieje, wyjątiem są inne istniejące strony, którego zawartość na pewno istnieje. Funkcja też uwzględnia, że dany rozdział w tekście może się powtarzać, i dlatego trzeba to robić za pomocą numerków przy {{Code|id}}, aby wyszukać ten ściśle określony . Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu funkcji. Parametry ramki funkcji tablicy transportu: * {{Code|1}} - nazwa strony - funkcja rozwija nazwę strony, * {{Code|2}} - identyfikator rozdzialu - domyślna wartość pusta. Przykłady użycia: <syntaxhighlight lang="lua"> {{#invoke:StronicowyParser/Rozdziały|ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony|Wikibooks:Jak_przeglądać_Wikibooks|Opera}} </syntaxhighlight> Uzyskane wyniki w postaci nierozwiniętego wikikodu: <syntaxhighlight lang="mediawiki"> <templatestyles src="Szablon:Link_wewnętrzny/styles.css"><span class="niew link">[[:w:Opera (program)|Opera]]</span> </syntaxhighlight> == {{Code|p.NumerSekcjiStrony}} == Funkcja liczy numer sekcji rozdziału, który posiada dany identyfikator na podstawie wydobytego ze strony zawartości. Ten tekst jest uzyskany z funkcji: {{Code|mw.title.makeTitle}}, na podstawie nazwy podanej jako pierwszy argument ramki tablicy transportu, funkcja też potrafić sprawdzić, czy uchwyt pliku jest prawidłowy lub czy plik istnieje, a także czy zawartość strony istnieje, bo np. chcelibyśmy policzyć zawartość strony w przestrzeni {{Np|Special|link=tak}} lub {{Np|Media|link=tak}}, wtedy wiadomo, że otrzymamy, że zawartość strony w tych przestrzeniach nazw nie istnieje, wyjątiem są inne istniejące strony, którego zawartość na pewno istnieje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.NumerSekcjiStrony(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji rablicy transportu. Parametry ramki funkcji tablicy transprotu dziecka rodzica: * {{Code|1}} - nazwa strony do analizy (rozwijany funkcją: {{Code|frame:preprocess}}), którego chcemy sprawdzić zawartość strony, jeśli istnieje, pomiędzy dwoma id rozdziałami - funkcja rozwija nazwę strony wwzględem funkcji: frame:preprocess, * {{Code|2}} - ten rozdział pierwszy, za którym jest wyszukiwany tekst - domyślna wartość pusta, Przykład użycia w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="lua"> {{#invoke:StronicowyParser/Rozdziały|NumerSekcjiStrony|Wikibooks:Jak_przeglądać_Wikibooks|Opera}} </syntaxhighlight> Otrzymane wyniki, to przedstawia numer sekcji podanego rozdziału jest: {{Code|9}}. == {{Code|p.TekstWprowadzeniaTekstu}} == Funkcja liczy tekst pomiędzy dwoma rozdziami o danych identyfikatorach {{Code|id}} na podstawie podanego tekstu do rozważań, który może posiadać rozdziały z tymi unikalnymi wartościami. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstWprowadzeniaTekstu(tekst,id_rozdzialu1,id_rozdzialu2)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do analizy, do uzyskania pomiędzy dwoma identyfikatorami tekstu, * {{Code|id_rozdzialu1}} - ten rozdział pierwszy, za którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany od poczatku, do pewnego identyfikatora, * {{Code|id_rozdzialu2}} - ten rozdział drugi, przed którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany do końca, od pewnego identyfikatora. Przykład użycia: <syntaxhighlight lang="lua"> local strona="Pomoc:Spis treści"; local title=mw.title.makeTitle('',strona); local tekst=title:getContent(); local id_rozdzialu1="Pomoc Wikibooks"; local id_rozdzialu2="Wstęp"; local stronicowyparser_rozdzialu_modul=require("Module:StronicowyParser/Rozdziały"); tekst=stronicowyparser_rozdzialu_modul.TekstWprowadzeniaTekstu(tekst,id_rozdzialu1,id_rozdzialu2); </syntaxhighlight> Uzykane wyniki w tekście pomiędzy dwoma identyfikatorami: <syntaxhighlight lang="lua"> local tekst="'''{{lr|Czym jest Wikibooks|Wikibooks}}''' jest zbiorem darmowych książek pisanych przez internautów. Poniższe strony pomocy zawierają porady i informacje o naszym projekcie. Projekt ten – będący siostrzanym projektem Wikipedii – powstał 10 lipca 2003 r. Polska wersja została uruchomiona '''24 stycznia 2004 roku''' i w tej chwili posiada już {{Forma wyrazu podręcznik po liczbie|'''{{LICZBAPODRĘCZNIKÓW}}'''}}, a w nich {{Forma wyrazu artykuł po liczbie|'''{{NUMBEROFARTICLES}}'''}}."; </syntaxhighlight> == {{Code|p.ObiektySzablonoweFormatowaniaTekstu}} == Funkcja, która zastępuje szablony ich ściśle okreslonymi parametrami, ale nie normalnie wszystkimi, według danych, które zwykle są tabelami z modulu: {{Code|{{ld2|StronicowyParser/obiekty}}}}, ale nie zawsze, bo taką tabelę można skonstrułować i włanorecznie podać do tej procedury. Przykładową tą tabelą, którą można znaleźć pod tym modułem, o którym wspomnialiśmy, jest: <syntaxhighlight lang="lua"> p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu={ ["Kolumny"]=2,---- Tutaj parametry, więcej niż jeden, oddzielamy średnikami, ale tutaj mamy jedynie jeden parametr, więc średniki nie są tutaj potrzebne; }; </syntaxhighlight> Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod)...end; </syntaxhighlight> Parametry funkcji: * {{Code|szablon}} - szablon, który chcemy zastąpić odpowiednimi, nie wszystkimi, jego parametrami, * {{Code|szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu}} - tabela informująca, które parametry szablonu należy zastąpić parametrami, tutaj parametry są oddzielone średnikami, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|kod}} {{LinkPatrz|kod}} - kod, dla obiektu {{Code|SZABLON}} {{LinkPatrz|obiekt}}, będący jednocześnie częścią kodów bazy, czyli: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablon="{{Kolumny|2|Oto jest tekst tego szablonu}}"; local tablica_analizy_obiektow_strony_dany_modul={}; local szablonowe_modul=require("Module:Szablonowe"); szablon=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul); local szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu=mw.loadData("Module:StronicowyParser/obiekty").szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu; local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały") local tablica_danych_parametrow_szablonu_strony={}; local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul); local tekst=""; for szablon,obiekt,kod in iterator do if(obiekt=="SZABLON")then tekst=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu,"",tablica_danych_parametrow_szablonu_strony,kod)..tekst; end; end; </syntaxhighlight> Uzyskane wyniki: {{Code|Oto jest tekst tego szablonu}}. == {{Code|p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu}} == Szablon zamieniający wywołania szablonów w tekście na ich odpowiednie wartości, które przedstawiają się za pomocą dodatków o ogólnym wzorze: {{Code|(<name>)}}. Przykładowa tabela z tymi dodatkami jest w: {{Code|{{ld2|StronicowyParser/obiekty}}}}, a w nim tabela: <syntaxhighlight lang="lua"> p.szablony_z_dodatkiem_obiektowym={ ["ISBN"]="ISBN $(1)"; }; </syntaxhighlight> Opisana w: {{Code|{{sr|#p.szablony_z_dodatkiem_obiektowym|p=StronicowyParser/obiekty}}}}. Pierwszym elementem (kluczem) jest nazwa szablonu, a wartością tego elementu jest przepis, jak zastąpić ten szablon nim, a właściwie w nim dodatek, robiąc jeszcze dodatkowe operacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu(szablon,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod)...end; </syntaxhighlight> Parametry funkcji: * {{Code|szablon}} {{LinkPatrz|szablon}} - zakodowany szablon, z możliwym dodatkiem, w nazwie szablonu, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|kod}} {{LinkPatrz|kod}} - kod dla obiektu {{Code|SZABLON}} {{LinkPatrz|obiekt}}. Funkcja na podstawie użytych elementów z: {{Code|{{ld2|Techniczne}}}}, wykonuje operacje na parametrach, używając procedur dla nazw argumentów: {{Code|{{sr|#p["PrzekształćWzórDoCzystegoTekstu"]|p=Techniczne}}}}, i jego wartościach: {{Code|{{sr|#p["TekstBezOdwołańDoParametrówWeWzorze"]|p=Techniczne}}}}, zamieniając elementy typu: {{Code|(<name>)}}, gdzie {{Code|name}}, to nazwa argumentu, na ich wartości. Przykłady użycia: <syntaxhighlight lang="lua"> local szablon="{{ISBN|83-8678-825-9}}"; local tablica_analizy_obiektow_strony_dany_modul={}; local szablonowe_modul=require("Module:Szablonowe"); szablon=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały") local tablica_danych_parametrow_szablonu_strony={}; local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul); local tekst=""; for szablon,obiekt,kod in iterator do if(obiekt=="SZABLON")then tekst=stronicowyparser_rozdzialy_modul.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu(szablon,"",tablica_danych_parametrow_szablonu_strony,kod)..tekst; end; end; </syntaxhighlight> Wynikiem działania tego przykładu, ukryty pod przykładem pod zmienną {{Code|tekst}}, przedstawiamy na podstawie tekstu, którym jest wywołanie szablonu: {{Code|{{s|ISBN|83-8678-825-9}}}}, którym jest ukryty pod zmienną {{Code|szablon}}, w wyniku działania tej funkcji, zamieniany jest on na: {{Code|ISBN 83-8678-825-9}}. == {{Code|p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii}} == Funkcja zamienia znaczniki nowej linii: {{Code|<nowiki><br /></nowiki>}} i kreski poziomej {{Code|<nowiki><hr /></nowiki>}}, a także szablony, ich odpowiedniki wersji znacznikowych, tzn. kolejno: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, na jedną wartość: {{Code|\n\n }} (który charakteryzuje trzy linie, ostatnia linia ma początku ma spację, aby ona przypadkiem nie była traktowana, jako np. rozdział), ustaloną przez nią. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} {{LinkPatrz|tekst}} - zakodowany tekst, na którym operujemy, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} - jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, * {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} - jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="Tekst przed{{Br}}, tekst po <br />, a po nim znacznik: <hr />, i szablon {{Hr}}."; local tablica_analizy_obiektow_strony_dany_modul={}; tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local tablica_danych_parametrow_szablonu_strony={}; tekst=stronicowyparser_rozdzialy_modul.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst,"",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); </syntaxhighlight> Zwrócone wyniki: <syntaxhighlight lang="lua"> local tekst="Tekst przed\n\n , tekst po \n\n , a po nim znacznik: \n\n , i szablon \n\n ."; </syntaxhighlight> == {{Code|p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia}} == Funkcja łączy linie w jedną linię, pomiędzy liniami, które nie udało się połączyć z nimi, a jakie to są linie, otóż te, które reprezentują rozdziały, takie jak: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}}, i linie reprezentowane przez listy, które zaczynają się na: {{Code|<nowiki>[;%*:#]</nowiki>}}. Też nie zostaną połączone z innymi, które zawierają szablony: {{Code|{{s|SpisPozycja}}}}, {{Code|{{s|SpisZw}}}} i {{Code|{{s|SpisTreści}}}}, te szablony sa umieszczone w tabeli, na stronie: {{Code|{{ld2|StronicowyParser/obiekty}}}}, tzn.: <syntaxhighlight lang="lua"> p.szablony_w_nie_w_tej_samej_linii={ ["SpisPozycja"]=true, ["SpisZw"]=true, ["SpisTreści"]=true, }; </syntaxhighlight> Funkcja w wewnątrz linii każdy znacznik: {{Code|<nowiki><br /></nowiki>}} lub {{Code|<nowiki><hr /></nowiki>}} albo {{Code|{{s|Br}}}} lub {{Code|{{s|Hr}}}}, zamienia na {{Code|\n\n }} (przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii|b=tak}}}}), co potem odpowiada trzem liniom, linia pośrodku jest pusta (lub biała), a jeżeli taki znacznik szablonowy, czy znacznikowy, jest na końcu linii, czyli po prostu, wtedy mamy, jeśli: {{Code|<nowiki>^(.*\n)[^%S\n]*\n[^%S\n]*$</nowiki>}}, co odpowiada dwom oddzielnym liniom, na jakie dzielona jest ona, w końcowym tekście. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(tekst,nazwa_modulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_obiektow_strony_dany_modul_uzyskany,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} {{LinkPatrz|tekst}} - zakodowany tekst, na którym operujemy, * {{Code|nazwa_modulu}} - jak w: {{LinkPatrz|nazwa_modulu}}, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_obiektow_strony_dany_modul_uzyskany}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} - jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, * {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} - jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="== Tekst rozdziału ==\nTekst Rozdziału{{Br}}\nTekst rozdziału\nTekst rozdziału\n*# Tekst rodziału\n Tekst rozdziału\n"; local tablica_analizy_obiektow_strony_dany_modul={}; local szablonowe_modul=require("Module:Szablonowe"); tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local tablica_danych_parametrow_szablonu_strony={}; tekst=stronicowyparser_rozdzialy_modul.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(tekst,nil,"",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nil,nil); </syntaxhighlight> Zwracane wyniki: <syntaxhighlight lang="lua"> local tekst="== Tekst rozdziału ==\nTekst Rozdziału\nTekst rozdziału Tekst rozdziału\n*# Tekst rodziału\n'\"`UNIQ--INNEPRE-1-QINU`\"'"; </syntaxhighlight> == {{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 zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza 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 {{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 nie potrzebne. Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalszymo wartościami zwracanymi są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek rozdziału. 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_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; end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst}}, 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, * {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni}}, * {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, * {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki}}, * {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci}}, * {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe, * {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - 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, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych}}, * {{Code|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adreesu szablonu, określa i zawraca jego zawartość, * {{Code|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału), * {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu (może zwracać wartość: {{Code|nil}}) przed samym możliwym kodowaniem, funkcja ta bezpośrednio jest wywoływana w tej funkcji, a pośrednio uruchamiana w: {{Code|{{sr|#p.PobierzSpecjalniePrzygotowanyPreWikikodStrony|p=StronicowyParser/Tekst}}}}, z modułu: {{Code|{{ld2|StronicowyParser/Tekst}}}}. Parametry funkcji zwracanej: * Funkcja nie przyjmuje żadnych parametrów. Jednoczesne parametry zwracane przez funkcję zwracaną: * {{Code|naglowek_tab_aktualnego_rozdzialu}} - tojest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią, * {{Code|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału), * {{Code|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału, * {{Code|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału * {{Code|numeracja_aktualnego_rozdzialu}} - 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}}, * {{Code|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym. 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> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> c81a4vyp1gl25r9ax42y9dqdr66dwu9 543827 543826 2026-05-22T05:53:35Z Persino 2851 /* {{Code|p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia}} */ 543827 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}} == Wstęp == Poniższe funkcje służą do analizowania stron spisu treści, aby przygotować je do analizowania przez moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}. === Rozdziały === * Dodatnie - dzielimy je na normalne i inne, a te na rozdziały centrowane znacznikowe i centrowane: ** normalne (równaniowe) - to są rozdziały napisane za pomocą znaku {{Code|{{=}}}}, które po prawej i lewej stronie znajduje się tych znaków minimalnie taka sama liczba, a pomiędzy nimi jest zwykły tekst, i nie tylko, są to rozdziały typu, np.: {{Code|<nowiki>== Tekst rozdziału ==</nowiki>}}, ** Inne (nierównaniowe): *** Rozdziały centrowane znacznikowe - są to rozdziały dodatnie napisane za pomocą znacznika: {{Tag|center}}, przykład: {{Tag|center|zawartość=Tekst rozdziału}}, *** Rozdziały centrowane szablonowe - są to rozdziały dodatnie napisane przy pomocy jednego szablonu z: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, przykład: {{Code|{{s|Center|Tekst rozdziału}}}}, * Ujemne - to są listy w liniach zaczynających się od znaku: {{Code|<nowiki>[;%*:#]</nowiki>}}, nie mogą być to znaczniki list, za tymi znakami znajduje się zwykły tekst, i nie tylko, są to rozdziały typu: {{Code|<nowiki>:** Tekst rozdziału</nowiki>}}, * Zerowe - to są rozdziały nie będące ani dodatnie, czy ujemne, ale nie wszystkie takie są zerowe, to zależy od pewnych kryteriów ustalanych przez funkcję: {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|b=tak}}}}, są to rozdziały typu: {{Code|Tekst rozdziału:}}. === Zmienne spotykane w opisywanych tutaj funkcjach === ==== Zmienne bazy ==== W poniższych funkcjach często spotykamy parametry: * {{Code|tekst}} {{Patrz|tekst}} (cały tekst), {{Code|linia}} {{Patrz|linia}} (linia w tekście) - tekst zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje, * {{Code|szablon}} {{Patrz|szablon}} - zakodowany tekst szablonu, jak w: {{LinkPatrz|tekst}}, tym szablonem może być też nie tylko normalnie szablon, ale może być to jakikolwiek instrukcja warunkowa wikikodu, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - pełna nazwa strony jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. ==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ==== * {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} - tabela parametrów szablonu, * {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu, * {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} - tabela jego modyfikatorów. ==== Baza danych wikikodu ==== Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu. ===== Zmienne bazy danych i do nich parametrów ===== * {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} - nazwa modułu (uchwyt) używana zamiast tabeli bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jeżeli taki istnieje w bazie wewnętrznym funkcji: {{Code|{{m|Szablonowe}}}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne, * {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy. ===== Inne elementy bazy ===== * {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} - tabela potrzebna do rozważań dla funkcji: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}, mówiąca coś o przekierowaniach, aby nie liczyć pewnych parametrów od począdku. ==== Funkcje bazy danych i do nich parametrów ==== * {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} - funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} - fukcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. ==== Inne funkcje ==== ===== Funkcje bazy ===== * {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} - służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych, * {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}}{{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} - funkcja służąca do kodowania i modyfikowania tekstu, zastępując w nim elementy ich kodami, tworząc tablicę kodów: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, którego elementu można rozkładać i umieszczać w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} - sprawdzająca, czy w kodzie są kody (czy tekst jest zakodowany), tzn. czy są kody o jakikolwiek {{Code|obiekt}} {{LinkPatrz|obiekt}} (typ obiektu kodu) i {{Code|kod}} {{LinkPatrz|kod}} (o liczbie całkowitej dodatniej). ===== Inne ===== * {{Code|{{sr|p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} - funkcja do analizowania linków zwykłych wewnętrznychi zewnętrznych oraz linków tzw. inteligentnych. ==== Elementy bazy ==== * {{Code|obiekt}} {{Patrz|obiekt}} - parametr, w postaci łańcucha znakowego typu elementu w kodzie, * {{Code|kod}} {{Patrz|kod}} - numer tego elementu o danym typie {{LinkPatrz|obiekt}}. Te numery mogą mieć przerwy, możliwie zaczynające się od jedynki, ale nigdy od zera, dla kodów tego samego typu, bo za pomocą innych funkcji można skasować to z jedynką lub elementy powodujące przerwy, te operacje są według {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}. ==== Inne zmienne ==== * {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} - te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki, * {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} - nazwa artykułu spisu treści. === Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, do usuwania elementów tabeli parametrów === Funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, często ją się definiuje: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local tab_analiza=szablonowe_modul.LiczbyParametroweInformacjiBazyKodowaniaWikikodu(); local __FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE=function(szablon,obiekt,kod,poziom_iteracji) local tab_obiekt=tab_analiza[obiekt]; if(not tab_obiekt)then return;end; for _,wartosc in pairs(tab_obiekt)do local element_wartosc=tablica_danych_parametrow_szablonu_strony[wartosc]; if(element_wartosc)then element_wartosc[kod]=nil; end; end; end; </syntaxhighlight> Ta funkcja usuwa elementy tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, które są reprezentowane przez element liczbowy {{Code|kod}} {{LinkPatrz|kod}}. === Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, do usuwania elementów tabeli bazy === A funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, można zdefiniować, usuwając z tablicy wielowymiarowej jeden element reprezentowany przez dwie zmienne: <syntaxhighlight lang="lua"> local __FUNKCJA_OPERACJE_USUWANIE_BAZOWE=function(szablon,obiekt,kod,poziom_iteracji) tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil; end; </syntaxhighlight> Przy tej funkcji należy uważać, aby nie wywołać błędu języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jakby element {{Code|obiekt}} {{LinkPatrz|obiekt}} nie istniał w tabeli. Ta funkcja usuwa elementy z tablicy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, które są reprezentowane przez zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}. == {{Code|p.NapisWprowadzeniaTekstu}} == Funkcja tworzy nagłówek rozdziału. Dla poziomu większego niż zero, ale mniejszego niż sieden zwraca nagłówek, np.: {{Code|{{=}}{{=}} Nagłówek tekstu {{=}}{{=}}}}, a dla większego niż sześć kreuje je jako, np.: {{Code|<nowiki><h6 class=\"mw-hnumber mw-hnumber-7">Nagłówek tekstu</h6></nowiki>}}. Gdy {{Code|0 < poziom <{{=}} 6}} tworzony jest taki nagłówek, że z lewej i prawej strony jest tyle minimalnie równa się, ile wskazuje poziom. A dla większego niż sześć tworzony jest nagłówek za pomocą znacznika {{Code|<nowiki><h6></nowiki>}} z klasą ogólną {{Code|mw-hnumber}} plus {{Code|mw-hnumber-<poziom>}}, gdzie {{Code|<poziom>}}, to numer danego poziomu. A więc funkcja pozwala tworzyć nagłówki o dowolnym poziomie większym niż zero, o ile {{lpg|Lua}} w {{lpr|Lua|Scribunto}} na to pozwoli, ze strony swoich ograniczeń. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.NapisWprowadzeniaTekstu(rozdzial,poziom)...end; </syntaxhighlight> Parametry funkcji: * {{Code|rozdzial}} - tekst wnętrza rozdziału, * {{Code|poziom}} - numer całkowity dodatni poziomu. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local rozdzial="Tekst rozdziału"; local napis_rozdzialu1=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstu(rozdzial,4); local napis_rozdzialu2=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstu(rozdzial,8); </syntaxhighlight> Wyniki użycia w zmiennych: <syntaxhighlight lang="lua"> local napis_rozdzialu1="\n====Tekst rozdziału====\n"; local napis_rozdzialu2="\n<h6 class=\"mw-hnumber mw-hnumber-8\">Tekst rozdziału</h6>\n"; </syntaxhighlight> == {{Code|p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego}} == Funkcja sprawdzająca, czy we podanym rozdziale, dodatnim lub ujemnym, o pewnym formacie, który musi istnieć, jako format szablonu {{s|HNumer}}, czy istnieje w nim element (obiekt), w postaci zakodowanej, o kodzie: {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}, który nie zawiera w sobie żadnej nowej linii, a jak nie zawiera, to czy ten element jest bezpośrednio elementem rozdziału napisanego wewnątrz tego szablonu. Defnicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego(tekst,zawartosc,obiekt,kod)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst zawartości pierwszego parametru wspomnianego szablonu, * {{Code|zawartość}} - zawartość elementu kodu, * {{Code|obiekt}} {{LinkPatrz|obiekt}} - jaki to jest obiekt, np. {{Code|ZNACZNIK}}, * {{Code|kod}} {{LinkPatrz|kod}} - kod danego obiektu. Funkcja wykorzystuje do swojego liczenia instrukcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{LinkPatrz|NormaWzoruKodowaniaTekstu}}, aby policzyć kod pewnego elementu mając zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}, aby wykorzystać ta metodę. Przykłady użycia, używając omawianego szablonu: <syntaxhighlight lang="mediawiki"> {{HNumer|1= === Oto jest tekst <span class="plainlinks">Zawartość znacznika</span> ===}} {{HNumer|1= * Oto jest tekst <span class="plainlinks">Zawartość znacznika</span>}} </syntaxhighlight> Zmienną {{Code|tekst}} w nich kolejno, które należy zakodować odpowiednio właściwą funkcją, aby otrzymać odpowiednio ich wersje zakodowane, tej zmiennej, aby móc operować tą funkcją, w przeciwnym wypadku tej funkcji nie ma sensu używać, bo otrzymamy nieprzewidywalne skutki: <syntaxhighlight lang="lua"> local tekst="=== Oto jest tekst <span class=\"plainlinks\">Zawartość znacznika</span> ==="; local tekst="* Oto jest tekst <span class=\"plainlinks\">Zawartość znacznika</span>"; </syntaxhighlight> A {{Code|zawartosc}} kolejno, która mieści się w wersji zakodowanej zmiennej {{Code|tekst}} (tutaj mamy wersje jego niezakodowaną): <syntaxhighlight lang="lua"> local zawartosc="Zawartość znacznika"; local zawartosc="Zawartość znacznika"; </syntaxhighlight> W obu przykładach szablon zwraca wartość: {{Code|true}} (bo w tej ostatniej zmiennej nie ma nowej linii), pod warunkiem, że znacznik: {{Code|<nowiki><span class="plainlinks">Zawartość znacznika</span></nowiki>}}, jest zakodowany w zmiennej {{Code|tekst}}, i jest częścią zmiennej tej wersji, co jest uwidocznione kodem, według dwóch kolejnych sprawdzeń wykluczających się: <syntaxhighlight lang="lua"> if(mw.ustring.match(tekst,"\n=+[^\n]*"..kod_norma_wzoru_obiektu.."[^\n]*=+[^%S\n]*\n"))then return true;end; if(mw.ustring.match(tekst,"\n[:#%*;]+[^\n]*"..kod_norma_wzoru_obiektu.."[^\n]*\n"))then return true;end; </syntaxhighlight> Widzimy, że ten znacznik musi leżeć bezpośrednio w zakodowanym tekście (to musi być zakodowane, bo w przeciwnym wypadku nie ma o czym mówić). == {{Code|p.NapisWprowadzeniaTekstuHNumer}} == Generuje napis wprowadzenia tekstu według szablonu {{s|HNumer}}, w którym parametrach szablonów jest równaniowy nagłówek. Szablon dla {{Code|0 < poziom <{{=}} 6}} poziomów, np.: {{Code|{{=}}{{=}} Nagłówek Tekstu {{=}}{{=}}}}, podaje poziom napisu wprowadzenia tekstu przy pomocy funkcji: {{Code|{{sr|#p.PodajNapisPoziomuWprowadzeniaTekstu}}}}, i go zamienia na znaczniki od: {{Code|<nowiki><h1></nowiki>}} do {{Code|<nowiki><h6></nowiki>}}, a dla {{Code|poziom > 6}}, tworzy inny nagłówek, dla {{Code|<nowiki>======== Nagłówek tekstu ========</nowiki>}}, tworzy: {{Code|<nowiki><h6 class="mw-hnumber mw-hnumber-8">Nagłówek tekstu</h6></nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.NapisWprowadzeniaTekstuHNumer(parametr)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - napisz wprowadzenia tekstu dodatni, czyli napisany za pomocą znaku {{Code|{{=}}}}, rozdziały napisane za pomocą list, tzn. napisane tak by zaczynały się od: {{Code|<nowiki>#*:;</nowiki>}}, odpadają, inne listy znacznikowe też. Przykłady użycia reprezentujące dwa rozłączne formy przedstawiające nagłówki, napisane tym samym sposobem: <syntaxhighlight lang="mediawiki"> {{HNumer|1= === Nagłówek tekstu ===}} {{HNumer|1= ======= Nagłówek tekstu =======}} </syntaxhighlight> Wtedy wywołania funkcyjne, a w nich parametr {{Code|parametr}} można zdefiniować dwóch w zmiennych, one są przetwarzane na odpowiednie nagłówki, ten parametr może być zakodowany, ale nie musi tak być, tak otrzymany nagłówek, równie dobrze możemy zakodować, a otrzymany tekst, aby przygotować do dalszej analizy przez inne funkcje, czy metody: <syntaxhighlight lang="lua"> ---- Nagłówki typowo dodatnie local tekst1="=== Nagłówek tekstu ==="; local tekst2="======= Nagłówek tekstu ======="; ---- Wywołania tworzące nagłówki local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local naglowek1=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstuHNumer(tekst1); local naglowek2=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstuHNumer(tekst2); </syntaxhighlight> Funkcja zamienia to kolejno je na standardowe nagłówki {{Strong|HTML}}, które reprezentują nagłówko o dowolnym poziomie, tutaj dla: {{Code|poziom > 6}}, też można tak zrobić poprzez osobne dwie klasy, tzn. klasę ogólną: {{Code|mw-hnumber}}, i szczególną: {{Code|mw-hnumber-<liczba>}}: <syntaxhighlight lang="lua"> local naglowek1="<h3>Nagłówek tekstu</h3>"; local naglowek2="<h6 class=\"mw-hnumber mw-hnumber-8\">Nagłówek tekstu</h6>"; </syntaxhighlight> == {{Code|p.PodajNapisPoziomuWprowadzeniaTekstu}} == Szablon na podstawie dowolnego nagłówka dodatniego równaniowego, tzn. o poziomie o dobrowolnej liczbie, tzn. jego poziom może być: {{Code|poziom > {{=}} 1}}, a nie {{Code|1 <{{=}} poziom <{{=}} 6 }}, równa się, czyli np.: {{Code|<nowiki>====== Tekst nagłówka ======</nowiki>}}, takie poziomy są jedynie interpretowalne przez {{Strong|MediaWiki}}, a ta funkcja również uwzględnia poziomy: {{Code|poziom > 6}}, czyli o liczbie {{Code|{{=}}}} z prawej i lewej strony nagłówka o większej liczbie niż sześć. Metoda podaje jego zawartość (nagłówek jest trimowany funkcją: {{Code|mw.text.trim}}) i poziom, jako dwa kolejne parametry zwracane, tzn. {{Code|naglowek, poziom}}, przez nią. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PodajNapisPoziomuWprowadzeniaTekstu(linia)...end; </syntaxhighlight> Parametry funkcji: * {{Code|linia}} {{LinkPatrz|linia}} - parametr przedstawiający linię rozważanego tekstu, ona może być zakodowana, Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="====== Tekst nagłówka ======"; local naglowek,poziom=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(tekst); </syntaxhighlight> Wynikiem działania tego przykładu: <syntaxhighlight lang="lua"> local naglowek="Tekst nagłówka"; local poziom=6; </syntaxhighlight> Zawartością zmiennej wchodzącej do naszej funkcji musi być sciśle od poczatku do końca nagłówek o wspomnianym formacie. == {{Code|p.PodajTekstHNumerNapisuWprowadzeniaTekstu}} == Szablon podaje zawartość nagłówka rozdziału od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, i jego poziom, czyli liczba stojąca przy {{Code|h}}, tzn, jak mamy {{Code|<nowiki><h5></nowiki>}}, to tą liczbą jest {{Code|5}}. W innych przypadkach szablon zwraca zamiast liczby wartość {{Code|nil}}, np. gdy tag znacznika końcący nagłówek nie zgadza się z tym rozpoczynającym, lub gdy liczba przy {{Code|h}} jest większa niż {{Code|6}}, czyli: {{Code|<nowiki><h7></nowiki>}}, albo gdy np. mamy: {{Code|<nowiki><h67></nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PodajTekstHNumerNapisuWprowadzeniaTekstu(linia)...end; </syntaxhighlight> Parametry funkcji: * {{Code|linia}} - linia rozważanego tekstu, w tekście musi mieścić się ten znacznik, choćby jeden, on nie musi się rozpoczynać na samym początku, a kończyć się na samym końcu, wnętrze jego najlepiej by było zakodowane, najlepiej, by był w nim to znacznik tylko jeden w samej linii zawarty bezpośrednio tam, aby on cały był jednocześnie tą linią. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="<h5 class=\"plainlinks\">Tekst nagłówka</h5>"; local zawartosc,poziom=stronicowyparser_rozdzialy_modul.PodajTekstHNumerNapisuWprowadzeniaTekstu(tekst); </syntaxhighlight> Zwrócone wyniki: <syntaxhighlight lang="lua"> local zawartosc="Tekst nagłówka"; local poziom=5; </syntaxhighlight> == {{Code|p.CzyJestNapisWprowadzeniaTekstu}} == Funkcja podaje, czy w podanym tekście, jest jakikolwiek nagłówek dodatni, tzn. czy napisany za pomocą {{Code|{{=}}}}, tzn. np. {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}}, w zakodowanym tekście. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestNapisWprowadzeniaTekstu(zawartosc)...end; </syntaxhighlight> Parametry funkcji: * {{Code|zawartosc}} - tekst, w którym zawarty jest jakikolwiek nagłówek, ono musi być zakodowane. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="Oto jest tekst\n== Tekst nagłówka == \n Oto jest dalszy tekst\n"; local napis_pierwszy_w_tekscie=stronicowyparser_rozdzialy_modul.CzyJestNapisWprowadzeniaTekstu(tekst); </syntaxhighlight> W powyższym tekście funkcja zwraca wartość równą pierwszemu wyszukiwanemu nagłówkowi, czyli: <syntaxhighlight lang="lua"> local napis_pierwszy_w_tekscie="== Tekst nagłówka == "; </syntaxhighlight> Na podstawie tego wiadomo, że jakikolwiek taki nagłówek w tekście istnieje, gdyby nie było go tam wcale, to funkcja zwracałaby wartość: {{Code|nil}}. == {{Code|p.CzyJestListaNapisuWprowadzeniaTekstu}} == Funkcja sprawdza, czy w tekście występuje nagłówek ujemny, czyli napis wprowadzenia tekstu, w postaci listy zaczynającej się od nowej linii: {{Code|<nowiki>[;%*:#]</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc)...end; </syntaxhighlight> Parametry funkcji: * {{Code|zawartosc}} - tekst, w który ma znajdować napis wprowadzenia tekstu w postaci listy. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local zawartosc="Oto jest tekst\n:* Tekst nagłóka ujemnego\n"; local lista=stronicowyparser_rozdzialy_modul.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc); </syntaxhighlight> Funkcja zwraca wartość niepustą łańcuchową powiadamiającą, że taka lista istnieje, czyli w tym przypadku: {{Code|<nowiki>\n:*</nowiki>}}. == {{Code|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}} == Funkcja sprawdzająca, czy w tekście jest jakolwiek nagłówek podany w postaci równaniowej lub nagłówka od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}. Definicja skrótowa funkcji <syntaxhighlight lang="lua"> function p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz)...end; </syntaxhighlight> Parametry funkcji: * {{Code|wiersz}} - czy w tekście jest wiersz z takim opisywanym nagłókiem. Funkcja używa do sprawdzenia: {{Code|{{sr|#p.CzyJestNapisWprowadzeniaTekstu|b=tak}}}} (czy to jest rozdział dodatni) i {{Code|{{sr|#p.PodajTekstHNumerNapisuWprowadzeniaTekstu|b=tak}}}} (czy ujemny). Przykłady funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst1="====== Tekst nagłówka ======"; local tekst2="<h5 class=\"plainlinks\">Tekst nagłówka</h5>"; local czy_jest_naglowek1,jaki_naglowek1=stronicowyparser_rozdzialy_modul.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(tekst1); local czy_jest_naglowek2,jaki_naglowek2=stronicowyparser_rozdzialy_modul.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(tekst2); </syntaxhighlight> Funkcja zwraca wyniki: <syntaxhighlight lang="lua"> local czy_jest_naglowek1,jaki_naglowek1=true,true; local czy_jest_naglowek2,jaki_naglowek2=true,false; </syntaxhighlight> == {{Code|p.WierszHNumer}} == Funkcja w nagłówkach od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, usuwa w nich nowe linie, zamieniając je po kolei na spację, i dodaje z lewej (przed znacznikiem) i prawej (po) strony tego nagłówka znak nowej linii: {{Code|\n}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.WierszHNumer(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - parametr z tymi nagłówkami. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="Oto jest tekst<h2>Tekst nagłówka\nDalej Tekst nagłówka</h2> Tekst rozdziału\nDalszy tekst rozdziału <h3>Tekst nagłówka\nDalszy nagłówek</h3>"; local wynik=stronicowyparser_rozdzialy_modul.WierszHNumer(tekst); </syntaxhighlight> Zwrócone wyniki: <syntaxhighlight lang="lua"> local wynik="Oto jest tekst\n<h2>Tekst nagłówka Dalej Tekst nagłówka</h2>\n Tekst rozdziału\nDalszy tekst rozdziału \n<h3>Tekst nagłówka Dalszy nagłówek</h3>\n"; </syntaxhighlight> == {{Code|p.CzyJestJakikolwiekLinkArtykularnyTekstu}} == Funkcja sprawdza na podstawie artykułu spisu treści, czy są w nim linki artykularne, które generują szablony, w postaci: {{s|SpisTreści}}, {{s|Sekcja referencyjna}} (lub jego skrót: {{s|Sr}}), {{s|Link wewnętrzny}}, {{s|LinkOgólne}} (lub jego skrót: {{s|Lo}}), czyli linki według tabeli: <syntaxhighlight lang="lua"> p.linki_szablony_elementy_spisu_rzeczy={ ["SpisTreści"]=true, ["Sekcja referencyjna"]=true, ["Sr"]=true, ["Link wewnętrzny"]=true, ["LinkOgólne"]=true, ["Lo"]=true, }; </syntaxhighlight> Tablica opisana w: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}}. Albo inne generujące części spisu treści: {{s|SpisPozycja}} i {{s|SpisZw}}, na podstawie, które są elementami z: <syntaxhighlight lang="lua"> p.inne_linki_szablony_elementy_spisu_rzeczy={ ["SpisPozycja"]={true,numer_link="tyt",}, ["SpisZw"]={false,numer=1,link=2,}, }; </syntaxhighlight> Tablica opisana w: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}}. Bądź szablony linków inteligentnych. Ewentualnie ich skróty, artykułów sprawdzane przy pomocy funkcji: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}}, te szablony mieszczą się w kategorii: {{Code|{{lk2|Szablony linków inteligentnych}}}}, i ich skróty w: {{Code|{{lk2|Przekierowania skrótów do szablonów linków inteligentnych}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestJakikolwiekLinkArtykularnyTekstu(tekst,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} {{LinkPatrz|tekst}} - tekst do sprawdzenia, czy zawiera zakodowane linki artykularne, w postaci szablonów, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Funkcja wykorzystuje: * {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu}}, * {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=Szablonowe}}}} - jednocześnie można powiedzieć, że on sprawdza, czy to jest link inteligentny. Przykład użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="Oto jest tekst {{lpg|Artykuł|Nazwa artykułu}}.\n Oto jest dalszy tekst. {{lu|Artykuł/Podstrona}}."; local tablica_analizy_obiektow_strony_dany_modul={}; local tablica_danych_parametrow_szablonu_strony={}; tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local czy_tak_wynik=stronicowyparser_rozdzialy_modul.CzyJestJakikolwiekLinkArtykularnyTekstu(tekst,"",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); </syntaxhighlight> Powyższe wywołanie zwróci wynik {{Code|true}}. W niej tekst był kodowany przy pomocy funkcji: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, a póżniej był liczony wynik z dyskutowanej funkcji. == {{Code|p.CzyJestInnySpecjalnyTekstowyObiekt}} == Funkcja sprawdza, czy jest obiekt zakodowany o kodzie: {{Code|INNEPRE}}, {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|MATH}}, {{Code|GALERIA}} i {{Code|MAPAOBRAZU}}, a co oznaczają te kody to można zobaczyć w: {{sr|Szablonowe|dokumentacji modułu Szablonowe}}, wtedy funkcja zwraca wynik {{Code|true}}, w przeciwnym wypadku {{Code|false}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestInnySpecjalnyTekstowyObiekt(tekst,tablica_analizy_obiektow_strony_dany_modul)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} {{LinkPatrz|tekst}} - tekst do policzenia, zawierające elementy z omawianymi kodami, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. Funkcja używa iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="\n Oto jest tekst z INNEPRE.\n<pre>Oto jest tekst z PRE</pre>\nOto jest dalszy tekst ze wzorem MATH: <MATH>c^2=a^2+b^2</MATH>."; local tablica_analizy_obiektow_strony_dany_modul={}; tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local czy_tak_wynik=stronicowyparser_rozdzialy_modul.CzyJestInnySpecjalnyTekstowyObiekt(tekst,tablica_analizy_obiektow_strony_dany_modul); </syntaxhighlight> Funkcja zwraca wynik {{Code|true}}. Aby policzyć ten wynik należy wykorzystać funkcję kodującą: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}. == {{Code|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}} == Mając napis rozdziału wraz z numeracją, fukcja liczy właściwy napis i numerację w osobnych po kolei parametrach. Jest to funkcja skomplikowana analizująca, czy numeracja jest poprawna, czy nie, jeśli numeracja jest poprawna, to ona zwraca rozdział bez numeracji i samą numerację, a jeśli nie, to cały rozdział i numerację, będącą ciągiem pustym. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja)...end; </syntaxhighlight> Parametry funkcji: * {{Code|rozdzial_z_numeracja}} - rozdzial z numeracją lub bez. Zwracane wartości: * {{Code|rozdzial}} - rozdzial bez numeracji, * {{Code|numetracja}} - numeracja. Przykłady użycia: ; Pierwszy{{Dk}} {{Code|z numeracją}}{{Dk}} <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local rozdzial_z_numeracja="5.1.2.3. Napis Rozdziału"; local rozdzial,numeracja=stronicowyparser_rozdzialy_modul.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja); </syntaxhighlight> Zwracane wyniki: <syntaxhighlight lang="lua"> local rozdzial="Napis Rozdziału"; local numeracja="5.1.2.3."; </syntaxhighlight> ; Drugi{{Dk}} {{Code|bez numeracji}}{{Dk}} <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local rozdzial_z_numeracja="Napis Rozdziału"; local rozdzial,numeracja=stronicowyparser_rozdzialy_modul.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja); </syntaxhighlight> Zwracane wyniki: <syntaxhighlight lang="lua"> local rozdzial="Napis Rozdziału"; local numeracja=""; </syntaxhighlight> == {{Code|p.__FUNKCJA_KOMPLETOWANIA}} == Funkcja kompletowania, sprawdza, czy nazwa szablonu jest jedna z wielu, tzn.: {{s|Kompletność}}, {{s|Kompletność krótka}}, {{s|Kompletność junior}} i {{s|Książka}}, wtedy zwraca wartość: {{Code|true}}, w przeciwnym wypadku: {{Code|nil}}, a tabela dzięki to wszystko się dzieje, przedstawia się w formie: <syntaxhighlight lang="lua"> p.szablony_kompletowania_stron_woluminu={ ["Kompletność"]=true, ["Kompletność krótka"]=true, ["Kompletność junior"]=true, ["Książka"]=true, }; </syntaxhighlight> Ta tabela mieści się w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}, opisana w: {{Code|{{sr|#p.szablony_kompletowania_stron_woluminu|p=StronicowyParser/obiekty}}}}, wraz z innymi tabelami. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.__FUNKCJA_KOMPLETOWANIA(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, * {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu}}, * {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|kod}} {{LinkPatrz|kod}} - kod, dla jego typu {{Code|SZABLON}} {{LinkPatrz|obiekt}}, potrzebny do poprzedniej tabeli. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local nazwa_szablonu="Kompletność krótka"; local czy_wynik=stronicowyparser_rozdzialy_modul.__FUNKCJA_KOMPLETOWANIA(nil,nazwa_szablonu,nil,nil,nil); </syntaxhighlight> Funkcja w tym przypadku zwróci wynik: {{Code|true}}, bo ta podana nazwa strony należy do naszej tabeli. == {{Code|p.UruchamianieAnalizatoraSpisuRzeczyStrony}} == Funkcja zwraca wynik, czy uruchomić wydzielonie generowania spisu treści z całego jego pierwotnego. Szablon zwraca zawsze wartość {{Code|true}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UruchamianieAnalizatoraSpisuRzeczyStrony()...end; </syntaxhighlight> Funkcja nie przyjmuje żadnego parametru. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local czy_tak=stronicowyparser_rozdzialy_modul.UruchamianieAnalizatoraSpisuRzeczyStrony(); </syntaxhighlight> Funkcja zwraca, jak zawsze wynik, wspomniany w nagłówku. == {{Code|p.CzyZerowyNapisWprowadzeniaTekstu}} == Funkcja sprawdza, czy napis wprowadzenia tekstu, który nie jest dodatni, tzn. np.: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}} (czyli określony wzorem: {{Code|<nowiki>=+[^\n]*[^=]+[^\n]*=+[^%S\n]*</nowiki>}}), ani np.: linia opisywana formułą: {{Code|<nowiki>\n[:#%*;]+[^\n]*</nowiki>}}, zatem to jest przepis na definicję na tą funkcję, ale nie do końca, bo w tej funkcji pierwszy parametr nie może opisywać tego, ani tego. Funkcja zwraca dwa parametry, tzn. otrzymany rozdział i wartość: {{Code|true/false}}. Wartość {{Code|true}} mówi o rozdziale zerowym, a przeciwna wartość, że taki on nie jest. Także funkcja może zwracać wartość {{Code|nil}}, to determiniuje, że to nie jest rozdział wcale zerowy, czyli rozdział świadczący, że to jest zerowy, nie musi być wcale zerowy. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyZerowyNapisWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametr funkcji: * {{Code|linia}} {{LinkPatrz|linia}} - rozważana zakodowana linia, która może być rozdziałem zerowym, ale ona nie może być dodatnia, ani ujemna, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Do liczenia rozdziału spisu treści (rzeczy) funkcja wykorzystuje z modułu {{Code|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}}}: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}} - funkcja sprawdzająca {{Code|true/nil}}, czy w tekście znajduje się rozdział, który jest o nazwie typu: {{Code|Spis treści}} ({{Code|Spis rzeczy}}) - niezależnie jakimi literami napisany, ile tam jest odstępów, a do kompletowania (rozwijania) rozdziałów, służy do tego z {{Code|{{ld2|StronicowyParser/SpisTreści}}}}: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}. Przykłady użycia (w przykładach przyjeliśmy najprostrzy wygląd tych rozdziałów, tzn. ich nie trzeba rozwijać i kompletować dalej, czyli wtedy ta funkcja jest ona w tym jedynie przypadku tożsamościowa): <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local linia="Spis treści"; local tablica_analizy_obiektow_strony_dany_modul={}; ---- Ta część kodu w tym przypadku jest opcjonalna, ze względu na niekodowalną zmienną: linia; local szablonowe_modul=require("Module:Szablonowe"); tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); ---- Koniec tej części kodu; local tablica_danych_parametrow_szablonu_strony={}; local rozdzial,czy_tak=stronicowyparser_rozdzialy_modul.CzyZerowyNapisWprowadzeniaTekstu(linia,"",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); </syntaxhighlight> Funckja w tym wypadku zwraca wynik: <syntaxhighlight lang="lua"> local rozdzial,czy_tak="Spis treści",true; </syntaxhighlight> Weźmy inny przykład: <syntaxhighlight lang="lua"> ---- Przykład pierwszy; local linia="'''Nagłówek'''"; local rozdzial,czy_tak="'''Nagłówek'''",true; ---- Przykład drugi; local linia="'''Nagłówek'''."; local rozdzial,czy_tak="'''Nagłówek'''.",false; </syntaxhighlight> == {{Code|p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu}} == Funkcja sprawdza, czy strona jest z przedrostkiem listy: {{Code|:}}, a dla tego, czy linia jest w cudzysłowach pojedyńczych podwójnych, a jeżeli to nie jest prawda, to funkcja zwraca wynik {{Code|false}}, normalnie przy braku parametrów linkowych funkcja zwraca wynik {{Code|true}}, w przeciwnym wypadku on rewiduje, czy w lini są artykuły aktualnej ksiązki, wtedy ona zwraca wynik {{Code|false}}, a jeżeli to jest fałszywa, to zwracany jest wynik {{Code|true}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLinikamiNieWoluminu(przedrotek_listy,linia,z_parametrami_linkowymi,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end; </syntaxhighlight> Parametry funkcji: * {{Code|przedrotek_listy}} - przedrostek listy z linią {{Code|linia}}, * {{Code||linia}} {{LinkPatrz|linia}} - linia bez przedrostka, * {{Code|z_parametrami_linkowymi}} - wartość {{Code|false}}, aby nie sprawdzał właśności artykularnych artykułów na linku, wtedy funkcja na samym końcu przy sprawdzedniu tego parametru,a jeżeli ta wartość, to wtedy otrzymany wynik z funkcji to {{Code|true}}, przeciwnym funkcja idzie dalej, * {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}} - parametry nazw, * {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci}}, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych}}. Funckja wykorzustuje: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|NormaWzoruKodowaniaTekstu}}, {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu}}, i {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} - jak w: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local linia="''[[Książka/Artykuł|Artykuł]]''"; local tablica_analizy_obiektow_strony_dany_modul={}; linia=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); local przedrotek_listy=":"; local tablica_danych_parametrow_szablonu_strony={}; local tab_nazwa_spisow_przekierowaniowych={}; ---- Tutaj funkcja zwróci wartość: true; local czy_tak=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia,false,"","","Książka","","",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); ---- Tutaj funkcja zwróci wartość: false; local czy_tak=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia,true,"","","Książka","","",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); </syntaxhighlight> == {{Code|p.HnNumerWprowadzeniaTekstu}} == Funkcja zwraca numer poziomu nagłówka od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}. Jeśli poziom jest mniejszy niż 6, wtedy wynik zwracany tej funkcji jest liczbą stojącą przy {{Code|h}}. A gdy mamy {{Code|<nowiki><h6></nowiki>}}, jeżeli ten znacznik nie ma klasy ('''class''') atrybutu: {{Code|<nowiki>mw-hnumber-<liczba></nowiki>}}, to zwracane jest: 6, w przeciwnym wypadku daje to wynik, którym jest: {{Code|<liczba>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.HnNumerWprowadzeniaTekstu(nazwa,atrybuty)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa}} - nazwa tagu, * {{Code|atrybuty}} - tabela atrybutów, których z jedną z elementów może być opcja: '''class'''. Funkcja wykorzystuje: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu}}}}, z modułu: {{Code|{{ld2|StronicowyParser/obiekty}}}}, opisana w: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}. Przykłady użycia: ; Pierwszy{{Dk}} {{Code|poziom<6}}{{Dk}} <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local nazwa="h5"; local atrybuty={}; local poziom=stronicowyparser_rozdzialy_modul.HnNumerWprowadzeniaTekstu(nazwa,atrybuty); </syntaxhighlight> Funkcja zwróci wynik: {{Code|5}}. ; Poziom{{Dk}} {{Code|poziom>{{=}}6}}{{Dk}} <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local nazwa="h6"; local atrybuty={};atrybuty["class"]="mw-hnumber-9"; local poziom=stronicowyparser_rozdzialy_modul.HnNumerWprowadzeniaTekstu(nazwa,atrybuty); </syntaxhighlight> Funkcja daje wynik: {{Code|9}}. == {{Code|p.NumeracjaOrazTekstWprowadzeniaTekstu}} == Funkcja zwraca numerację i rozdział całego rozdziału. Jest to funkcja bardzo prosta ponieważ nie analizuje numeracji, czy jest poprawnie podana, czy nie. Zawartość rozdziału musi się składać z numeracji, składający się z numerków oddzielonych kropkami - tutaj też mogą być dwie kropki koło siebie, albo numeracja może składać się z samych kropek, chociaż to jest niepoprawne, ale tak może być, na końcu numeracji może być też krokpa, po nm znajduje się właściwy rozdział zawartości tej wielkiej zawartości (rozdziału). A gdy numeracja nie istnieje, to zamiast niego zwracaną wartością jest wartość pusta. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.NumeracjaOrazTekstWprowadzeniaTekstu(zawartosc)...end; </syntaxhighlight> Parametry funkcji: * {{Code|zawartosc}} - zawartość rozdziału. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local zawartosc="5.1.6. Rozdział"; local numeracja,rozdzial=stronicowyparser_rozdzialy_modul.NumeracjaOrazTekstWprowadzeniaTekstu(zawartosc); </syntaxhighlight> Zwrócone wyniki: <syntaxhighlight lang="lua"> local numeracja,rozdzial="5.1.6.","Rozdział"; </syntaxhighlight> == {{Code|p.ParserPodawaniaNapisuWprowadzeniaTekstu}} == Funkcja sprawdza, czy podany napis, nie dodatni, opisanym nie znakami {{Code|{{=}}}}. Ona bada linie list tzn. zaczynające się od linii znakami: {{Code|<nowiki>[;%*:#]</nowiki>}} (to są rozdziały ujemne), także rozważa też rozdziały zerowe (to nie są nagłówki typu {{Code|<nowiki>== Nagłówek==</nowiki>}}, ani ujemne). Funkcja zalicza do rozdziałów znaczniki utworzone ze znaczników od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, też rozważa parametr w nim: {{Code|<nowiki>mw-hnumber-<liczba></nowiki>}}, wtedy poziom nie musi być od {{Code|1-6}}, ale też i: {{Code|> 6}}. Funkcja sprawdza, czy zaliczyć rozdziały centrowane (znacznikowe: znacznik {{Tag|center}}, i centrowane: {{s|ce}}, {{s|centruj}} i {{s|center}}) do rozdziałów, ona też potrafi odliczyć je od wykrywanych rozdziałów. Nie wyszystkie rozdziały ujemne (rozdziały listy) przez ten twór są przez niego uważane jako rozdziały, które trzeba zaliczyć, podobnie zerowe i centrowane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) ... return function(linia,tak_ce_spis_tresci) ... ---- ciało funkcji zwracanej. Tutaj są sprawdzane, czy podane linie zaliczyć do rozdziałów. Zmienna: tak_ce_spis_tresci, to jest zmienna mówiąca, czy uwzględniać rozdziały centrowane. return linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;---- Zwracane parametry tej funkcji; end; end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni}}, * {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, * {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki}}, * {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci}}, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych}}. Parametry funkcji zwracanej: * {{Code|linia}} {{LinkPatrz|linia}} - linia zakodowana do rozważenia bez rozdziałów dodatnich, aby sprawdzić, czy to jest rozdział, * {{Code|tak_ce_spis_tresci}} - czy ma uwzględniać rozdziały centrowane znacznikowe, czy szablonowe, podane pozyżej. Parametry zwracane przez funkcję, zwracaną przez tą funkcję, opisuje daną linie, czy ją uważać za rozdział, któremu w innej funkcji niż ta można przyporządkować jej zawartość: * {{Code|linia_temp}} - rozważana linia, * {{Code|nazwa_rozdzialu}} - nazwa rozdziału w opisanym linii rozdział, zwykle jest to ciało danego nagłówka, częśc tekstu po znakach listy następujące po sobie od początku linii, * {{Code|poziom_rozdziału}} - poziom danego rozdziału podanego, jest ściśle zależna od tego, czy to jest rozdział centrowany, wtedy rozdział: {{Code|2}}, nagłówek, to liczba przy: {{Code|h}}, dla znaczników nagłówka, lub przy: {{Code|mw-hnumber-<number>}} dla: {{Code|<nowiki><h6></nowiki>}}, * {{Code|poczatek_rozdzialu}} - początek rozdziału, początek rozdziału to jest przedrostek listy, czyli znaki: {{Code|<nowiki>[;%*:#]</nowiki>}}, * {{Code|numeracja_rozdzialu}} - numeracja rozdziału, to są numerki oddzielone od siebie kropką, na końcu tegomoże być ona, ale nie musi, * {{Code|czy_rozdzial_centrowany}} - czy rozdział centrowany, jeśli centrowany to: {{Code|true}}, w przeciwny wypadku: {{Code|nil}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tablica_analizy_obiektow_strony_dany_modul={}; local linia="<h6>Nagłówek</h6>"; linia=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); local tab_nazwa_spisow_przekierowaniowych={}; local nazwa_przestrzeni=""; local nazwa_przestrzeni_ksiazki=""; local nazwa_ksiazki="Książki"; local nazwa_spisu_tresci=""; local pelna_nazwa_spisu_tresci_szablonowa=""; local parser=stronicowyparser_rozdzialy_modul.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) end; local linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true); </syntaxhighlight> Funkcja zwraca wyniki: <syntaxhighlight lang="lua"> local linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany="'\"`UNIQ--ZNACZNIK-1-QINU`\"'","Nagłówek",6,nil,"",nil; </syntaxhighlight> == {{Code|p.TekstPoNapisieWprowadzeniaTekstuStrony}} == Funkcja liczy tekst pomiędzy dwoma {{Code|id}} rozdziałami o danych identyfikatorach na podstawie wydobytego ze strony zawartości. Ten tekst jest uzyskany z funkcji: {{Code|mw.title.makeTitle}}, na podstawie nazwy podanej jako pierwszy argument ramki tablicy transportu, funkcja też potrafić sprawdzić, czy uchwyt pliku jest prawidłowy lub czy plik istnieje, a także czy zawartość strony istnieje, bo np. chcelibyśmy policzyć zawartość strony w przestrzeni {{Np|Special|link=tak}} lub {{Np|Media|link=tak}}, wtedy wiadomo, że otrzymamy, że zawartość strony w tych przestrzeniach nazw nie istnieje, wyjątiem są inne istniejące strony, którego zawartość na pewno istnieje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstPoNapisieWprowadzeniaTekstuStrony(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji rablicy transportu. Parametry ramki funkcji tablicy transprotu dziecka rodzica: * {{Code|1}} - nazwa strony do analizy (rozwijany funkcją: {{Code|frame:preprocess}}), którego chcemy sprawdzić zawartość strony, jeśli istnieje, pomiędzy dwoma {{Code|id}} rozdziałami - funkcja rozwija nazwę strony wwzględem funkcji: {{Code|frame:preprocess}}, * {{Code|2}} - ten rozdział pierwszy, za którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany od poczatku, do pewnego identyfikatora, * {{Code|3}} - ten rozdział drugi, przed którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany do końca, od pewnego identyfikatora. Funkcja ramki uruchamia: {{Code|{{sr|#p.TekstWprowadzeniaTekstu|b=tak}}}}, do wyszukiwania tekstu pomiędzy dwoma rozdziałami, jako typową funkcję biblioteczną. Przykłady użycia w postaci ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> {{#invoke:StronicowyParser/Rozdziały|TekstPoNapisieWprowadzeniaTekstuStrony|Pomoc:Spis treści|Pomoc Wikibooks|Wstęp}}; </syntaxhighlight> Wyniki zwrócone przez ramkę uruchomioną, w rozdzicu, jako dziecko: <syntaxhighlight lang="mediawiki"> '''{{lr|Czym jest Wikibooks|Wikibooks}}''' jest zbiorem darmowych książek pisanych przez internautów. Poniższe strony pomocy zawierają porady i informacje o naszym projekcie. Projekt ten – będący siostrzanym projektem Wikipedii – powstał 10 lipca 2003 r. Polska wersja została uruchomiona '''24 stycznia 2004 roku''' i w tej chwili posiada już {{Forma wyrazu podręcznik po liczbie|'''{{LICZBAPODRĘCZNIKÓW}}'''}}, a w nich {{Forma wyrazu artykuł po liczbie|'''{{NUMBEROFARTICLES}}'''}}. </syntaxhighlight> == {{Code|p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu}} == Funkcja usuwa dolne myślniki i odstępy na końcach podanego tekstu oraz zamienia kolejne je wewnątrz tekstu na jeden dolny myślnik. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przerobienia. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst=" ____ ___ Tekst_________________ _______nagłówka ___ ___ ___ strony ___ ___"; tekst=stronicowyparser_rozdzialy_modul.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(tekst); </syntaxhighlight> Uzyskano wyniki: <syntaxhighlight lang="lua"> tekst="Tekst_nagłówka_strony"; </syntaxhighlight> == {{Code|p.ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony}} == Funkcja zwraca nagłówek (sekcję) rozwinięty o danym identyfikatorze na podstawie wydobytego ze strony zawartości. Ten tekst jest uzyskany z funkcji: {{Code|mw.title.makeTitle}}, na podstawie nazwy podanej jako pierwszy argument ramki tablicy transportu, funkcja też potrafić sprawdzić, czy uchwyt pliku jest prawidłowy lub czy plik istnieje, a także czy zawartość strony istnieje, bo np. chcelibyśmy policzyć zawartość strony w przestrzeni {{Np|Special|link=tak}} lub {{Np|Media|link=tak}}, wtedy wiadomo, że otrzymamy, że zawartość strony w tych przestrzeniach nazw nie istnieje, wyjątiem są inne istniejące strony, którego zawartość na pewno istnieje. Funkcja też uwzględnia, że dany rozdział w tekście może się powtarzać, i dlatego trzeba to robić za pomocą numerków przy {{Code|id}}, aby wyszukać ten ściśle określony . Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu funkcji. Parametry ramki funkcji tablicy transportu: * {{Code|1}} - nazwa strony - funkcja rozwija nazwę strony, * {{Code|2}} - identyfikator rozdzialu - domyślna wartość pusta. Przykłady użycia: <syntaxhighlight lang="lua"> {{#invoke:StronicowyParser/Rozdziały|ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony|Wikibooks:Jak_przeglądać_Wikibooks|Opera}} </syntaxhighlight> Uzyskane wyniki w postaci nierozwiniętego wikikodu: <syntaxhighlight lang="mediawiki"> <templatestyles src="Szablon:Link_wewnętrzny/styles.css"><span class="niew link">[[:w:Opera (program)|Opera]]</span> </syntaxhighlight> == {{Code|p.NumerSekcjiStrony}} == Funkcja liczy numer sekcji rozdziału, który posiada dany identyfikator na podstawie wydobytego ze strony zawartości. Ten tekst jest uzyskany z funkcji: {{Code|mw.title.makeTitle}}, na podstawie nazwy podanej jako pierwszy argument ramki tablicy transportu, funkcja też potrafić sprawdzić, czy uchwyt pliku jest prawidłowy lub czy plik istnieje, a także czy zawartość strony istnieje, bo np. chcelibyśmy policzyć zawartość strony w przestrzeni {{Np|Special|link=tak}} lub {{Np|Media|link=tak}}, wtedy wiadomo, że otrzymamy, że zawartość strony w tych przestrzeniach nazw nie istnieje, wyjątiem są inne istniejące strony, którego zawartość na pewno istnieje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.NumerSekcjiStrony(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji rablicy transportu. Parametry ramki funkcji tablicy transprotu dziecka rodzica: * {{Code|1}} - nazwa strony do analizy (rozwijany funkcją: {{Code|frame:preprocess}}), którego chcemy sprawdzić zawartość strony, jeśli istnieje, pomiędzy dwoma id rozdziałami - funkcja rozwija nazwę strony wwzględem funkcji: frame:preprocess, * {{Code|2}} - ten rozdział pierwszy, za którym jest wyszukiwany tekst - domyślna wartość pusta, Przykład użycia w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="lua"> {{#invoke:StronicowyParser/Rozdziały|NumerSekcjiStrony|Wikibooks:Jak_przeglądać_Wikibooks|Opera}} </syntaxhighlight> Otrzymane wyniki, to przedstawia numer sekcji podanego rozdziału jest: {{Code|9}}. == {{Code|p.TekstWprowadzeniaTekstu}} == Funkcja liczy tekst pomiędzy dwoma rozdziami o danych identyfikatorach {{Code|id}} na podstawie podanego tekstu do rozważań, który może posiadać rozdziały z tymi unikalnymi wartościami. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstWprowadzeniaTekstu(tekst,id_rozdzialu1,id_rozdzialu2)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do analizy, do uzyskania pomiędzy dwoma identyfikatorami tekstu, * {{Code|id_rozdzialu1}} - ten rozdział pierwszy, za którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany od poczatku, do pewnego identyfikatora, * {{Code|id_rozdzialu2}} - ten rozdział drugi, przed którym jest wyszukiwany tekst - domyślna wartość pusta, wtedy tekst jest wyszukiwany do końca, od pewnego identyfikatora. Przykład użycia: <syntaxhighlight lang="lua"> local strona="Pomoc:Spis treści"; local title=mw.title.makeTitle('',strona); local tekst=title:getContent(); local id_rozdzialu1="Pomoc Wikibooks"; local id_rozdzialu2="Wstęp"; local stronicowyparser_rozdzialu_modul=require("Module:StronicowyParser/Rozdziały"); tekst=stronicowyparser_rozdzialu_modul.TekstWprowadzeniaTekstu(tekst,id_rozdzialu1,id_rozdzialu2); </syntaxhighlight> Uzykane wyniki w tekście pomiędzy dwoma identyfikatorami: <syntaxhighlight lang="lua"> local tekst="'''{{lr|Czym jest Wikibooks|Wikibooks}}''' jest zbiorem darmowych książek pisanych przez internautów. Poniższe strony pomocy zawierają porady i informacje o naszym projekcie. Projekt ten – będący siostrzanym projektem Wikipedii – powstał 10 lipca 2003 r. Polska wersja została uruchomiona '''24 stycznia 2004 roku''' i w tej chwili posiada już {{Forma wyrazu podręcznik po liczbie|'''{{LICZBAPODRĘCZNIKÓW}}'''}}, a w nich {{Forma wyrazu artykuł po liczbie|'''{{NUMBEROFARTICLES}}'''}}."; </syntaxhighlight> == {{Code|p.ObiektySzablonoweFormatowaniaTekstu}} == Funkcja, która zastępuje szablony ich ściśle okreslonymi parametrami, ale nie normalnie wszystkimi, według danych, które zwykle są tabelami z modulu: {{Code|{{ld2|StronicowyParser/obiekty}}}}, ale nie zawsze, bo taką tabelę można skonstrułować i włanorecznie podać do tej procedury. Przykładową tą tabelą, którą można znaleźć pod tym modułem, o którym wspomnialiśmy, jest: <syntaxhighlight lang="lua"> p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu={ ["Kolumny"]=2,---- Tutaj parametry, więcej niż jeden, oddzielamy średnikami, ale tutaj mamy jedynie jeden parametr, więc średniki nie są tutaj potrzebne; }; </syntaxhighlight> Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod)...end; </syntaxhighlight> Parametry funkcji: * {{Code|szablon}} - szablon, który chcemy zastąpić odpowiednimi, nie wszystkimi, jego parametrami, * {{Code|szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu}} - tabela informująca, które parametry szablonu należy zastąpić parametrami, tutaj parametry są oddzielone średnikami, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|kod}} {{LinkPatrz|kod}} - kod, dla obiektu {{Code|SZABLON}} {{LinkPatrz|obiekt}}, będący jednocześnie częścią kodów bazy, czyli: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablon="{{Kolumny|2|Oto jest tekst tego szablonu}}"; local tablica_analizy_obiektow_strony_dany_modul={}; local szablonowe_modul=require("Module:Szablonowe"); szablon=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul); local szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu=mw.loadData("Module:StronicowyParser/obiekty").szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu; local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały") local tablica_danych_parametrow_szablonu_strony={}; local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul); local tekst=""; for szablon,obiekt,kod in iterator do if(obiekt=="SZABLON")then tekst=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu,"",tablica_danych_parametrow_szablonu_strony,kod)..tekst; end; end; </syntaxhighlight> Uzyskane wyniki: {{Code|Oto jest tekst tego szablonu}}. == {{Code|p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu}} == Szablon zamieniający wywołania szablonów w tekście na ich odpowiednie wartości, które przedstawiają się za pomocą dodatków o ogólnym wzorze: {{Code|(<name>)}}. Przykładowa tabela z tymi dodatkami jest w: {{Code|{{ld2|StronicowyParser/obiekty}}}}, a w nim tabela: <syntaxhighlight lang="lua"> p.szablony_z_dodatkiem_obiektowym={ ["ISBN"]="ISBN $(1)"; }; </syntaxhighlight> Opisana w: {{Code|{{sr|#p.szablony_z_dodatkiem_obiektowym|p=StronicowyParser/obiekty}}}}. Pierwszym elementem (kluczem) jest nazwa szablonu, a wartością tego elementu jest przepis, jak zastąpić ten szablon nim, a właściwie w nim dodatek, robiąc jeszcze dodatkowe operacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu(szablon,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod)...end; </syntaxhighlight> Parametry funkcji: * {{Code|szablon}} {{LinkPatrz|szablon}} - zakodowany szablon, z możliwym dodatkiem, w nazwie szablonu, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|kod}} {{LinkPatrz|kod}} - kod dla obiektu {{Code|SZABLON}} {{LinkPatrz|obiekt}}. Funkcja na podstawie użytych elementów z: {{Code|{{ld2|Techniczne}}}}, wykonuje operacje na parametrach, używając procedur dla nazw argumentów: {{Code|{{sr|#p["PrzekształćWzórDoCzystegoTekstu"]|p=Techniczne}}}}, i jego wartościach: {{Code|{{sr|#p["TekstBezOdwołańDoParametrówWeWzorze"]|p=Techniczne}}}}, zamieniając elementy typu: {{Code|(<name>)}}, gdzie {{Code|name}}, to nazwa argumentu, na ich wartości. Przykłady użycia: <syntaxhighlight lang="lua"> local szablon="{{ISBN|83-8678-825-9}}"; local tablica_analizy_obiektow_strony_dany_modul={}; local szablonowe_modul=require("Module:Szablonowe"); szablon=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały") local tablica_danych_parametrow_szablonu_strony={}; local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul); local tekst=""; for szablon,obiekt,kod in iterator do if(obiekt=="SZABLON")then tekst=stronicowyparser_rozdzialy_modul.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu(szablon,"",tablica_danych_parametrow_szablonu_strony,kod)..tekst; end; end; </syntaxhighlight> Wynikiem działania tego przykładu, ukryty pod przykładem pod zmienną {{Code|tekst}}, przedstawiamy na podstawie tekstu, którym jest wywołanie szablonu: {{Code|{{s|ISBN|83-8678-825-9}}}}, którym jest ukryty pod zmienną {{Code|szablon}}, w wyniku działania tej funkcji, zamieniany jest on na: {{Code|ISBN 83-8678-825-9}}. == {{Code|p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii}} == Funkcja zamienia znaczniki nowej linii: {{Code|<nowiki><br /></nowiki>}} i kreski poziomej {{Code|<nowiki><hr /></nowiki>}}, a także szablony, ich odpowiedniki wersji znacznikowych, tzn. kolejno: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, na jedną wartość: {{Code|\n\n }} (który charakteryzuje trzy linie, ostatnia linia ma początku ma spację, aby ona przypadkiem nie była traktowana, jako np. rozdział), ustaloną przez nią. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} {{LinkPatrz|tekst}} - zakodowany tekst, na którym operujemy, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} - jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, * {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} - jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}. Przykłady użycia: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="Tekst przed{{Br}}, tekst po <br />, a po nim znacznik: <hr />, i szablon {{Hr}}."; local tablica_analizy_obiektow_strony_dany_modul={}; tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local tablica_danych_parametrow_szablonu_strony={}; tekst=stronicowyparser_rozdzialy_modul.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst,"",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); </syntaxhighlight> Zwrócone wyniki: <syntaxhighlight lang="lua"> local tekst="Tekst przed\n\n , tekst po \n\n , a po nim znacznik: \n\n , i szablon \n\n ."; </syntaxhighlight> == {{Code|p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia}} == Funkcja łączy linie w jedną linię, pomiędzy liniami, które nie udało się połączyć z nimi, a jakie to są linie, otóż te, które reprezentują rozdziały, takie jak: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}}, i linie reprezentowane przez listy, które zaczynają się na: {{Code|<nowiki>[;%*:#]</nowiki>}}. Też nie zostaną połączone z innymi, które zawierają szablony: {{Code|{{s|SpisPozycja}}}}, {{Code|{{s|SpisZw}}}} i {{Code|{{s|SpisTreści}}}}, te szablony sa umieszczone w tabeli, na stronie: {{Code|{{ld2|StronicowyParser/obiekty}}}}, tzn.: <syntaxhighlight lang="lua"> p.szablony_w_nie_w_tej_samej_linii={ ["SpisPozycja"]=true, ["SpisZw"]=true, ["SpisTreści"]=true, }; </syntaxhighlight> Tabela opisana w: {{Code|{{sr|#p.szablony_w_nie_w_tej_samej_linii|p=StronicowyParser/obiekty}}}}. Funkcja w wewnątrz linii każdy znacznik: {{Code|<nowiki><br /></nowiki>}} lub {{Code|<nowiki><hr /></nowiki>}} albo {{Code|{{s|Br}}}} lub {{Code|{{s|Hr}}}}, zamienia na {{Code|\n\n }} (przy pomocy funkcji: {{Code|{{sr|#p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii|b=tak}}}}), co potem odpowiada trzem liniom, linia pośrodku jest pusta (lub biała), a jeżeli taki znacznik szablonowy, czy znacznikowy, jest na końcu linii, czyli po prostu, wtedy mamy, jeśli: {{Code|<nowiki>^(.*\n)[^%S\n]*\n[^%S\n]*$</nowiki>}}, co odpowiada dwom oddzielnym liniom, na jakie dzielona jest ona, w końcowym tekście. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(tekst,nazwa_modulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_obiektow_strony_dany_modul_uzyskany,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} {{LinkPatrz|tekst}} - zakodowany tekst, na którym operujemy, * {{Code|nazwa_modulu}} - jak w: {{LinkPatrz|nazwa_modulu}}, * {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}, * {{Code|tablica_obiektow_strony_dany_modul_uzyskany}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}} * {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} - jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, * {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} - jak w: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}. Przykłady użycia: <syntaxhighlight lang="lua"> local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="== Tekst rozdziału ==\nTekst Rozdziału{{Br}}\nTekst rozdziału\nTekst rozdziału\n*# Tekst rodziału\n Tekst rozdziału\n"; local tablica_analizy_obiektow_strony_dany_modul={}; local szablonowe_modul=require("Module:Szablonowe"); tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local tablica_danych_parametrow_szablonu_strony={}; tekst=stronicowyparser_rozdzialy_modul.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(tekst,nil,"",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nil,nil); </syntaxhighlight> Zwracane wyniki: <syntaxhighlight lang="lua"> local tekst="== Tekst rozdziału ==\nTekst Rozdziału\nTekst rozdziału Tekst rozdziału\n*# Tekst rodziału\n'\"`UNIQ--INNEPRE-1-QINU`\"'"; </syntaxhighlight> == {{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 zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza 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 {{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 nie potrzebne. Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalszymo wartościami zwracanymi są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek rozdziału. 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_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; end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst}}, 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, * {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni}}, * {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, * {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki}}, * {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci}}, * {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe, * {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - 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, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych}}, * {{Code|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adreesu szablonu, określa i zawraca jego zawartość, * {{Code|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału), * {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu (może zwracać wartość: {{Code|nil}}) przed samym możliwym kodowaniem, funkcja ta bezpośrednio jest wywoływana w tej funkcji, a pośrednio uruchamiana w: {{Code|{{sr|#p.PobierzSpecjalniePrzygotowanyPreWikikodStrony|p=StronicowyParser/Tekst}}}}, z modułu: {{Code|{{ld2|StronicowyParser/Tekst}}}}. Parametry funkcji zwracanej: * Funkcja nie przyjmuje żadnych parametrów. Jednoczesne parametry zwracane przez funkcję zwracaną: * {{Code|naglowek_tab_aktualnego_rozdzialu}} - tojest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią, * {{Code|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału), * {{Code|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału, * {{Code|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału * {{Code|numeracja_aktualnego_rozdzialu}} - 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}}, * {{Code|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym. 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> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> f4fcl58wpvnvlvnnlzjdkoksxbxd0lb Wikibooks:Moduły/StronicowyParser/SpisTreści 4 63522 543809 543660 2026-05-22T04:09:19Z Persino 2851 /* {{Code|Ile}} */ 543809 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SpisTreści}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje lokalne == === {{Code|Ile}} === Funkcja liczy liczbę elementów we wszystkich podtabelach tabeli {{Code|tabela_rozdzial_artykulow}}, licząc od drugiej tabeli, po w ierwszej tabelimieści się podtabela z informacjami o rozdziale, w której znajdują się artykuły określone dalszymi podtabelami. Tymi podtabelami są od {{Code|2}} do {{Code|7}}, czyli {{Code|6}} tabelek, w których są artykuły, które zaaliczamy do kategorii wliczane, tzn. one nie znajdują się w rozdziałach: <syntaxhighlight lang="lua"> p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu={ ["licencja"]=true, ["inne"]=true, ["bibliografia"]=true, ["zobacz też"]=true, ["linki zewnętrzne"]=true, }; </syntaxhighlight> A od {{Code|7}} do {{Code|13}} znajdują się podtabele z artykułami, które już należą już tam, czyli też drugie {{Code|6}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_rodzaju_artykulu}} - numer podtabeli elementtu, do którego wsadzamy element, * {{Code|tabela_rozdzial_artykulow}} - tabela wraz podtabelami, od {{Code|1}} do {{Code|13}}, ale liczenie jest od {{Code|2}} === {{Code|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}} === == Funkcje tablicy transportu == === {{Code|p.AnalizaNapisuWprowadzeniaTekstu}} === === {{Code|p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}} === ==== Opis funkcji ==== ==== Funkcje lokalne ==== ===== {{Code|PomijajLinkiOrazLicencje}} ===== ===== {{Code|CzySzablonLinkLubLicencja}} ===== ===== {{Code|iteratorTekstuNaglowka}} ===== ===== {{Code|LiniaArtykulow}} ===== ===== {{Code|WsadzanieParametryDoTablicy}} ===== ====== {{Code|CzyZaliczac}} ====== ===== {{Code|AnalizaLiniiObiekty}} ===== === {{Code|p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku}} === === {{Code|p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji}} === ==== Opis funkcji ==== ==== Fukcje lokalne ==== ===== {{Code|Spis}} ===== ===== {{Code|InneSpisy}} ===== ===== {{Code|SpisRzeczy}} ===== ===== {{Code|IteratorFun}} ===== ===== {{Code|ZbieranieDanychStronZAutonawigacji}} ===== {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> kzi62otvg6bxceuxhbf43yqm57hdxre 543810 543809 2026-05-22T04:10:59Z Persino 2851 /* {{Code|Ile}} */ 543810 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SpisTreści}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje lokalne == === {{Code|Ile}} === Funkcja liczy liczbę elementów we wszystkich podtabelach tabeli {{Code|tabela_rozdzial_artykulow}}, licząc od drugiej tabeli, po w ierwszej tabelimieści się podtabela z informacjami o rozdziale, w której znajdują się artykuły określone dalszymi podtabelami. Tymi podtabelami są od {{Code|2}} do {{Code|7}}, czyli {{Code|6}} tabelek, w których są artykuły, które zaaliczamy do kategorii wliczane, tzn. one nie znajdują się w rozdziałach: <syntaxhighlight lang="lua"> p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu={ ["licencja"]=true, ["inne"]=true, ["bibliografia"]=true, ["zobacz też"]=true, ["linki zewnętrzne"]=true, }; </syntaxhighlight> A od {{Code|7}} do {{Code|13}} znajdują się podtabele z artykułami, które już należą już tam, czyli też drugie {{Code|6}}. A ta powyższa tabela mieści się: {{Code|{{ld2|StronicowyParser/obiekty}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_rodzaju_artykulu}} - numer podtabeli elementtu, do którego wsadzamy element, * {{Code|tabela_rozdzial_artykulow}} - tabela wraz podtabelami, od {{Code|1}} do {{Code|13}}, ale liczenie jest od {{Code|2}} === {{Code|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}} === == Funkcje tablicy transportu == === {{Code|p.AnalizaNapisuWprowadzeniaTekstu}} === === {{Code|p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}} === ==== Opis funkcji ==== ==== Funkcje lokalne ==== ===== {{Code|PomijajLinkiOrazLicencje}} ===== ===== {{Code|CzySzablonLinkLubLicencja}} ===== ===== {{Code|iteratorTekstuNaglowka}} ===== ===== {{Code|LiniaArtykulow}} ===== ===== {{Code|WsadzanieParametryDoTablicy}} ===== ====== {{Code|CzyZaliczac}} ====== ===== {{Code|AnalizaLiniiObiekty}} ===== === {{Code|p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku}} === === {{Code|p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji}} === ==== Opis funkcji ==== ==== Fukcje lokalne ==== ===== {{Code|Spis}} ===== ===== {{Code|InneSpisy}} ===== ===== {{Code|SpisRzeczy}} ===== ===== {{Code|IteratorFun}} ===== ===== {{Code|ZbieranieDanychStronZAutonawigacji}} ===== {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> qewgjm2vlryv0lqunyrpz1u5ok89o41 543811 543810 2026-05-22T04:11:58Z Persino 2851 /* {{Code|Ile}} */ 543811 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SpisTreści}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje lokalne == === {{Code|Ile}} === Funkcja liczy liczbę elementów we wszystkich podtabelach tabeli {{Code|tabela_rozdzial_artykulow}}, licząc od drugiej tabeli, po w ierwszej tabelimieści się podtabela z informacjami o rozdziale, w której znajdują się artykuły określone dalszymi podtabelami. Tymi podtabelami są od {{Code|2}} do {{Code|7}}, czyli {{Code|6}} tabelek, w których są artykuły, które zaliczamy do kategorii wliczane, tzn. one nie znajdują się w rozdziałach: <syntaxhighlight lang="lua"> p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu={ ["licencja"]=true, ["inne"]=true, ["bibliografia"]=true, ["zobacz też"]=true, ["linki zewnętrzne"]=true, }; </syntaxhighlight> A od {{Code|7}} do {{Code|13}} znajdują się podtabele z artykułami, które już należą już tam, czyli też drugie {{Code|6}}. A ta powyższa tabela mieści się: {{Code|{{ld2|StronicowyParser/obiekty}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_rodzaju_artykulu}} - numer podtabeli elementtu, do którego wsadzamy element, * {{Code|tabela_rozdzial_artykulow}} - tabela wraz podtabelami, od {{Code|1}} do {{Code|13}}, ale liczenie jest od {{Code|2}} === {{Code|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}} === == Funkcje tablicy transportu == === {{Code|p.AnalizaNapisuWprowadzeniaTekstu}} === === {{Code|p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}} === ==== Opis funkcji ==== ==== Funkcje lokalne ==== ===== {{Code|PomijajLinkiOrazLicencje}} ===== ===== {{Code|CzySzablonLinkLubLicencja}} ===== ===== {{Code|iteratorTekstuNaglowka}} ===== ===== {{Code|LiniaArtykulow}} ===== ===== {{Code|WsadzanieParametryDoTablicy}} ===== ====== {{Code|CzyZaliczac}} ====== ===== {{Code|AnalizaLiniiObiekty}} ===== === {{Code|p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku}} === === {{Code|p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji}} === ==== Opis funkcji ==== ==== Fukcje lokalne ==== ===== {{Code|Spis}} ===== ===== {{Code|InneSpisy}} ===== ===== {{Code|SpisRzeczy}} ===== ===== {{Code|IteratorFun}} ===== ===== {{Code|ZbieranieDanychStronZAutonawigacji}} ===== {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> lfkwhomht10wdehvq5bp0qrcpq6qhg2 543813 543811 2026-05-22T04:22:37Z Persino 2851 /* {{Code|Ile}} */ 543813 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SpisTreści}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje lokalne == === {{Code|Ile}} === Funkcja liczy liczbę elementów we wszystkich podtabelach tabeli {{Code|tabela_rozdzial_artykulow}}, licząc od drugiej tabeli, po w ierwszej tabelimieści się podtabela z informacjami o rozdziale, w której znajdują się artykuły określone dalszymi podtabelami. Tymi podtabelami są od {{Code|2}} do {{Code|7}}, czyli {{Code|6}} tabelek, w których są artykuły, które zaliczamy do kategorii wliczane, tzn. one nie znajdują się w rozdziałach przetłumaczonych na małą literę, ale przedtem na nią była działana funkcją: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}},na podstawie metafunkcji: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}, w: {{Code|{{ld2|Parametry}}}}. <syntaxhighlight lang="lua"> p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu={ ["licencja"]=true, ["inne"]=true, ["bibliografia"]=true, ["zobacz też"]=true, ["linki zewnętrzne"]=true, }; </syntaxhighlight> A od {{Code|7}} do {{Code|13}} znajdują się podtabele z artykułami, które już należą już tam, czyli też drugie {{Code|6}}. A ta powyższa tabela mieści się: {{Code|{{ld2|StronicowyParser/obiekty}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_rodzaju_artykulu}} - numer podtabeli elementtu, do którego wsadzamy element, * {{Code|tabela_rozdzial_artykulow}} - tabela wraz podtabelami, od {{Code|1}} do {{Code|13}}, ale liczenie jest od {{Code|2}} === {{Code|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}} === == Funkcje tablicy transportu == === {{Code|p.AnalizaNapisuWprowadzeniaTekstu}} === === {{Code|p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}} === ==== Opis funkcji ==== ==== Funkcje lokalne ==== ===== {{Code|PomijajLinkiOrazLicencje}} ===== ===== {{Code|CzySzablonLinkLubLicencja}} ===== ===== {{Code|iteratorTekstuNaglowka}} ===== ===== {{Code|LiniaArtykulow}} ===== ===== {{Code|WsadzanieParametryDoTablicy}} ===== ====== {{Code|CzyZaliczac}} ====== ===== {{Code|AnalizaLiniiObiekty}} ===== === {{Code|p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku}} === === {{Code|p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji}} === ==== Opis funkcji ==== ==== Fukcje lokalne ==== ===== {{Code|Spis}} ===== ===== {{Code|InneSpisy}} ===== ===== {{Code|SpisRzeczy}} ===== ===== {{Code|IteratorFun}} ===== ===== {{Code|ZbieranieDanychStronZAutonawigacji}} ===== {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> kda8uq6i1si4v0nh739mu7ku106fcec 543821 543813 2026-05-22T05:36:02Z Persino 2851 /* {{Code|Ile}} */ 543821 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SpisTreści}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje lokalne == === {{Code|Ile}} === Funkcja liczy liczbę elementów we wszystkich podtabelach tabeli {{Code|tabela_rozdzial_artykulow}}, licząc od drugiej tabeli, po w ierwszej tabelimieści się podtabela z informacjami o rozdziale, w której znajdują się artykuły określone dalszymi podtabelami. Tymi podtabelami są od {{Code|2}} do {{Code|7}}, czyli {{Code|6}} tabelek, w których są artykuły, które zaliczamy do kategorii wliczane, tzn. one nie znajdują się w rozdziałach przetłumaczonych na małą literę, ale przedtem na nią była działana funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.ustring.gsub|n=mw.ustring.gsub}}}}, usuwając z nich odstępy, na podstawie metafunkcji: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}, w: {{Code|{{ld2|Parametry}}}}. <syntaxhighlight lang="lua"> p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu={ ["licencja"]=true, ["inne"]=true, ["bibliografia"]=true, ["zobacz też"]=true, ["linki zewnętrzne"]=true, }; </syntaxhighlight> A od {{Code|7}} do {{Code|13}} znajdują się podtabele z artykułami, które już należą już tam, czyli też drugie {{Code|6}}. A ta powyższa tabela mieści się: {{Code|{{ld2|StronicowyParser/obiekty}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_rodzaju_artykulu}} - numer podtabeli elementtu, do którego wsadzamy element, * {{Code|tabela_rozdzial_artykulow}} - tabela wraz podtabelami, od {{Code|1}} do {{Code|13}}, ale liczenie jest od {{Code|2}} === {{Code|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}} === == Funkcje tablicy transportu == === {{Code|p.AnalizaNapisuWprowadzeniaTekstu}} === === {{Code|p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}} === ==== Opis funkcji ==== ==== Funkcje lokalne ==== ===== {{Code|PomijajLinkiOrazLicencje}} ===== ===== {{Code|CzySzablonLinkLubLicencja}} ===== ===== {{Code|iteratorTekstuNaglowka}} ===== ===== {{Code|LiniaArtykulow}} ===== ===== {{Code|WsadzanieParametryDoTablicy}} ===== ====== {{Code|CzyZaliczac}} ====== ===== {{Code|AnalizaLiniiObiekty}} ===== === {{Code|p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku}} === === {{Code|p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji}} === ==== Opis funkcji ==== ==== Fukcje lokalne ==== ===== {{Code|Spis}} ===== ===== {{Code|InneSpisy}} ===== ===== {{Code|SpisRzeczy}} ===== ===== {{Code|IteratorFun}} ===== ===== {{Code|ZbieranieDanychStronZAutonawigacji}} ===== {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ioyujidz7czk96vbnr1uziehbebkeso 543822 543821 2026-05-22T05:40:21Z Persino 2851 /* {{Code|Ile}} */ 543822 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SpisTreści}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje lokalne == === {{Code|Ile}} === Funkcja liczy liczbę elementów we wszystkich podtabelach tabeli {{Code|tabela_rozdzial_artykulow}}, licząc od drugiej tabeli, po w ierwszej tabelimieści się podtabela z informacjami o rozdziale, w której znajdują się artykuły określone dalszymi podtabelami. Tymi podtabelami są od {{Code|2}} do {{Code|7}}, czyli {{Code|6}} tabelek, w których są artykuły, które zaliczamy do kategorii wliczane, tzn. one nie znajdują się w rozdziałach przetłumaczonych na małą literę, ale przedtem na nią była działana funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.ustring.gsub|n=mw.ustring.gsub}}}}, usuwając z nich odstępy, na podstawie metafunkcji: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}, w: {{Code|{{ld2|Parametry}}}}. <syntaxhighlight lang="lua"> p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu={ ["licencja"]=true, ["inne"]=true, ["bibliografia"]=true, ["zobacz też"]=true, ["linki zewnętrzne"]=true, }; </syntaxhighlight> A od {{Code|7}} do {{Code|13}} znajdują się podtabele z artykułami, które już należą już tam, czyli też drugie {{Code|6}}. A ta powyższa tabela mieści się: {{Code|{{ld2|StronicowyParser/obiekty}}}}, a jego opis w: {{Code|{{sr|#p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu|p=StronicowyParser/obiekty}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_rodzaju_artykulu}} - numer podtabeli elementtu, do którego wsadzamy element, * {{Code|tabela_rozdzial_artykulow}} - tabela wraz podtabelami, od {{Code|1}} do {{Code|13}}, ale liczenie jest od {{Code|2}} === {{Code|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}} === == Funkcje tablicy transportu == === {{Code|p.AnalizaNapisuWprowadzeniaTekstu}} === === {{Code|p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}} === ==== Opis funkcji ==== ==== Funkcje lokalne ==== ===== {{Code|PomijajLinkiOrazLicencje}} ===== ===== {{Code|CzySzablonLinkLubLicencja}} ===== ===== {{Code|iteratorTekstuNaglowka}} ===== ===== {{Code|LiniaArtykulow}} ===== ===== {{Code|WsadzanieParametryDoTablicy}} ===== ====== {{Code|CzyZaliczac}} ====== ===== {{Code|AnalizaLiniiObiekty}} ===== === {{Code|p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku}} === === {{Code|p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji}} === ==== Opis funkcji ==== ==== Fukcje lokalne ==== ===== {{Code|Spis}} ===== ===== {{Code|InneSpisy}} ===== ===== {{Code|SpisRzeczy}} ===== ===== {{Code|IteratorFun}} ===== ===== {{Code|ZbieranieDanychStronZAutonawigacji}} ===== {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> fx1y67s8jf3rcxq4yo57g00d8lb1uzs 543830 543822 2026-05-22T07:02:17Z Persino 2851 /* {{Code|Ile}} */ 543830 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SpisTreści}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje lokalne == === {{Code|Ile}} === Funkcja liczy liczbę elementów we wszystkich podtabelach tabeli {{Code|tabela_rozdzial_artykulow}}, licząc od drugiej tabeli, po w ierwszej tabelimieści się podtabela z informacjami o rozdziale, w której znajdują się artykuły określone dalszymi podtabelami. Tymi podtabelami są od {{Code|2}} do {{Code|7}}, czyli {{Code|6}} tabelek, w których są artykuły, które zaliczamy do kategorii wliczane, tzn. one nie znajdują się w rozdziałach przetłumaczonych na małą literę, ale przedtem na nią była działana funkcją: {{Code|{{sr|#["Odstępy"]|p=Parametry}}}}, usuwając z nich odstępy, na podstawie metafunkcji: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}, w: {{Code|{{ld2|Parametry}}}}. <syntaxhighlight lang="lua"> p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu={ ["licencja"]=true, ["inne"]=true, ["bibliografia"]=true, ["zobacz też"]=true, ["linki zewnętrzne"]=true, }; </syntaxhighlight> A od {{Code|7}} do {{Code|13}} znajdują się podtabele z artykułami, które już należą już tam, czyli też drugie {{Code|6}}. A ta powyższa tabela mieści się: {{Code|{{ld2|StronicowyParser/obiekty}}}}, a jego opis w: {{Code|{{sr|#p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu|p=StronicowyParser/obiekty}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_rodzaju_artykulu}} - numer podtabeli elementtu, do którego wsadzamy element, * {{Code|tabela_rozdzial_artykulow}} - tabela wraz podtabelami, od {{Code|1}} do {{Code|13}}, ale liczenie jest od {{Code|2}} === {{Code|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}} === == Funkcje tablicy transportu == === {{Code|p.AnalizaNapisuWprowadzeniaTekstu}} === === {{Code|p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}} === ==== Opis funkcji ==== ==== Funkcje lokalne ==== ===== {{Code|PomijajLinkiOrazLicencje}} ===== ===== {{Code|CzySzablonLinkLubLicencja}} ===== ===== {{Code|iteratorTekstuNaglowka}} ===== ===== {{Code|LiniaArtykulow}} ===== ===== {{Code|WsadzanieParametryDoTablicy}} ===== ====== {{Code|CzyZaliczac}} ====== ===== {{Code|AnalizaLiniiObiekty}} ===== === {{Code|p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku}} === === {{Code|p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji}} === ==== Opis funkcji ==== ==== Fukcje lokalne ==== ===== {{Code|Spis}} ===== ===== {{Code|InneSpisy}} ===== ===== {{Code|SpisRzeczy}} ===== ===== {{Code|IteratorFun}} ===== ===== {{Code|ZbieranieDanychStronZAutonawigacji}} ===== {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> d5osfz6o5ommmq6g7uuo5an7m0szxsq 543831 543830 2026-05-22T07:04:14Z Persino 2851 /* {{Code|Ile}} */ 543831 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SpisTreści}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje lokalne == === {{Code|Ile}} === Funkcja liczy liczbę elementów we wszystkich podtabelach tabeli {{Code|tabela_rozdzial_artykulow}}, licząc od drugiej tabeli, po w ierwszej tabelimieści się podtabela z informacjami o rozdziale, w której znajdują się artykuły określone dalszymi podtabelami. Tymi podtabelami są od {{Code|2}} do {{Code|7}}, czyli {{Code|6}} tabelek, w których są artykuły, które zaliczamy do kategorii wliczane, tzn. one nie znajdują się w rozdziałach przetłumaczonych na małą literę, ale przedtem na nią była działana funkcją: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, usuwając z nich odstępy na końcach, w tym dolne myślniki, a wewnątrz zamieniając kolejne dolne myślniki i spacje na jedną spacją, na podstawie metafunkcji: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}, w: {{Code|{{ld2|Parametry}}}}. <syntaxhighlight lang="lua"> p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu={ ["licencja"]=true, ["inne"]=true, ["bibliografia"]=true, ["zobacz też"]=true, ["linki zewnętrzne"]=true, }; </syntaxhighlight> A od {{Code|7}} do {{Code|13}} znajdują się podtabele z artykułami, które już należą już tam, czyli też drugie {{Code|6}}. A ta powyższa tabela mieści się: {{Code|{{ld2|StronicowyParser/obiekty}}}}, a jego opis w: {{Code|{{sr|#p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu|p=StronicowyParser/obiekty}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_rodzaju_artykulu}} - numer podtabeli elementtu, do którego wsadzamy element, * {{Code|tabela_rozdzial_artykulow}} - tabela wraz podtabelami, od {{Code|1}} do {{Code|13}}, ale liczenie jest od {{Code|2}} === {{Code|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}} === == Funkcje tablicy transportu == === {{Code|p.AnalizaNapisuWprowadzeniaTekstu}} === === {{Code|p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}} === ==== Opis funkcji ==== ==== Funkcje lokalne ==== ===== {{Code|PomijajLinkiOrazLicencje}} ===== ===== {{Code|CzySzablonLinkLubLicencja}} ===== ===== {{Code|iteratorTekstuNaglowka}} ===== ===== {{Code|LiniaArtykulow}} ===== ===== {{Code|WsadzanieParametryDoTablicy}} ===== ====== {{Code|CzyZaliczac}} ====== ===== {{Code|AnalizaLiniiObiekty}} ===== === {{Code|p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku}} === === {{Code|p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji}} === ==== Opis funkcji ==== ==== Fukcje lokalne ==== ===== {{Code|Spis}} ===== ===== {{Code|InneSpisy}} ===== ===== {{Code|SpisRzeczy}} ===== ===== {{Code|IteratorFun}} ===== ===== {{Code|ZbieranieDanychStronZAutonawigacji}} ===== {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 8ln8068ufrjk2dlbk7wuw2no78tji31 543832 543831 2026-05-22T07:27:42Z Persino 2851 /* {{Code|Ile}} */ 543832 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SpisTreści}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje lokalne == === {{Code|Ile}} === Funkcja liczy liczbę elementów we wszystkich podtabelach tabeli {{Code|tabela_rozdzial_artykulow}}, licząc od drugiej tabeli, po pierwszej tabeli mieści się podtabela z informacjami o rozdziale, w której znajdują się artykuły określone dalszymi podtabelami. Tymi podtabelami są od {{Code|2}} do {{Code|7}}, czyli {{Code|6}} tabelek, w których są artykuły, które zaliczamy do kategorii wliczane, tzn. one nie znajdują się w rozdziałach przetłumaczonych na małą literę, ale przedtem na nią była działana funkcją: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, usuwając z nich odstępy na końcach, w tym dolne myślniki, a wewnątrz zamieniając kolejne dolne myślniki i spacje na jedną spacją, na podstawie metafunkcji: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}, w: {{Code|{{ld2|Parametry}}}}, aby porównać to z tablicą, by zaliczyć je do tego typu: <syntaxhighlight lang="lua"> p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu={ ["licencja"]=true, ["inne"]=true, ["bibliografia"]=true, ["zobacz też"]=true, ["linki zewnętrzne"]=true, }; </syntaxhighlight> A od {{Code|7}} do {{Code|13}} znajdują się podtabele z artykułami, które już należą już tam, czyli też drugie {{Code|6}}. A ta powyższa tabela mieści się: {{Code|{{ld2|StronicowyParser/obiekty}}}}, a jego opis w: {{Code|{{sr|#p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu|p=StronicowyParser/obiekty}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_rodzaju_artykulu}} - numer podtabeli elementtu, do którego wsadzamy element, * {{Code|tabela_rozdzial_artykulow}} - tabela wraz podtabelami, od {{Code|1}} do {{Code|13}}, ale liczenie jest od {{Code|2}} === {{Code|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}} === == Funkcje tablicy transportu == === {{Code|p.AnalizaNapisuWprowadzeniaTekstu}} === === {{Code|p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}} === ==== Opis funkcji ==== ==== Funkcje lokalne ==== ===== {{Code|PomijajLinkiOrazLicencje}} ===== ===== {{Code|CzySzablonLinkLubLicencja}} ===== ===== {{Code|iteratorTekstuNaglowka}} ===== ===== {{Code|LiniaArtykulow}} ===== ===== {{Code|WsadzanieParametryDoTablicy}} ===== ====== {{Code|CzyZaliczac}} ====== ===== {{Code|AnalizaLiniiObiekty}} ===== === {{Code|p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku}} === === {{Code|p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji}} === ==== Opis funkcji ==== ==== Fukcje lokalne ==== ===== {{Code|Spis}} ===== ===== {{Code|InneSpisy}} ===== ===== {{Code|SpisRzeczy}} ===== ===== {{Code|IteratorFun}} ===== ===== {{Code|ZbieranieDanychStronZAutonawigacji}} ===== {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 52z88xmyi40l6i93l05hbusi5qbz1mj 543833 543832 2026-05-22T07:29:41Z Persino 2851 /* {{Code|Ile}} */ 543833 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SpisTreści}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje lokalne == === {{Code|Ile}} === Funkcja liczy liczbę elementów we wszystkich podtabelach tabeli {{Code|tabela_rozdzial_artykulow}}, licząc od drugiej tabeli, po pierwszej tabeli mieści się podtabela z informacjami o rozdziale, w której znajdują się artykuły określone dalszymi podtabelami. Tymi podtabelami są od {{Code|2}} do {{Code|7}}, czyli {{Code|6}} tabelek, w których są artykuły, które zaliczamy do kategorii wliczane, tzn. one nie znajdują się w takich rozdziałach przetłumaczonych na małą literę, ale przedtem na nią była działana funkcją: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, usuwając z nich odstępy na końcach, w tym dolne myślniki, a wewnątrz zamieniając kolejne dolne myślniki i spacje na jedną spacją, na podstawie metafunkcji: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}, w: {{Code|{{ld2|Parametry}}}}, aby porównać to z tablicą, by zaliczyć je do tego typu: <syntaxhighlight lang="lua"> p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu={ ["licencja"]=true, ["inne"]=true, ["bibliografia"]=true, ["zobacz też"]=true, ["linki zewnętrzne"]=true, }; </syntaxhighlight> A od {{Code|7}} do {{Code|13}} znajdują się podtabele z artykułami, które już należą już tam, czyli też drugie {{Code|6}}. A ta powyższa tabela mieści się: {{Code|{{ld2|StronicowyParser/obiekty}}}}, a jego opis w: {{Code|{{sr|#p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu|p=StronicowyParser/obiekty}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_rodzaju_artykulu}} - numer podtabeli elementtu, do którego wsadzamy element, * {{Code|tabela_rozdzial_artykulow}} - tabela wraz podtabelami, od {{Code|1}} do {{Code|13}}, ale liczenie jest od {{Code|2}} === {{Code|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}} === == Funkcje tablicy transportu == === {{Code|p.AnalizaNapisuWprowadzeniaTekstu}} === === {{Code|p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}} === ==== Opis funkcji ==== ==== Funkcje lokalne ==== ===== {{Code|PomijajLinkiOrazLicencje}} ===== ===== {{Code|CzySzablonLinkLubLicencja}} ===== ===== {{Code|iteratorTekstuNaglowka}} ===== ===== {{Code|LiniaArtykulow}} ===== ===== {{Code|WsadzanieParametryDoTablicy}} ===== ====== {{Code|CzyZaliczac}} ====== ===== {{Code|AnalizaLiniiObiekty}} ===== === {{Code|p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku}} === === {{Code|p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji}} === ==== Opis funkcji ==== ==== Fukcje lokalne ==== ===== {{Code|Spis}} ===== ===== {{Code|InneSpisy}} ===== ===== {{Code|SpisRzeczy}} ===== ===== {{Code|IteratorFun}} ===== ===== {{Code|ZbieranieDanychStronZAutonawigacji}} ===== {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> hmnlev8abmb93hl3b4txlc6u3zsrlaq Wikibooks:Moduły/StronicowyParser/obiekty 4 63527 543814 542197 2026-05-22T05:08:43Z Persino 2851 543814 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/obiekty}}|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 wewnętrzne modułu == === {{Code|m.LinkiSzablonyNieNumerowane}} === === {{Code|m.LinkiSzablonyNapisuWprowadzeniaTekstu}} === === {{Code|m.LinkiSzablonyTekstu}} === === {{Code|m.NienumerowaneSzablony}} === === {{Code|m.NienumerowaneSzablonyNapisuWprowadzeniaTekstu}} === === {{Code|m.NienumerowaneSzablonyTekstu}} === === {{Code|m.SzablonyStronicowegoParsera}} === ==== {{Code|SzablonyUchwytoweNapisuWprowadzeniaTekstu}} ==== ==== {{Code|TabNumer}} ==== ==== {{Code|RozpatrywanaTablica}} ==== ==== {{Code|IndeksowaneNaTak}} ==== === {{Code|m.TablicaObiektowychForm}} === === {{Code|m.ElementyObiektoweNumerowaneINienumerowaneZUchwytami}} === ==== {{Code|Obiekty}} ==== === {{Code|m.ElementyReferencjiObiektowychNumerowanychZUchwytami}} === ==== {{Code|Obiekty}} ==== === {{Code|m.FormatElementowyObiektowy}} === === {{Code|m.FormatElementowyReferencjiObiektowych}} === ==== {{Code|Obiekty}} ==== === {{Code|m.StronyZbiorcze}} === ==== {{Code|Ziorcze}} ==== === {{Code|m.SzablonyFormartowaniaTekstu}} === ==== {{Code|DodatDoTablicy}} ==== == Tablice tablicy transportu == === {{Code|p.wypowiedzi}} === === {{Code|p.obiekty}} === === {{Code|p.normalne}} === === {{Code|p.napisy_wprowadzenia_tekstu}} === === {{Code|p.tekst}} === === {{Code|p.nazwa_szablonu_wprowadzenia_tekstu}} === === {{Code|p.linki_szablony_wprowadzenia_tekstu}} === === {{Code|p.nienumerowane_z_uchwytami_szablony_wprowadzenia_tekstu}} === === {{Code|p.linki_szablony_tekstu}} === === {{Code|p.nienumerowane_z_uchwytami_szablony_tekstu}} === === {{Code|p.uklad_autonawigacji}} === === {{Code|p.bez_uchwytow_spis_rzeczy_strony}} === === {{Code|p.szablony_z_lokalnym_spisem_rzeczy_strony}} === === {{Code|p.szablony_kontenerowe}} === === {{Code|p.szablony_stronicowe_niekontenerowe}} === === {{Code|p.szablony_stronicowe_kontenerowe_formatowania_wzorowego}} === === {{Code|p.szablony_stronicowego_parsera}} === === {{Code|p.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane}} === === {{Code|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane}} === === {{Code|p.format_elementowy_obiektowy}} === === {{Code|p.format_elementowy_referencji_obiektow}} === === {{Code|p.tablica_obiektowych_form}} === === {{Code|p.szablony_stron_zbiorczych}} === === {{Code|p.inne_szablony_stron_zbiorczych}} === === {{Code|p.strona_zbiorcza}} === === {{Code|p.strona_start_inne}} === === {{Code|p.strona_start}} === === {{Code|p.strona_start_ze_spisem_rzeczy_strony}} === === {{Code|p.strona_start_analiza_zaawansowana_spis_rzeczy_strony}} === === {{Code|p.szablony_stronicowe_formatowania_tekstu}} === === {{Code|p.tablica_nazw_ramek_lua}} === === {{Code|p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu}} === === {{Code|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}} === === {{Code|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}} === === {{Code|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe}} === === {{Code|p.artykularne_niespisowe}} === === {{Code|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu}} === === {{Code|p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu}} === === {{Code|p.szablony_z_dodatkiem_obiektowym}} === === {{Code|p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu}} === === {{Code|p.szablony_dozwolone_w_nazwach_linkowych}} === === {{Code|p.szablony_rozwijane_przez_javascript_nazwowe_linkowe}} === === {{Code|p.szablony_do_usuwania_z_tekstu}} === === {{Code|p.linki_szablony_elementy_spisu_rzeczy}} === === {{Code|p.kody_szablony_linkowe_przestrzenne}} === === {{Code|p.kody_inne_szablony_linkowe_inteligentne}} === === {{Code|p.kody_szablony_linkowe_projektowe}} === === {{Code|p.kody_szablony_linkowe_dialektu}} === === {{Code|p.inne_linki_szablony_elementy_spisu_rzeczy}} === === {{Code|p.szablony_w_nie_w_tej_samej_linii}} === === {{Code|p.szablony_kompletowania_stron_woluminu}} === === {{Code|p.szablony_wprowadzenia_napisu_spisu_rzeczy}} === === {{Code|p.szablony_dokumentacji}} === === {{Code|p.szablony_wykorzystywane_przez_strony_zbiorcze}} === === {{Code|p.szablony_licencji}} === === {{Code|p.szablony_ozdobne_stron_woluminu}} === === {{Code|p.szablony_bez_generowania_napisowego}} === === {{Code|p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego}} === === {{Code|p.strony_main_page_projektu}} === === {{Code|p.szablony_nie_typowo_linkowe}} === === {{Code|p.szablony_przypisowe}} === === {{Code|p.napisy_wprowadzenia_tekstu_przypisowych}} === === {{Code|p.magiczne_derektywy}} === === {{Code|p.znaczniki_szablonow}} === === {{Code|p.szablony_indeksowania}} === === {{Code|p.nazwy_przestrzeni_nazw_przekierowaniowe_linkowe_inteligentne}} === === {{Code|p.nazwy_projektowe_serwisy_linkowe_inteligentne}} === === {{Code|p.przekierowania_szablonowe_linkowe_inteligentne_inne}} === === {{Code|p.nazwy_szablonowe_kolidacja}} === === {{Code|p.litery_przestrzeni_kolidacja}} === === {{Code|p.znaczniki_wprowadzenia_tekstu}} === === {{Code|p.szablony_sztucznego_wprowadzenia_tekstu}} === === {{Code|p.szablony_spisu_rzeczy_artykularnego_wprowadzenia_tekstu}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> j3a3smysxi8397tr5kdy6i1ppvzyitq 543815 543814 2026-05-22T05:14:12Z Persino 2851 /* Funkcje wewnętrzne modułu */ 543815 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/obiekty}}|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 wewnętrzne modułu == Funkcje w tym module zdefiniowane są lokalne w tablicy {{Code|m}}, tzn.: <syntaxhighlight lang="lua"> local m={}; </syntaxhighlight> I one są dostępne tylko tam, i nigdzie indziej. === {{Code|m.LinkiSzablonyNieNumerowane}} === === {{Code|m.LinkiSzablonyNapisuWprowadzeniaTekstu}} === === {{Code|m.LinkiSzablonyTekstu}} === === {{Code|m.NienumerowaneSzablony}} === === {{Code|m.NienumerowaneSzablonyNapisuWprowadzeniaTekstu}} === === {{Code|m.NienumerowaneSzablonyTekstu}} === === {{Code|m.SzablonyStronicowegoParsera}} === ==== {{Code|SzablonyUchwytoweNapisuWprowadzeniaTekstu}} ==== ==== {{Code|TabNumer}} ==== ==== {{Code|RozpatrywanaTablica}} ==== ==== {{Code|IndeksowaneNaTak}} ==== === {{Code|m.TablicaObiektowychForm}} === === {{Code|m.ElementyObiektoweNumerowaneINienumerowaneZUchwytami}} === ==== {{Code|Obiekty}} ==== === {{Code|m.ElementyReferencjiObiektowychNumerowanychZUchwytami}} === ==== {{Code|Obiekty}} ==== === {{Code|m.FormatElementowyObiektowy}} === === {{Code|m.FormatElementowyReferencjiObiektowych}} === ==== {{Code|Obiekty}} ==== === {{Code|m.StronyZbiorcze}} === ==== {{Code|Ziorcze}} ==== === {{Code|m.SzablonyFormartowaniaTekstu}} === ==== {{Code|DodatDoTablicy}} ==== == Tablice tablicy transportu == === {{Code|p.wypowiedzi}} === === {{Code|p.obiekty}} === === {{Code|p.normalne}} === === {{Code|p.napisy_wprowadzenia_tekstu}} === === {{Code|p.tekst}} === === {{Code|p.nazwa_szablonu_wprowadzenia_tekstu}} === === {{Code|p.linki_szablony_wprowadzenia_tekstu}} === === {{Code|p.nienumerowane_z_uchwytami_szablony_wprowadzenia_tekstu}} === === {{Code|p.linki_szablony_tekstu}} === === {{Code|p.nienumerowane_z_uchwytami_szablony_tekstu}} === === {{Code|p.uklad_autonawigacji}} === === {{Code|p.bez_uchwytow_spis_rzeczy_strony}} === === {{Code|p.szablony_z_lokalnym_spisem_rzeczy_strony}} === === {{Code|p.szablony_kontenerowe}} === === {{Code|p.szablony_stronicowe_niekontenerowe}} === === {{Code|p.szablony_stronicowe_kontenerowe_formatowania_wzorowego}} === === {{Code|p.szablony_stronicowego_parsera}} === === {{Code|p.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane}} === === {{Code|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane}} === === {{Code|p.format_elementowy_obiektowy}} === === {{Code|p.format_elementowy_referencji_obiektow}} === === {{Code|p.tablica_obiektowych_form}} === === {{Code|p.szablony_stron_zbiorczych}} === === {{Code|p.inne_szablony_stron_zbiorczych}} === === {{Code|p.strona_zbiorcza}} === === {{Code|p.strona_start_inne}} === === {{Code|p.strona_start}} === === {{Code|p.strona_start_ze_spisem_rzeczy_strony}} === === {{Code|p.strona_start_analiza_zaawansowana_spis_rzeczy_strony}} === === {{Code|p.szablony_stronicowe_formatowania_tekstu}} === === {{Code|p.tablica_nazw_ramek_lua}} === === {{Code|p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu}} === === {{Code|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}} === === {{Code|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}} === === {{Code|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe}} === === {{Code|p.artykularne_niespisowe}} === === {{Code|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu}} === === {{Code|p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu}} === === {{Code|p.szablony_z_dodatkiem_obiektowym}} === === {{Code|p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu}} === === {{Code|p.szablony_dozwolone_w_nazwach_linkowych}} === === {{Code|p.szablony_rozwijane_przez_javascript_nazwowe_linkowe}} === === {{Code|p.szablony_do_usuwania_z_tekstu}} === === {{Code|p.linki_szablony_elementy_spisu_rzeczy}} === === {{Code|p.kody_szablony_linkowe_przestrzenne}} === === {{Code|p.kody_inne_szablony_linkowe_inteligentne}} === === {{Code|p.kody_szablony_linkowe_projektowe}} === === {{Code|p.kody_szablony_linkowe_dialektu}} === === {{Code|p.inne_linki_szablony_elementy_spisu_rzeczy}} === === {{Code|p.szablony_w_nie_w_tej_samej_linii}} === === {{Code|p.szablony_kompletowania_stron_woluminu}} === === {{Code|p.szablony_wprowadzenia_napisu_spisu_rzeczy}} === === {{Code|p.szablony_dokumentacji}} === === {{Code|p.szablony_wykorzystywane_przez_strony_zbiorcze}} === === {{Code|p.szablony_licencji}} === === {{Code|p.szablony_ozdobne_stron_woluminu}} === === {{Code|p.szablony_bez_generowania_napisowego}} === === {{Code|p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego}} === === {{Code|p.strony_main_page_projektu}} === === {{Code|p.szablony_nie_typowo_linkowe}} === === {{Code|p.szablony_przypisowe}} === === {{Code|p.napisy_wprowadzenia_tekstu_przypisowych}} === === {{Code|p.magiczne_derektywy}} === === {{Code|p.znaczniki_szablonow}} === === {{Code|p.szablony_indeksowania}} === === {{Code|p.nazwy_przestrzeni_nazw_przekierowaniowe_linkowe_inteligentne}} === === {{Code|p.nazwy_projektowe_serwisy_linkowe_inteligentne}} === === {{Code|p.przekierowania_szablonowe_linkowe_inteligentne_inne}} === === {{Code|p.nazwy_szablonowe_kolidacja}} === === {{Code|p.litery_przestrzeni_kolidacja}} === === {{Code|p.znaczniki_wprowadzenia_tekstu}} === === {{Code|p.szablony_sztucznego_wprowadzenia_tekstu}} === === {{Code|p.szablony_spisu_rzeczy_artykularnego_wprowadzenia_tekstu}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 80hh1lbklgm8g98orojlvd53uii9w8d 543816 543815 2026-05-22T05:15:13Z Persino 2851 /* Funkcje wewnętrzne modułu */ 543816 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/obiekty}}|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 wewnętrzne modułu == Funkcje w tym module zdefiniowane są lokalne w tablicy {{Code|m}}, tzn.: <syntaxhighlight lang="lua"> local m={}; </syntaxhighlight> I one są dostępne tylko tam, i nigdzie indziej. One są jedynie potrzebne, do generowania niektórych zmiennych zwracanych w tablicy transportu. === {{Code|m.LinkiSzablonyNieNumerowane}} === === {{Code|m.LinkiSzablonyNapisuWprowadzeniaTekstu}} === === {{Code|m.LinkiSzablonyTekstu}} === === {{Code|m.NienumerowaneSzablony}} === === {{Code|m.NienumerowaneSzablonyNapisuWprowadzeniaTekstu}} === === {{Code|m.NienumerowaneSzablonyTekstu}} === === {{Code|m.SzablonyStronicowegoParsera}} === ==== {{Code|SzablonyUchwytoweNapisuWprowadzeniaTekstu}} ==== ==== {{Code|TabNumer}} ==== ==== {{Code|RozpatrywanaTablica}} ==== ==== {{Code|IndeksowaneNaTak}} ==== === {{Code|m.TablicaObiektowychForm}} === === {{Code|m.ElementyObiektoweNumerowaneINienumerowaneZUchwytami}} === ==== {{Code|Obiekty}} ==== === {{Code|m.ElementyReferencjiObiektowychNumerowanychZUchwytami}} === ==== {{Code|Obiekty}} ==== === {{Code|m.FormatElementowyObiektowy}} === === {{Code|m.FormatElementowyReferencjiObiektowych}} === ==== {{Code|Obiekty}} ==== === {{Code|m.StronyZbiorcze}} === ==== {{Code|Ziorcze}} ==== === {{Code|m.SzablonyFormartowaniaTekstu}} === ==== {{Code|DodatDoTablicy}} ==== == Tablice tablicy transportu == === {{Code|p.wypowiedzi}} === === {{Code|p.obiekty}} === === {{Code|p.normalne}} === === {{Code|p.napisy_wprowadzenia_tekstu}} === === {{Code|p.tekst}} === === {{Code|p.nazwa_szablonu_wprowadzenia_tekstu}} === === {{Code|p.linki_szablony_wprowadzenia_tekstu}} === === {{Code|p.nienumerowane_z_uchwytami_szablony_wprowadzenia_tekstu}} === === {{Code|p.linki_szablony_tekstu}} === === {{Code|p.nienumerowane_z_uchwytami_szablony_tekstu}} === === {{Code|p.uklad_autonawigacji}} === === {{Code|p.bez_uchwytow_spis_rzeczy_strony}} === === {{Code|p.szablony_z_lokalnym_spisem_rzeczy_strony}} === === {{Code|p.szablony_kontenerowe}} === === {{Code|p.szablony_stronicowe_niekontenerowe}} === === {{Code|p.szablony_stronicowe_kontenerowe_formatowania_wzorowego}} === === {{Code|p.szablony_stronicowego_parsera}} === === {{Code|p.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane}} === === {{Code|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane}} === === {{Code|p.format_elementowy_obiektowy}} === === {{Code|p.format_elementowy_referencji_obiektow}} === === {{Code|p.tablica_obiektowych_form}} === === {{Code|p.szablony_stron_zbiorczych}} === === {{Code|p.inne_szablony_stron_zbiorczych}} === === {{Code|p.strona_zbiorcza}} === === {{Code|p.strona_start_inne}} === === {{Code|p.strona_start}} === === {{Code|p.strona_start_ze_spisem_rzeczy_strony}} === === {{Code|p.strona_start_analiza_zaawansowana_spis_rzeczy_strony}} === === {{Code|p.szablony_stronicowe_formatowania_tekstu}} === === {{Code|p.tablica_nazw_ramek_lua}} === === {{Code|p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu}} === === {{Code|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}} === === {{Code|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}} === === {{Code|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe}} === === {{Code|p.artykularne_niespisowe}} === === {{Code|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu}} === === {{Code|p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu}} === === {{Code|p.szablony_z_dodatkiem_obiektowym}} === === {{Code|p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu}} === === {{Code|p.szablony_dozwolone_w_nazwach_linkowych}} === === {{Code|p.szablony_rozwijane_przez_javascript_nazwowe_linkowe}} === === {{Code|p.szablony_do_usuwania_z_tekstu}} === === {{Code|p.linki_szablony_elementy_spisu_rzeczy}} === === {{Code|p.kody_szablony_linkowe_przestrzenne}} === === {{Code|p.kody_inne_szablony_linkowe_inteligentne}} === === {{Code|p.kody_szablony_linkowe_projektowe}} === === {{Code|p.kody_szablony_linkowe_dialektu}} === === {{Code|p.inne_linki_szablony_elementy_spisu_rzeczy}} === === {{Code|p.szablony_w_nie_w_tej_samej_linii}} === === {{Code|p.szablony_kompletowania_stron_woluminu}} === === {{Code|p.szablony_wprowadzenia_napisu_spisu_rzeczy}} === === {{Code|p.szablony_dokumentacji}} === === {{Code|p.szablony_wykorzystywane_przez_strony_zbiorcze}} === === {{Code|p.szablony_licencji}} === === {{Code|p.szablony_ozdobne_stron_woluminu}} === === {{Code|p.szablony_bez_generowania_napisowego}} === === {{Code|p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego}} === === {{Code|p.strony_main_page_projektu}} === === {{Code|p.szablony_nie_typowo_linkowe}} === === {{Code|p.szablony_przypisowe}} === === {{Code|p.napisy_wprowadzenia_tekstu_przypisowych}} === === {{Code|p.magiczne_derektywy}} === === {{Code|p.znaczniki_szablonow}} === === {{Code|p.szablony_indeksowania}} === === {{Code|p.nazwy_przestrzeni_nazw_przekierowaniowe_linkowe_inteligentne}} === === {{Code|p.nazwy_projektowe_serwisy_linkowe_inteligentne}} === === {{Code|p.przekierowania_szablonowe_linkowe_inteligentne_inne}} === === {{Code|p.nazwy_szablonowe_kolidacja}} === === {{Code|p.litery_przestrzeni_kolidacja}} === === {{Code|p.znaczniki_wprowadzenia_tekstu}} === === {{Code|p.szablony_sztucznego_wprowadzenia_tekstu}} === === {{Code|p.szablony_spisu_rzeczy_artykularnego_wprowadzenia_tekstu}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 7g27qf3nkz6i17c0x9o6hcaacpu9o7v 543817 543816 2026-05-22T05:17:48Z Persino 2851 /* Tablice tablicy transportu */ 543817 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/obiekty}}|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 wewnętrzne modułu == Funkcje w tym module zdefiniowane są lokalne w tablicy {{Code|m}}, tzn.: <syntaxhighlight lang="lua"> local m={}; </syntaxhighlight> I one są dostępne tylko tam, i nigdzie indziej. One są jedynie potrzebne, do generowania niektórych zmiennych zwracanych w tablicy transportu. === {{Code|m.LinkiSzablonyNieNumerowane}} === === {{Code|m.LinkiSzablonyNapisuWprowadzeniaTekstu}} === === {{Code|m.LinkiSzablonyTekstu}} === === {{Code|m.NienumerowaneSzablony}} === === {{Code|m.NienumerowaneSzablonyNapisuWprowadzeniaTekstu}} === === {{Code|m.NienumerowaneSzablonyTekstu}} === === {{Code|m.SzablonyStronicowegoParsera}} === ==== {{Code|SzablonyUchwytoweNapisuWprowadzeniaTekstu}} ==== ==== {{Code|TabNumer}} ==== ==== {{Code|RozpatrywanaTablica}} ==== ==== {{Code|IndeksowaneNaTak}} ==== === {{Code|m.TablicaObiektowychForm}} === === {{Code|m.ElementyObiektoweNumerowaneINienumerowaneZUchwytami}} === ==== {{Code|Obiekty}} ==== === {{Code|m.ElementyReferencjiObiektowychNumerowanychZUchwytami}} === ==== {{Code|Obiekty}} ==== === {{Code|m.FormatElementowyObiektowy}} === === {{Code|m.FormatElementowyReferencjiObiektowych}} === ==== {{Code|Obiekty}} ==== === {{Code|m.StronyZbiorcze}} === ==== {{Code|Ziorcze}} ==== === {{Code|m.SzablonyFormartowaniaTekstu}} === ==== {{Code|DodatDoTablicy}} ==== == Tablice tablicy transportu == Tutaj tablice są zwracane w tablicy transportu, tzn.: <syntaxhighlight lang="lua"> local p={}; ---- Początek modułu; ... ---- Tutaj są zawarte definicje wszystkich zmiennych tym rozdziale definiowanych; return p; ---- Koniec modułu; </syntaxhighlight> === {{Code|p.wypowiedzi}} === === {{Code|p.obiekty}} === === {{Code|p.normalne}} === === {{Code|p.napisy_wprowadzenia_tekstu}} === === {{Code|p.tekst}} === === {{Code|p.nazwa_szablonu_wprowadzenia_tekstu}} === === {{Code|p.linki_szablony_wprowadzenia_tekstu}} === === {{Code|p.nienumerowane_z_uchwytami_szablony_wprowadzenia_tekstu}} === === {{Code|p.linki_szablony_tekstu}} === === {{Code|p.nienumerowane_z_uchwytami_szablony_tekstu}} === === {{Code|p.uklad_autonawigacji}} === === {{Code|p.bez_uchwytow_spis_rzeczy_strony}} === === {{Code|p.szablony_z_lokalnym_spisem_rzeczy_strony}} === === {{Code|p.szablony_kontenerowe}} === === {{Code|p.szablony_stronicowe_niekontenerowe}} === === {{Code|p.szablony_stronicowe_kontenerowe_formatowania_wzorowego}} === === {{Code|p.szablony_stronicowego_parsera}} === === {{Code|p.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane}} === === {{Code|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane}} === === {{Code|p.format_elementowy_obiektowy}} === === {{Code|p.format_elementowy_referencji_obiektow}} === === {{Code|p.tablica_obiektowych_form}} === === {{Code|p.szablony_stron_zbiorczych}} === === {{Code|p.inne_szablony_stron_zbiorczych}} === === {{Code|p.strona_zbiorcza}} === === {{Code|p.strona_start_inne}} === === {{Code|p.strona_start}} === === {{Code|p.strona_start_ze_spisem_rzeczy_strony}} === === {{Code|p.strona_start_analiza_zaawansowana_spis_rzeczy_strony}} === === {{Code|p.szablony_stronicowe_formatowania_tekstu}} === === {{Code|p.tablica_nazw_ramek_lua}} === === {{Code|p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu}} === === {{Code|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}} === === {{Code|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci}} === === {{Code|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe}} === === {{Code|p.artykularne_niespisowe}} === === {{Code|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu}} === === {{Code|p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu}} === === {{Code|p.szablony_z_dodatkiem_obiektowym}} === === {{Code|p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu}} === === {{Code|p.szablony_dozwolone_w_nazwach_linkowych}} === === {{Code|p.szablony_rozwijane_przez_javascript_nazwowe_linkowe}} === === {{Code|p.szablony_do_usuwania_z_tekstu}} === === {{Code|p.linki_szablony_elementy_spisu_rzeczy}} === === {{Code|p.kody_szablony_linkowe_przestrzenne}} === === {{Code|p.kody_inne_szablony_linkowe_inteligentne}} === === {{Code|p.kody_szablony_linkowe_projektowe}} === === {{Code|p.kody_szablony_linkowe_dialektu}} === === {{Code|p.inne_linki_szablony_elementy_spisu_rzeczy}} === === {{Code|p.szablony_w_nie_w_tej_samej_linii}} === === {{Code|p.szablony_kompletowania_stron_woluminu}} === === {{Code|p.szablony_wprowadzenia_napisu_spisu_rzeczy}} === === {{Code|p.szablony_dokumentacji}} === === {{Code|p.szablony_wykorzystywane_przez_strony_zbiorcze}} === === {{Code|p.szablony_licencji}} === === {{Code|p.szablony_ozdobne_stron_woluminu}} === === {{Code|p.szablony_bez_generowania_napisowego}} === === {{Code|p.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego}} === === {{Code|p.strony_main_page_projektu}} === === {{Code|p.szablony_nie_typowo_linkowe}} === === {{Code|p.szablony_przypisowe}} === === {{Code|p.napisy_wprowadzenia_tekstu_przypisowych}} === === {{Code|p.magiczne_derektywy}} === === {{Code|p.znaczniki_szablonow}} === === {{Code|p.szablony_indeksowania}} === === {{Code|p.nazwy_przestrzeni_nazw_przekierowaniowe_linkowe_inteligentne}} === === {{Code|p.nazwy_projektowe_serwisy_linkowe_inteligentne}} === === {{Code|p.przekierowania_szablonowe_linkowe_inteligentne_inne}} === === {{Code|p.nazwy_szablonowe_kolidacja}} === === {{Code|p.litery_przestrzeni_kolidacja}} === === {{Code|p.znaczniki_wprowadzenia_tekstu}} === === {{Code|p.szablony_sztucznego_wprowadzenia_tekstu}} === === {{Code|p.szablony_spisu_rzeczy_artykularnego_wprowadzenia_tekstu}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> dpu5t5y01qdvofo3aspqrpyb28k9k0y Pruski/Lekcja32 0 63544 543762 543613 2026-05-21T21:20:27Z Aklbmd164 37133 /* Tworzenie przymiotników pochodzących od nazw kolorów */ 543762 wikitext text/x-wiki '''<big>Lakciōni 32</big>''' == Bārwis – Kolory == <gallery> File:Starr 080715-9250 Hibiscus rosa-sinensis.jpg|'''rōzains''' <25> – różowy File:Violet flowers (16739119173).jpg|'''wiōlats''' <25> – fioletowy File:Why is tonight's sky purple?.jpg|'''pūrpurnas''' <25> – purpurowy File:Blue sky with wisps of cloud on a clear summer morning.jpg|'''galīmbs''' <25> – niebieski, błękitny File:Lascar The stars, dark blue sky and the Kilimanjaro! (4463943705).jpg|'''timraigalīmbs''' <25> – ciemnoniebieski, modry File:Green grass texture.jpg|'''zallis''' <27> – zielony File:Starr-090421-6214-Olea europaea subsp cuspidata-fruit and leaves-Pukalani-Maui (24858998711).jpg|'''ōliwiskai zallis''' <27> – oliwkowy File:Lemons for sale.JPG|'''geltaīns''' <25> – żółty File:"Untitled" (Golden), Felix Gonzalez-Torres, SFMoMA 2009.jpg|'''ausaīns''' <25> – złoty File:Sonhar-com-laranja.jpg|'''ōranzins''' <25> – pomarańczowy File:Red rose evening light.jpg|'''wūrmis''' <27> – czerwony File:Wood Material Background Wallpaper Texture Concept (32881036551).jpg|'''brūns''' <25> – brązowy, brunatny File:Greater Sage Grouse Flying Seedskadee NWR (15016213373).jpg|'''kīrsnas''' <26> – czarny File:Cat (30829523273).jpg|'''sīws''' <26> – szary, siwy File:Vulpes lagopus in Iceland (cropped 2).jpg|'''gaīls''' <26> – biały </gallery> == Tworzenie przymiotników pochodzących od nazw kolorów == By powiedzieć np. ''białawy'', ''zielonkawy'', do nazwy koloru dodajemy końcówkę ''-awingis/-awīngis'', np.: * gaīl<span style="color:red">s</span> ⇒ gail<span style="color:red">awīngis</span> (białawy) * zall<span style="color:red">is</span> ⇒ zal<span style="color:red">awīngis</span> (zielonkawy) Jeśli chcemy powiedzieć np. ''ubrany na biało'', ''ubrany na czarno'', do nazwy koloru dodajemy końcówkę ''-rūkins'', np.: * gaīl<span style="color:red">s</span> ⇒ gaila<span style="color:red">rūkins</span> (ubrany na biało) * kīrsn<span style="color:red">as</span> ⇒ kirsna<span style="color:red">rūkins</span> (ubrany na czarno) Słowa takie jak np. ''siwowłosy'', ''złotowłosy'' tworzy się dodając do nazwy koloru końcówkę ''-skebbelingis'', np.: * sīw<span style="color:red">s</span> ⇒ siwa<span style="color:red">skebbelingis</span> (siwowłosy) * ausaīn<span style="color:red">s</span> ⇒ ausaina<span style="color:red">skebbelingis</span> (złotowłosy) == Przydatne wyrażenia == * '''Laukā/Timrā bārwi''' – Jasny/Ciemny kolor * '''Kawīda twajā milītasi bārwi ast?''' – Jaki jest twój ulubiony kolor? * '''Galīmba/Zalli/Wiōlata ast majā milītasi bārwi''' – Niebieski/Zielony/Fioletowy to mój ulubiony kolor. * '''Rōzaina/Geltaīna/Zalli bārwi spārtai padīnga mennei''' – Bardzo lubię kolor różowy/żółty/zielony. * '''Gaīls/Wūrmis/Galīmbs wūps''' – Biała/Czerwona/Niebieska farba * '''Kirsnā tinti/tūši''' – Czarny atrament/tusz * '''Geltaīna/Wūrmi/Galīmba ast aīnan iz warīstis bārwins''' – Żółty/Czerwony/Niebieski to jeden z kolorów tęczy. qouwxzxfkgfyi2o90jsw7u3f1g0vamt Szablon:Śródtekst 10 63570 543721 543711 2026-05-21T13:33:06Z Persino 2851 Persino przeniósł(-osła) stronę [[Szablon:ŚródTekst]] do [[Szablon:Śródtekst]], bez pozostawienia przekierowania pod starym tytułem 543711 wikitext text/x-wiki <includeonly><!-- -->{{#invoke:StronicowyParser|NumerŚródTekstu | uchwyt = {{{uchwyt|{{{2|}}}}}} | nazwa szablonu = {{{nazwa szablonu|ŚródTekst}}} | klasa = | styl = }}<!-- -->{{#if:{{{bez kategorii stronicowych|}}}||{{#invoke:StronicowyParser|WstawKategorie|{{{uchwyt|{{{2|}}}}}}|ŚródTekst}}}}<!-- -->{{#if:{{{bez dodatkowych sprawdzeń|}}}||<!-- -->{{#invoke:Sprawdź|Parametry | = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s %s do sprawdzenia{{))}} | 2 = txt!;uchwyt | uchwyt = txt!;2 | tekst = txt!;treść;1 | treść = txt!;tekst;1 | 1 = txt!;tekst;treść | bez kategorii stronicowych = }}<!-- -->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 23inj03kvauok3s9du5lwm811w1m3ww 543724 543721 2026-05-21T13:34:58Z Persino 2851 543724 wikitext text/x-wiki <includeonly><!-- -->{{#invoke:StronicowyParser|NumerŚródTekstu | uchwyt = {{{uchwyt|{{{2|}}}}}} | nazwa szablonu = {{{nazwa szablonu|ŚródTekst}}} | klasa = | styl = }}<!-- -->{{#if:{{{bez kategorii stronicowych|}}}||{{#invoke:StronicowyParser|WstawKategorie|{{{uchwyt|{{{2|}}}}}}|Śródtekst}}}}<!-- -->{{#if:{{{bez dodatkowych sprawdzeń|}}}||<!-- -->{{#invoke:Sprawdź|Parametry | = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s %s do sprawdzenia{{))}} | 2 = txt!;uchwyt | uchwyt = txt!;2 | tekst = txt!;treść;1 | treść = txt!;tekst;1 | 1 = txt!;tekst;treść | bez kategorii stronicowych = }}<!-- -->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> gu533la31up8lr0imtir4uo4x3z9jrg 543729 543724 2026-05-21T13:37:36Z Persino 2851 543729 wikitext text/x-wiki <includeonly><!-- -->{{#invoke:StronicowyParser|NumerŚródtekstu | uchwyt = {{{uchwyt|{{{2|}}}}}} | nazwa szablonu = {{{nazwa szablonu|ŚródTekst}}} | klasa = | styl = }}<!-- -->{{#if:{{{bez kategorii stronicowych|}}}||{{#invoke:StronicowyParser|WstawKategorie|{{{uchwyt|{{{2|}}}}}}|Śródtekst}}}}<!-- -->{{#if:{{{bez dodatkowych sprawdzeń|}}}||<!-- -->{{#invoke:Sprawdź|Parametry | = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s %s do sprawdzenia{{))}} | 2 = txt!;uchwyt | uchwyt = txt!;2 | tekst = txt!;treść;1 | treść = txt!;tekst;1 | 1 = txt!;tekst;treść | bez kategorii stronicowych = }}<!-- -->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> j2qprqdkpzqcwkbdldbl8m6cd5sd1ew 543775 543729 2026-05-21T22:29:36Z Persino 2851 543775 wikitext text/x-wiki <includeonly><!-- -->{{#invoke:StronicowyParser|NumerŚródtekstu | uchwyt = {{{uchwyt|{{{2|}}}}}} | nazwa szablonu = {{{nazwa szablonu|ŚródTekst}}} | klasa = | styl = | bez automatu = {{{bez automatu|}}} }}<!-- -->{{#if:{{{bez kategorii stronicowych|}}}{{{bez automatu|}}}||{{#invoke:StronicowyParser|WstawKategorie|{{{uchwyt|{{{2|}}}}}}|Śródtekst}}}}<!-- -->{{#if:{{{bez dodatkowych sprawdzeń|}}}||<!-- -->{{#invoke:Sprawdź|Parametry | = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s %s do sprawdzenia{{))}} | 2 = txt!;uchwyt | uchwyt = txt!;2 | tekst = txt!;treść;1 | treść = txt!;tekst;1 | 1 = txt!;tekst;treść | bez kategorii stronicowych = }}<!-- -->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 3tabg9ggem8m18c4k9wp85uxqf9ca2d 543776 543775 2026-05-21T22:30:03Z Persino 2851 543776 wikitext text/x-wiki <includeonly><!-- -->{{#invoke:StronicowyParser|NumerŚródtekstu | uchwyt = {{{uchwyt|{{{2|}}}}}} | nazwa szablonu = {{{nazwa szablonu|ŚródTekst}}} | klasa = | styl = | bez automatu = {{{bez automatu|}}} }}<!-- -->{{#if:{{{bez kategorii stronicowych|}}}{{{bez automatu|}}}||{{#invoke:StronicowyParser|WstawKategorie|{{{uchwyt|{{{2|}}}}}}|Śródtekst}}}}<!-- -->{{#if:{{{bez dodatkowych sprawdzeń|}}}||<!-- -->{{#invoke:Sprawdź|Parametry | = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s %s do sprawdzenia{{))}} | 2 = txt!;uchwyt | uchwyt = txt!;2 | tekst = txt!;treść;1 | treść = txt!;tekst;1 | 1 = txt!;tekst;treść | bez kategorii stronicowych = | bez automatu = }}<!-- -->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> jg1o67iorjuv3k6v7lf6durfssh7xh5 543777 543776 2026-05-21T22:31:57Z Persino 2851 543777 wikitext text/x-wiki <includeonly><!-- -->{{#invoke:StronicowyParser|NumerŚródtekstu | uchwyt = {{{uchwyt|{{{2|}}}}}} | nazwa szablonu = {{{nazwa szablonu|ŚródTekst}}} | klasa = | styl = | bez automatu = {{{bez automatu|}}} }}<!-- -->{{#if:{{{bez kategorii stronicowych|}}}{{{bez automatu|}}}||{{#invoke:StronicowyParser|WstawKategorie|{{{uchwyt|{{{2|}}}}}}|Śródtekst}}}}<!-- -->{{#if:{{{bez dodatkowych sprawdzeń|}}}||<!-- -->{{#invoke:Sprawdź|Parametry | = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s %s do sprawdzenia{{))}} | 1 = txt!;tekst;treść | tekst = txt!;treść;1 | treść = txt!;tekst;1 | 2 = txt!;uchwyt | uchwyt = txt!;2 | bez automatu = | bez kategorii stronicowych = }}<!-- -->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 6ayh80o4k7zd4m2xj1p6oizdk62hpyi Szablon:Śródtekst/opis 10 63572 543716 543710 2026-05-21T13:29:39Z Persino 2851 /* Przykład */ 543716 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon {{s|ŚródTekst}} służy do ustawienia pewnemu tekstowi pewny uchwyt, który można pobrać przy pomocy: {{s|LinkŚródTekst}}. == Opis parametrów == ; Parametry * {{Code|tekst}}, {{Code|treść}} lub {{Code|1}} - tekst, któremu przyporządkujemy pewien uchwyt, * {{Code|uchwyt}} lub {{Code|2}} - uchwyt tekstu. == Przykład == ; Przykład pierwszy {{s|Śródtekst|uchwyt{{=}}uchwyt|tekst{{=}}{{s|Lorem ipsum}}}} → {{Śródtekst|uchwyt=uchwyt|tekst={{Lorem ipsum}}}} ---- {{s|LinkŚródtekst|uchwyt{{=}}uchwyt}} → {{LinkŚródtekst|uchwyt=uchwyt}} ---- ---- ; Przykład drugi {{s|LinkŚródtekst|uchwyt{{=}}uchwyt||Szablon:LinkŚródTekst/opis}} → {{LinkŚródtekst|uchwyt||Szablon:LinkŚródTekst/opis}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "tekst": { "aliases": [ "treść,", "1" ], "description": "Tekst, którego zawartość jest rozwinięta, będzie pobierany przez szablon {{LinkŚródTekst}}.", "required": true }, "uchwyt": { "aliases": [ "2" ], "description": "Uchwyt nagłówka rozdziału.", "type": "string", "suggested": true }, "bez kategorii stronicowych": { "description": "Wylącza generowanie kategorii Stronicowego Parsera." }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" } }, "description": "Szablon do odwoływania się do nagłówka rozdziału za pomocą linków poprzez jego uchwyt.", "paramOrder": [ "tekst", "uchwyt", "bez kategorii", "bez kategorii stronicowych" ] } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe tekstowe}} </includeonly> n7pyfcw29sbzoedeqg82cmhx25co9ww 543717 543716 2026-05-21T13:30:34Z Persino 2851 543717 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon {{s|Śródtekst}} służy do ustawienia pewnemu tekstowi pewny uchwyt, który można pobrać przy pomocy: {{s|LinkŚródtekst}}. == Opis parametrów == ; Parametry * {{Code|tekst}}, {{Code|treść}} lub {{Code|1}} - tekst, któremu przyporządkujemy pewien uchwyt, * {{Code|uchwyt}} lub {{Code|2}} - uchwyt tekstu. == Przykład == ; Przykład pierwszy {{s|Śródtekst|uchwyt{{=}}uchwyt|tekst{{=}}{{s|Lorem ipsum}}}} → {{Śródtekst|uchwyt=uchwyt|tekst={{Lorem ipsum}}}} ---- {{s|LinkŚródtekst|uchwyt{{=}}uchwyt}} → {{LinkŚródtekst|uchwyt=uchwyt}} ---- ---- ; Przykład drugi {{s|LinkŚródtekst|uchwyt{{=}}uchwyt||Szablon:LinkŚródTekst/opis}} → {{LinkŚródtekst|uchwyt||Szablon:LinkŚródTekst/opis}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "tekst": { "aliases": [ "treść,", "1" ], "description": "Tekst, którego zawartość jest rozwinięta, będzie pobierany przez szablon {{LinkŚródtekst}}.", "required": true }, "uchwyt": { "aliases": [ "2" ], "description": "Uchwyt nagłówka rozdziału.", "type": "string", "suggested": true }, "bez kategorii stronicowych": { "description": "Wylącza generowanie kategorii Stronicowego Parsera." }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" } }, "description": "Szablon do odwoływania się do nagłówka rozdziału za pomocą linków poprzez jego uchwyt.", "paramOrder": [ "tekst", "uchwyt", "bez kategorii", "bez kategorii stronicowych" ] } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe tekstowe}} </includeonly> gfig66ms6k7yhc0ndra4hsw5t585one 543719 543717 2026-05-21T13:32:02Z Persino 2851 543719 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon {{s|Śródtekst}} służy do ustawienia pewnemu tekstowi pewny uchwyt, który można pobrać przy pomocy: {{s|LinkŚródtekst}}. == Opis parametrów == ; Parametry * {{Code|tekst}}, {{Code|treść}} lub {{Code|1}} - tekst, któremu przyporządkujemy pewien uchwyt, * {{Code|uchwyt}} lub {{Code|2}} - uchwyt tekstu. == Przykład == ; Przykład pierwszy {{s|Śródtekst|uchwyt{{=}}uchwyt|tekst{{=}}{{s|Lorem ipsum}}}} → {{Śródtekst|uchwyt=uchwyt|tekst={{Lorem ipsum}}}} ---- {{s|LinkŚródtekst|uchwyt{{=}}uchwyt}} → {{LinkŚródtekst|uchwyt=uchwyt}} ---- ---- ; Przykład drugi {{s|LinkŚródtekst|uchwyt{{=}}uchwyt||Szablon:LinkŚródTekst/opis}} → {{LinkŚródtekst|uchwyt||Szablon:LinkŚródtekst/opis}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "tekst": { "aliases": [ "treść,", "1" ], "description": "Tekst, którego zawartość jest rozwinięta, będzie pobierany przez szablon {{LinkŚródtekst}}.", "required": true }, "uchwyt": { "aliases": [ "2" ], "description": "Uchwyt nagłówka rozdziału.", "type": "string", "suggested": true }, "bez kategorii stronicowych": { "description": "Wylącza generowanie kategorii Stronicowego Parsera." }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" } }, "description": "Szablon do odwoływania się do nagłówka rozdziału za pomocą linków poprzez jego uchwyt.", "paramOrder": [ "tekst", "uchwyt", "bez kategorii", "bez kategorii stronicowych" ] } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe tekstowe}} </includeonly> gs2el0yovbl3vbnlkaqju3a2b3dmot4 543720 543719 2026-05-21T13:32:25Z Persino 2851 Persino przeniósł(-osła) stronę [[Szablon:ŚródTekst/opis]] do [[Szablon:Śródtekst/opis]], bez pozostawienia przekierowania pod starym tytułem 543719 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon {{s|Śródtekst}} służy do ustawienia pewnemu tekstowi pewny uchwyt, który można pobrać przy pomocy: {{s|LinkŚródtekst}}. == Opis parametrów == ; Parametry * {{Code|tekst}}, {{Code|treść}} lub {{Code|1}} - tekst, któremu przyporządkujemy pewien uchwyt, * {{Code|uchwyt}} lub {{Code|2}} - uchwyt tekstu. == Przykład == ; Przykład pierwszy {{s|Śródtekst|uchwyt{{=}}uchwyt|tekst{{=}}{{s|Lorem ipsum}}}} → {{Śródtekst|uchwyt=uchwyt|tekst={{Lorem ipsum}}}} ---- {{s|LinkŚródtekst|uchwyt{{=}}uchwyt}} → {{LinkŚródtekst|uchwyt=uchwyt}} ---- ---- ; Przykład drugi {{s|LinkŚródtekst|uchwyt{{=}}uchwyt||Szablon:LinkŚródTekst/opis}} → {{LinkŚródtekst|uchwyt||Szablon:LinkŚródtekst/opis}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "tekst": { "aliases": [ "treść,", "1" ], "description": "Tekst, którego zawartość jest rozwinięta, będzie pobierany przez szablon {{LinkŚródtekst}}.", "required": true }, "uchwyt": { "aliases": [ "2" ], "description": "Uchwyt nagłówka rozdziału.", "type": "string", "suggested": true }, "bez kategorii stronicowych": { "description": "Wylącza generowanie kategorii Stronicowego Parsera." }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" } }, "description": "Szablon do odwoływania się do nagłówka rozdziału za pomocą linków poprzez jego uchwyt.", "paramOrder": [ "tekst", "uchwyt", "bez kategorii", "bez kategorii stronicowych" ] } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe tekstowe}} </includeonly> gs2el0yovbl3vbnlkaqju3a2b3dmot4 543728 543720 2026-05-21T13:36:58Z Persino 2851 543728 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon {{s|Śródtekst}} służy do ustawienia pewnemu tekstowi pewny uchwyt, który można pobrać przy pomocy: {{s|LinkŚródtekst}}. == Opis parametrów == ; Parametry * {{Code|tekst}}, {{Code|treść}} lub {{Code|1}} - tekst, któremu przyporządkujemy pewien uchwyt, * {{Code|uchwyt}} lub {{Code|2}} - uchwyt tekstu. == Przykład == ; Przykład pierwszy {{s|Śródtekst|uchwyt{{=}}uchwyt|tekst{{=}}{{s|Lorem ipsum}}}} → {{Śródtekst|uchwyt=uchwyt|tekst={{Lorem ipsum}}}} ---- {{s|LinkŚródtekst|uchwyt{{=}}uchwyt}} → {{LinkŚródtekst|uchwyt=uchwyt}} ---- ---- ; Przykład drugi {{s|LinkŚródtekst|uchwyt{{=}}uchwyt||Szablon:LinkŚródtekst/opis}} → {{LinkŚródtekst|uchwyt||Szablon:LinkŚródtekst/opis}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "tekst": { "aliases": [ "treść,", "1" ], "description": "Tekst, którego zawartość jest rozwinięta, będzie pobierany przez szablon {{LinkŚródtekst}}.", "required": true }, "uchwyt": { "aliases": [ "2" ], "description": "Uchwyt nagłówka rozdziału.", "type": "string", "suggested": true }, "bez kategorii stronicowych": { "description": "Wylącza generowanie kategorii Stronicowego Parsera." }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" } }, "description": "Szablon do odwoływania się do nagłówka rozdziału za pomocą linków poprzez jego uchwyt.", "paramOrder": [ "tekst", "uchwyt", "bez kategorii", "bez kategorii stronicowych" ] } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe tekstowe}} </includeonly> f8yb4el7qvdb09kdq1fh6h78yk6mdfk 543738 543728 2026-05-21T14:19:20Z Persino 2851 543738 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon {{s|Śródtekst}} służy do ustawienia pewnemu tekstowi pewny uchwyt, który można pobrać przy pomocy: {{s|PobierzŚródtekst}}. == Opis parametrów == ; Parametry * {{Code|tekst}}, {{Code|treść}} lub {{Code|1}} - tekst, któremu przyporządkujemy pewien uchwyt, * {{Code|uchwyt}} lub {{Code|2}} - uchwyt tekstu. == Przykład == ; Przykład pierwszy {{s|Śródtekst|uchwyt{{=}}uchwyt|tekst{{=}}{{s|Lorem ipsum}}}} → {{Śródtekst|uchwyt=uchwyt|tekst={{Lorem ipsum}}}} ---- {{s|PobierzŚródtekst|uchwyt{{=}}uchwyt}} → {{PobierzŚródtekst|uchwyt=uchwyt}} ---- ---- ; Przykład drugi {{s|PobierzŚródtekst|uchwyt{{=}}uchwyt||Szablon:PobierzŚródtekst/opis}} → {{PobierzŚródtekst|uchwyt||Szablon:PobierzŚródtekst/opis}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "tekst": { "aliases": [ "treść,", "1" ], "description": "Tekst, którego zawartość jest rozwinięta, będzie pobierany przez szablon {{PobierzŚródtekst}}.", "required": true }, "uchwyt": { "aliases": [ "2" ], "description": "Uchwyt nagłówka rozdziału.", "type": "string", "suggested": true }, "bez kategorii stronicowych": { "description": "Wylącza generowanie kategorii Stronicowego Parsera." }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" } }, "description": "Szablon do odwoływania się do nagłówka rozdziału za pomocą linków poprzez jego uchwyt.", "paramOrder": [ "tekst", "uchwyt", "bez kategorii", "bez kategorii stronicowych" ] } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe tekstowe}} </includeonly> a10b3iemzw04h1xsdnl7jahqa5nvgna 543742 543738 2026-05-21T14:52:26Z Persino 2851 /* Użycie */ 543742 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon {{s|Śródtekst}} służy do ustawienia pewnemu uchwytowi jakiś tekst, który można pobrać przy pomocy: {{s|PobierzŚródtekst}}. == Opis parametrów == ; Parametry * {{Code|tekst}}, {{Code|treść}} lub {{Code|1}} - tekst, któremu przyporządkujemy pewien uchwyt, * {{Code|uchwyt}} lub {{Code|2}} - uchwyt tekstu. == Przykład == ; Przykład pierwszy {{s|Śródtekst|uchwyt{{=}}uchwyt|tekst{{=}}{{s|Lorem ipsum}}}} → {{Śródtekst|uchwyt=uchwyt|tekst={{Lorem ipsum}}}} ---- {{s|PobierzŚródtekst|uchwyt{{=}}uchwyt}} → {{PobierzŚródtekst|uchwyt=uchwyt}} ---- ---- ; Przykład drugi {{s|PobierzŚródtekst|uchwyt{{=}}uchwyt||Szablon:PobierzŚródtekst/opis}} → {{PobierzŚródtekst|uchwyt||Szablon:PobierzŚródtekst/opis}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "tekst": { "aliases": [ "treść,", "1" ], "description": "Tekst, którego zawartość jest rozwinięta, będzie pobierany przez szablon {{PobierzŚródtekst}}.", "required": true }, "uchwyt": { "aliases": [ "2" ], "description": "Uchwyt nagłówka rozdziału.", "type": "string", "suggested": true }, "bez kategorii stronicowych": { "description": "Wylącza generowanie kategorii Stronicowego Parsera." }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" } }, "description": "Szablon do odwoływania się do nagłówka rozdziału za pomocą linków poprzez jego uchwyt.", "paramOrder": [ "tekst", "uchwyt", "bez kategorii", "bez kategorii stronicowych" ] } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe tekstowe}} </includeonly> oj4za3hfabcq2fmx0hqh2bn9uxdzx0t 543774 543742 2026-05-21T22:21:54Z Persino 2851 /* Opis parametrów */ 543774 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon {{s|Śródtekst}} służy do ustawienia pewnemu uchwytowi jakiś tekst, który można pobrać przy pomocy: {{s|PobierzŚródtekst}}. == Opis parametrów == ; Parametry * {{Code|tekst}}, {{Code|treść}} lub {{Code|1}} - tekst, któremu przyporządkowany jest pewien uchwyt, * {{Code|uchwyt}} lub {{Code|2}} - uchwyt tekstu. == Przykład == ; Przykład pierwszy {{s|Śródtekst|uchwyt{{=}}uchwyt|tekst{{=}}{{s|Lorem ipsum}}}} → {{Śródtekst|uchwyt=uchwyt|tekst={{Lorem ipsum}}}} ---- {{s|PobierzŚródtekst|uchwyt{{=}}uchwyt}} → {{PobierzŚródtekst|uchwyt=uchwyt}} ---- ---- ; Przykład drugi {{s|PobierzŚródtekst|uchwyt{{=}}uchwyt||Szablon:PobierzŚródtekst/opis}} → {{PobierzŚródtekst|uchwyt||Szablon:PobierzŚródtekst/opis}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "tekst": { "aliases": [ "treść,", "1" ], "description": "Tekst, którego zawartość jest rozwinięta, będzie pobierany przez szablon {{PobierzŚródtekst}}.", "required": true }, "uchwyt": { "aliases": [ "2" ], "description": "Uchwyt nagłówka rozdziału.", "type": "string", "suggested": true }, "bez kategorii stronicowych": { "description": "Wylącza generowanie kategorii Stronicowego Parsera." }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" } }, "description": "Szablon do odwoływania się do nagłówka rozdziału za pomocą linków poprzez jego uchwyt.", "paramOrder": [ "tekst", "uchwyt", "bez kategorii", "bez kategorii stronicowych" ] } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe tekstowe}} </includeonly> h8axvqh70wjq076r5dtczbokfvq3j0c 543782 543774 2026-05-21T23:26:00Z Persino 2851 /* Opis parametrów */ 543782 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon {{s|Śródtekst}} służy do ustawienia pewnemu uchwytowi jakiś tekst, który można pobrać przy pomocy: {{s|PobierzŚródtekst}}. == Opis parametrów == ; Parametry * {{Code|tekst}}, {{Code|treść}} lub {{Code|1}} - tekst, któremu przyporządkowany jest pewien uchwyt, * {{Code|uchwyt}} lub {{Code|2}} - uchwyt tekstu. ---- Powyższe zmienne o nazwie określonej liczbą naturalną można użyć również bez nazywania parametrów. ---- ; Uwagi * Parametr {{Parametr|bez kategorii stronicowych|tak}}, gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii, (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|bez automatu|tak}}, gdy wartość niepusta, to wyłącza generowanie jakikolwiek kategorii stronicowych i uchwyt wzoru jest dla niego numeracją (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|uchwyt|jakiś uchwyt}} lub {{Parametr|2|jakiś uchwyt}}, to przyjmują wartość niepustą, która jest uchwytem tłumaczonej na tekst danego śródtekstu, w tym przypadku wyświetlana jest zawartość zmiennej tekstowej. == Przykład == ; Przykład pierwszy {{s|Śródtekst|uchwyt{{=}}uchwyt|tekst{{=}}{{s|Lorem ipsum}}}} → {{Śródtekst|uchwyt=uchwyt|tekst={{Lorem ipsum}}}} ---- {{s|PobierzŚródtekst|uchwyt{{=}}uchwyt}} → {{PobierzŚródtekst|uchwyt=uchwyt}} ---- ---- ; Przykład drugi {{s|PobierzŚródtekst|uchwyt{{=}}uchwyt||Szablon:PobierzŚródtekst/opis}} → {{PobierzŚródtekst|uchwyt||Szablon:PobierzŚródtekst/opis}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "tekst": { "aliases": [ "treść,", "1" ], "description": "Tekst, którego zawartość jest rozwinięta, będzie pobierany przez szablon {{PobierzŚródtekst}}.", "required": true }, "uchwyt": { "aliases": [ "2" ], "description": "Uchwyt nagłówka rozdziału.", "type": "string", "suggested": true }, "bez kategorii stronicowych": { "description": "Wylącza generowanie kategorii Stronicowego Parsera." }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" } }, "description": "Szablon do odwoływania się do nagłówka rozdziału za pomocą linków poprzez jego uchwyt.", "paramOrder": [ "tekst", "uchwyt", "bez kategorii", "bez kategorii stronicowych" ] } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe tekstowe}} </includeonly> pzh7pij9j0cpskk9agjqndvpx5ablaj 543793 543782 2026-05-21T23:41:44Z Persino 2851 /* Opis parametrów */ 543793 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon {{s|Śródtekst}} służy do ustawienia pewnemu uchwytowi jakiś tekst, który można pobrać przy pomocy: {{s|PobierzŚródtekst}}. == Opis parametrów == ; Parametry * {{Code|tekst}}, {{Code|treść}} lub {{Code|1}} - tekst, któremu przyporządkowany jest pewien uchwyt, * {{Code|uchwyt}} lub {{Code|2}} - uchwyt tekstu. ---- Powyższe zmienne o nazwie określonej liczbą naturalną można użyć również bez nazywania parametrów. ---- ; Uwagi * Parametr {{Parametr|bez kategorii stronicowych|tak}}, gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii, (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|bez automatu|tak}}, gdy wartość niepusta, to wyłącza generowanie jakikolwiek kategorii stronicowych i uchwyt śródtekstu jest wtedy powtarzany (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|uchwyt|jakiś uchwyt}} lub {{Parametr|2|jakiś uchwyt}}, to przyjmują wartość niepustą, która jest uchwytem tłumaczonej na tekst danego śródtekstu, w tym przypadku wyświetlana jest zawartość zmiennej tekstowej. == Przykład == ; Przykład pierwszy {{s|Śródtekst|uchwyt{{=}}uchwyt|tekst{{=}}{{s|Lorem ipsum}}}} → {{Śródtekst|uchwyt=uchwyt|tekst={{Lorem ipsum}}}} ---- {{s|PobierzŚródtekst|uchwyt{{=}}uchwyt}} → {{PobierzŚródtekst|uchwyt=uchwyt}} ---- ---- ; Przykład drugi {{s|PobierzŚródtekst|uchwyt{{=}}uchwyt||Szablon:PobierzŚródtekst/opis}} → {{PobierzŚródtekst|uchwyt||Szablon:PobierzŚródtekst/opis}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "tekst": { "aliases": [ "treść,", "1" ], "description": "Tekst, którego zawartość jest rozwinięta, będzie pobierany przez szablon {{PobierzŚródtekst}}.", "required": true }, "uchwyt": { "aliases": [ "2" ], "description": "Uchwyt nagłówka rozdziału.", "type": "string", "suggested": true }, "bez kategorii stronicowych": { "description": "Wylącza generowanie kategorii Stronicowego Parsera." }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" } }, "description": "Szablon do odwoływania się do nagłówka rozdziału za pomocą linków poprzez jego uchwyt.", "paramOrder": [ "tekst", "uchwyt", "bez kategorii", "bez kategorii stronicowych" ] } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe tekstowe}} </includeonly> rt902vc6x95ktivg4907zck768occq3 Szablon:PobierzŚródtekst 10 63573 543722 543712 2026-05-21T13:33:51Z Persino 2851 Persino przeniósł(-osła) stronę [[Szablon:LinkŚródTekst]] do [[Szablon:LinkŚródtekst]], bez pozostawienia przekierowania pod starym tytułem 543712 wikitext text/x-wiki <includeonly><!-- -->{{#invoke:StronicowyParser|NumerŚródTekstu | {{#ifeq:{{{nazwa książki|{{{3|}}}}}}|{{{nazwa książki|{{{3}}}}}}|nazwa książki|void1}} = {{{nazwa książki|{{{3|}}}}}} | {{#ifeq:{{{nazwa artykułu|{{{2|}}}}}}|{{{nazwa artykułu|{{{2}}}}}}|nazwa artykułu|void2}} = {{{nazwa artykułu|{{{2|}}}}}} | uchwyt = {{{uchwyt|{{{1|}}}}}} | nazwa szablonu = {{{nazwa szablonu|LinkŚródTekst}}} | klasa = | styl = }}<!-- -->{{#if:{{{bez kategorii stronicowych|}}}||{{#invoke:StronicowyParser|WstawKategorie|{{{uchwyt|{{{1|}}}}}}|LinkŚródTekst}}}}<!-- -->{{#if:{{{bez dodatkowych sprawdzeń|}}}||<!-- -->{{#invoke:Sprawdź|Parametry | =problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s %s do sprawdzenia{{))}} | 1 = txt!;uchwyt | uchwyt = txt!;1 | 2 = ;nazwa artykułu | nazwa artykułu = ;2 | 3 = ;nazwa książki | nazwa książki = ;3 | bez kategorii stronicowych = }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> jrboaal3ekdz5xrqm634y38oz1unpbb 543727 543722 2026-05-21T13:36:08Z Persino 2851 543727 wikitext text/x-wiki <includeonly><!-- -->{{#invoke:StronicowyParser|NumerŚródTekstu | {{#ifeq:{{{nazwa książki|{{{3|}}}}}}|{{{nazwa książki|{{{3}}}}}}|nazwa książki|void1}} = {{{nazwa książki|{{{3|}}}}}} | {{#ifeq:{{{nazwa artykułu|{{{2|}}}}}}|{{{nazwa artykułu|{{{2}}}}}}|nazwa artykułu|void2}} = {{{nazwa artykułu|{{{2|}}}}}} | uchwyt = {{{uchwyt|{{{1|}}}}}} | nazwa szablonu = {{{nazwa szablonu|LinkŚródTekst}}} | klasa = | styl = }}<!-- -->{{#if:{{{bez kategorii stronicowych|}}}||{{#invoke:StronicowyParser|WstawKategorie|{{{uchwyt|{{{1|}}}}}}|LinkŚródtekst}}}}<!-- -->{{#if:{{{bez dodatkowych sprawdzeń|}}}||<!-- -->{{#invoke:Sprawdź|Parametry | =problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s %s do sprawdzenia{{))}} | 1 = txt!;uchwyt | uchwyt = txt!;1 | 2 = ;nazwa artykułu | nazwa artykułu = ;2 | 3 = ;nazwa książki | nazwa książki = ;3 | bez kategorii stronicowych = }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> hqte7l9thrjy6cwwp2foa64b8cl8li6 543732 543727 2026-05-21T13:41:56Z Persino 2851 543732 wikitext text/x-wiki <includeonly><!-- -->{{#invoke:StronicowyParser|NumerŚródtekstu | {{#ifeq:{{{nazwa książki|{{{3|}}}}}}|{{{nazwa książki|{{{3}}}}}}|nazwa książki|void1}} = {{{nazwa książki|{{{3|}}}}}} | {{#ifeq:{{{nazwa artykułu|{{{2|}}}}}}|{{{nazwa artykułu|{{{2}}}}}}|nazwa artykułu|void2}} = {{{nazwa artykułu|{{{2|}}}}}} | uchwyt = {{{uchwyt|{{{1|}}}}}} | nazwa szablonu = {{{nazwa szablonu|LinkŚródTekst}}} | klasa = | styl = }}<!-- -->{{#if:{{{bez kategorii stronicowych|}}}||{{#invoke:StronicowyParser|WstawKategorie|{{{uchwyt|{{{1|}}}}}}|LinkŚródtekst}}}}<!-- -->{{#if:{{{bez dodatkowych sprawdzeń|}}}||<!-- -->{{#invoke:Sprawdź|Parametry | =problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s %s do sprawdzenia{{))}} | 1 = txt!;uchwyt | uchwyt = txt!;1 | 2 = ;nazwa artykułu | nazwa artykułu = ;2 | 3 = ;nazwa książki | nazwa książki = ;3 | bez kategorii stronicowych = }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> ngrbqxyj9sacl3155u8nthjqa9w9u1n 543735 543732 2026-05-21T14:17:14Z Persino 2851 Persino przeniósł(-osła) stronę [[Szablon:LinkŚródtekst]] do [[Szablon:PobierzŚródtekst]], bez pozostawienia przekierowania pod starym tytułem 543732 wikitext text/x-wiki <includeonly><!-- -->{{#invoke:StronicowyParser|NumerŚródtekstu | {{#ifeq:{{{nazwa książki|{{{3|}}}}}}|{{{nazwa książki|{{{3}}}}}}|nazwa książki|void1}} = {{{nazwa książki|{{{3|}}}}}} | {{#ifeq:{{{nazwa artykułu|{{{2|}}}}}}|{{{nazwa artykułu|{{{2}}}}}}|nazwa artykułu|void2}} = {{{nazwa artykułu|{{{2|}}}}}} | uchwyt = {{{uchwyt|{{{1|}}}}}} | nazwa szablonu = {{{nazwa szablonu|LinkŚródTekst}}} | klasa = | styl = }}<!-- -->{{#if:{{{bez kategorii stronicowych|}}}||{{#invoke:StronicowyParser|WstawKategorie|{{{uchwyt|{{{1|}}}}}}|LinkŚródtekst}}}}<!-- -->{{#if:{{{bez dodatkowych sprawdzeń|}}}||<!-- -->{{#invoke:Sprawdź|Parametry | =problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s %s do sprawdzenia{{))}} | 1 = txt!;uchwyt | uchwyt = txt!;1 | 2 = ;nazwa artykułu | nazwa artykułu = ;2 | 3 = ;nazwa książki | nazwa książki = ;3 | bez kategorii stronicowych = }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> ngrbqxyj9sacl3155u8nthjqa9w9u1n 543740 543735 2026-05-21T14:21:26Z Persino 2851 543740 wikitext text/x-wiki <includeonly><!-- -->{{#invoke:StronicowyParser|NumerŚródtekstu | {{#ifeq:{{{nazwa książki|{{{3|}}}}}}|{{{nazwa książki|{{{3}}}}}}|nazwa książki|void1}} = {{{nazwa książki|{{{3|}}}}}} | {{#ifeq:{{{nazwa artykułu|{{{2|}}}}}}|{{{nazwa artykułu|{{{2}}}}}}|nazwa artykułu|void2}} = {{{nazwa artykułu|{{{2|}}}}}} | uchwyt = {{{uchwyt|{{{1|}}}}}} | nazwa szablonu = {{{nazwa szablonu|PobierzŚródTekst}}} | klasa = | styl = }}<!-- -->{{#if:{{{bez kategorii stronicowych|}}}||{{#invoke:StronicowyParser|WstawKategorie|{{{uchwyt|{{{1|}}}}}}|PobierzŚródtekst}}}}<!-- -->{{#if:{{{bez dodatkowych sprawdzeń|}}}||<!-- -->{{#invoke:Sprawdź|Parametry | =problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s %s do sprawdzenia{{))}} | 1 = txt!;uchwyt | uchwyt = txt!;1 | 2 = ;nazwa artykułu | nazwa artykułu = ;2 | 3 = ;nazwa książki | nazwa książki = ;3 | bez kategorii stronicowych = }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> cj0r3bfomef3r9z5fkx5frkedqkyg29 543778 543740 2026-05-21T22:34:04Z Persino 2851 543778 wikitext text/x-wiki <includeonly><!-- -->{{#invoke:StronicowyParser|NumerŚródtekstu | {{#ifeq:{{{nazwa książki|{{{3|}}}}}}|{{{nazwa książki|{{{3}}}}}}|nazwa książki|void1}} = {{{nazwa książki|{{{3|}}}}}} | {{#ifeq:{{{nazwa artykułu|{{{2|}}}}}}|{{{nazwa artykułu|{{{2}}}}}}|nazwa artykułu|void2}} = {{{nazwa artykułu|{{{2|}}}}}} | uchwyt = {{{uchwyt|{{{1|}}}}}} | nazwa szablonu = {{{nazwa szablonu|PobierzŚródTekst}}} | klasa = | styl = | bez automatu = {{{bez automatu|}}} }}<!-- -->{{#if:{{{bez kategorii stronicowych|}}}{{{bez automatu|}}}||{{#invoke:StronicowyParser|WstawKategorie|{{{uchwyt|{{{1|}}}}}}|PobierzŚródtekst}}}}<!-- -->{{#if:{{{bez dodatkowych sprawdzeń|}}}||<!-- -->{{#invoke:Sprawdź|Parametry | =problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s %s do sprawdzenia{{))}} | 1 = txt!;uchwyt | uchwyt = txt!;1 | 2 = ;nazwa artykułu | nazwa artykułu = ;2 | 3 = ;nazwa książki | nazwa książki = ;3 | bez automatu = | bez kategorii stronicowych = }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> s4bxd0e08xi6mqm8qxyn765yfeoutm8 Szablon:PobierzŚródtekst/opis 10 63574 543718 543709 2026-05-21T13:31:43Z Persino 2851 543718 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon {{s|LinkŚródTekst}} służy do pobierania danych ustawionej przez szablon {{s|Śródtekst}}. == Opis parametrów == Będziemy tutaj wypisywali zmienne szablonu {{s|LinkŚródtekst}}. ---- ; Zmienne w wywołaniu podstawowym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu, bez adresu książki, (opcjonalny). ; Dodatkowe opcje * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- ; Zmienne w wywołaniu pełnym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu (opcjonalny), * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- Powyższe zmienne o nazwie określonej liczbą naturalną można użyć również bez nazywania parametrów. ---- ; Uwagi Szablon {{s|LinkŚródTekst}} ma jeszcze jeden parametr: {{Parametr|bez kategorii stronicowych}} wartość niepusta, tzn. wyłączone, czyli np.: {{Code|tak}}, i włączone, gdy wartość pusta, generowanie dodatkowych kategorii błędu, jeżeli one występują, (opcjonalny domyślnie ustawiony na wartość pustą). == Przykład == ; Przykład pierwszy {{s|Śródtekst|uchwyt{{=}}uchwyt|tekst{{=}}{{s|Lorem ipsum}}}} → {{Śródtekst|uchwyt=uchwyt|tekst={{Lorem ipsum}}}} ---- {{s|LinkŚródtekst|uchwyt{{=}}uchwyt}} → {{LinkŚródtekst|uchwyt=uchwyt}} ---- ---- ; Przykład drugi {{s|LinkŚródtekst|uchwyt{{=}}uchwyt||Szablon:ŚródTekst/opis}} → {{LinkŚródtekst|uchwyt||Szablon:Śródtekst/opis}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "uchwyt": { "aliases": [ "1" ], "description": "Uchwyt obiektu.", "type": "string", "required": true }, "nazwa artykułu": { "aliases": [ "2" ], "description": "Nazwa artykułu.", "type": "wiki-page-name", "suggested": true }, "nazwa książki": { "aliases": [ "3" ], "description": "Nazwa książki", "type": "wiki-page-name", "suggested": true }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" }, "bez kategorii stronicowych": { "description": "Wylącza generowanie kategorii Stronicowego Parsera.", "type": "string" } }, "paramOrder": [ "uchwyt", "nazwa artykułu", "nazwa książki", "bez kategorii", "bez kategorii stronicowych" ], "description": "Szablon tworzy linki do różnego rodzaju obiektów na stronie podręczników." } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe tekstowe}} </includeonly> s7nfaxf59mg91iu5lbqlmq72drsui8z 543723 543718 2026-05-21T13:33:51Z Persino 2851 Persino przeniósł(-osła) stronę [[Szablon:LinkŚródTekst/opis]] do [[Szablon:LinkŚródtekst/opis]], bez pozostawienia przekierowania pod starym tytułem 543718 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon {{s|LinkŚródTekst}} służy do pobierania danych ustawionej przez szablon {{s|Śródtekst}}. == Opis parametrów == Będziemy tutaj wypisywali zmienne szablonu {{s|LinkŚródtekst}}. ---- ; Zmienne w wywołaniu podstawowym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu, bez adresu książki, (opcjonalny). ; Dodatkowe opcje * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- ; Zmienne w wywołaniu pełnym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu (opcjonalny), * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- Powyższe zmienne o nazwie określonej liczbą naturalną można użyć również bez nazywania parametrów. ---- ; Uwagi Szablon {{s|LinkŚródTekst}} ma jeszcze jeden parametr: {{Parametr|bez kategorii stronicowych}} wartość niepusta, tzn. wyłączone, czyli np.: {{Code|tak}}, i włączone, gdy wartość pusta, generowanie dodatkowych kategorii błędu, jeżeli one występują, (opcjonalny domyślnie ustawiony na wartość pustą). == Przykład == ; Przykład pierwszy {{s|Śródtekst|uchwyt{{=}}uchwyt|tekst{{=}}{{s|Lorem ipsum}}}} → {{Śródtekst|uchwyt=uchwyt|tekst={{Lorem ipsum}}}} ---- {{s|LinkŚródtekst|uchwyt{{=}}uchwyt}} → {{LinkŚródtekst|uchwyt=uchwyt}} ---- ---- ; Przykład drugi {{s|LinkŚródtekst|uchwyt{{=}}uchwyt||Szablon:ŚródTekst/opis}} → {{LinkŚródtekst|uchwyt||Szablon:Śródtekst/opis}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "uchwyt": { "aliases": [ "1" ], "description": "Uchwyt obiektu.", "type": "string", "required": true }, "nazwa artykułu": { "aliases": [ "2" ], "description": "Nazwa artykułu.", "type": "wiki-page-name", "suggested": true }, "nazwa książki": { "aliases": [ "3" ], "description": "Nazwa książki", "type": "wiki-page-name", "suggested": true }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" }, "bez kategorii stronicowych": { "description": "Wylącza generowanie kategorii Stronicowego Parsera.", "type": "string" } }, "paramOrder": [ "uchwyt", "nazwa artykułu", "nazwa książki", "bez kategorii", "bez kategorii stronicowych" ], "description": "Szablon tworzy linki do różnego rodzaju obiektów na stronie podręczników." } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe tekstowe}} </includeonly> s7nfaxf59mg91iu5lbqlmq72drsui8z 543725 543723 2026-05-21T13:35:22Z Persino 2851 /* Opis parametrów */ 543725 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon {{s|LinkŚródTekst}} służy do pobierania danych ustawionej przez szablon {{s|Śródtekst}}. == Opis parametrów == Będziemy tutaj wypisywali zmienne szablonu {{s|LinkŚródtekst}}. ---- ; Zmienne w wywołaniu podstawowym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu, bez adresu książki, (opcjonalny). ; Dodatkowe opcje * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- ; Zmienne w wywołaniu pełnym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu (opcjonalny), * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- Powyższe zmienne o nazwie określonej liczbą naturalną można użyć również bez nazywania parametrów. ---- ; Uwagi Szablon {{s|LinkŚródtekst}} ma jeszcze jeden parametr: {{Parametr|bez kategorii stronicowych}} wartość niepusta, tzn. wyłączone, czyli np.: {{Code|tak}}, i włączone, gdy wartość pusta, generowanie dodatkowych kategorii błędu, jeżeli one występują, (opcjonalny domyślnie ustawiony na wartość pustą). == Przykład == ; Przykład pierwszy {{s|Śródtekst|uchwyt{{=}}uchwyt|tekst{{=}}{{s|Lorem ipsum}}}} → {{Śródtekst|uchwyt=uchwyt|tekst={{Lorem ipsum}}}} ---- {{s|LinkŚródtekst|uchwyt{{=}}uchwyt}} → {{LinkŚródtekst|uchwyt=uchwyt}} ---- ---- ; Przykład drugi {{s|LinkŚródtekst|uchwyt{{=}}uchwyt||Szablon:ŚródTekst/opis}} → {{LinkŚródtekst|uchwyt||Szablon:Śródtekst/opis}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "uchwyt": { "aliases": [ "1" ], "description": "Uchwyt obiektu.", "type": "string", "required": true }, "nazwa artykułu": { "aliases": [ "2" ], "description": "Nazwa artykułu.", "type": "wiki-page-name", "suggested": true }, "nazwa książki": { "aliases": [ "3" ], "description": "Nazwa książki", "type": "wiki-page-name", "suggested": true }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" }, "bez kategorii stronicowych": { "description": "Wylącza generowanie kategorii Stronicowego Parsera.", "type": "string" } }, "paramOrder": [ "uchwyt", "nazwa artykułu", "nazwa książki", "bez kategorii", "bez kategorii stronicowych" ], "description": "Szablon tworzy linki do różnego rodzaju obiektów na stronie podręczników." } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe tekstowe}} </includeonly> cn2cblm7d8ydxp9qqg5kizvckqp1uxz 543726 543725 2026-05-21T13:35:42Z Persino 2851 /* Użycie */ 543726 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon {{s|LinkŚródtekst}} służy do pobierania danych ustawionej przez szablon {{s|Śródtekst}}. == Opis parametrów == Będziemy tutaj wypisywali zmienne szablonu {{s|LinkŚródtekst}}. ---- ; Zmienne w wywołaniu podstawowym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu, bez adresu książki, (opcjonalny). ; Dodatkowe opcje * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- ; Zmienne w wywołaniu pełnym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu (opcjonalny), * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- Powyższe zmienne o nazwie określonej liczbą naturalną można użyć również bez nazywania parametrów. ---- ; Uwagi Szablon {{s|LinkŚródtekst}} ma jeszcze jeden parametr: {{Parametr|bez kategorii stronicowych}} wartość niepusta, tzn. wyłączone, czyli np.: {{Code|tak}}, i włączone, gdy wartość pusta, generowanie dodatkowych kategorii błędu, jeżeli one występują, (opcjonalny domyślnie ustawiony na wartość pustą). == Przykład == ; Przykład pierwszy {{s|Śródtekst|uchwyt{{=}}uchwyt|tekst{{=}}{{s|Lorem ipsum}}}} → {{Śródtekst|uchwyt=uchwyt|tekst={{Lorem ipsum}}}} ---- {{s|LinkŚródtekst|uchwyt{{=}}uchwyt}} → {{LinkŚródtekst|uchwyt=uchwyt}} ---- ---- ; Przykład drugi {{s|LinkŚródtekst|uchwyt{{=}}uchwyt||Szablon:ŚródTekst/opis}} → {{LinkŚródtekst|uchwyt||Szablon:Śródtekst/opis}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "uchwyt": { "aliases": [ "1" ], "description": "Uchwyt obiektu.", "type": "string", "required": true }, "nazwa artykułu": { "aliases": [ "2" ], "description": "Nazwa artykułu.", "type": "wiki-page-name", "suggested": true }, "nazwa książki": { "aliases": [ "3" ], "description": "Nazwa książki", "type": "wiki-page-name", "suggested": true }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" }, "bez kategorii stronicowych": { "description": "Wylącza generowanie kategorii Stronicowego Parsera.", "type": "string" } }, "paramOrder": [ "uchwyt", "nazwa artykułu", "nazwa książki", "bez kategorii", "bez kategorii stronicowych" ], "description": "Szablon tworzy linki do różnego rodzaju obiektów na stronie podręczników." } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe tekstowe}} </includeonly> 7ehdzu6qnftdrlrnmjlrz2jvarlazss 543730 543726 2026-05-21T13:39:38Z Persino 2851 543730 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon {{s|LinkŚródtekst}} służy do pobierania danych ustawionej przez szablon {{s|Śródtekst}}. == Opis parametrów == Będziemy tutaj wypisywali zmienne szablonu {{s|LinkŚródtekst}}. ---- ; Zmienne w wywołaniu podstawowym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu, bez adresu książki, (opcjonalny). ; Dodatkowe opcje * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- ; Zmienne w wywołaniu pełnym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu (opcjonalny), * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- Powyższe zmienne o nazwie określonej liczbą naturalną można użyć również bez nazywania parametrów. ---- ; Uwagi Szablon {{s|LinkŚródtekst}} ma jeszcze jeden parametr: {{Parametr|bez kategorii stronicowych}} wartość niepusta, tzn. wyłączone, czyli np.: {{Code|tak}}, i włączone, gdy wartość pusta, generowanie dodatkowych kategorii błędu, jeżeli one występują, (opcjonalny domyślnie ustawiony na wartość pustą). == Przykład == ; Przykład pierwszy {{s|Śródtekst|uchwyt{{=}}uchwyt|tekst{{=}}{{s|Lorem ipsum}}}} → {{Śródtekst|uchwyt=uchwyt|tekst={{Lorem ipsum}}}} ---- {{s|LinkŚródtekst|uchwyt{{=}}uchwyt}} → {{LinkŚródtekst|uchwyt=uchwyt}} ---- ---- ; Przykład drugi {{s|LinkŚródtekst|uchwyt{{=}}uchwyt||Szablon:Śródtekst/opis}} → {{LinkŚródtekst|uchwyt||Szablon:Śródtekst/opis}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "uchwyt": { "aliases": [ "1" ], "description": "Uchwyt obiektu.", "type": "string", "required": true }, "nazwa artykułu": { "aliases": [ "2" ], "description": "Nazwa artykułu.", "type": "wiki-page-name", "suggested": true }, "nazwa książki": { "aliases": [ "3" ], "description": "Nazwa książki", "type": "wiki-page-name", "suggested": true }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" }, "bez kategorii stronicowych": { "description": "Wylącza generowanie kategorii Stronicowego Parsera.", "type": "string" } }, "paramOrder": [ "uchwyt", "nazwa artykułu", "nazwa książki", "bez kategorii", "bez kategorii stronicowych" ], "description": "Szablon tworzy linki do różnego rodzaju obiektów na stronie podręczników." } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe tekstowe}} </includeonly> e7v7zt0un5lkrd0pghegcmr2zq9ojmu 543736 543730 2026-05-21T14:17:14Z Persino 2851 Persino przeniósł(-osła) stronę [[Szablon:LinkŚródtekst/opis]] do [[Szablon:PobierzŚródtekst/opis]], bez pozostawienia przekierowania pod starym tytułem 543730 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon {{s|LinkŚródtekst}} służy do pobierania danych ustawionej przez szablon {{s|Śródtekst}}. == Opis parametrów == Będziemy tutaj wypisywali zmienne szablonu {{s|LinkŚródtekst}}. ---- ; Zmienne w wywołaniu podstawowym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu, bez adresu książki, (opcjonalny). ; Dodatkowe opcje * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- ; Zmienne w wywołaniu pełnym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu (opcjonalny), * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- Powyższe zmienne o nazwie określonej liczbą naturalną można użyć również bez nazywania parametrów. ---- ; Uwagi Szablon {{s|LinkŚródtekst}} ma jeszcze jeden parametr: {{Parametr|bez kategorii stronicowych}} wartość niepusta, tzn. wyłączone, czyli np.: {{Code|tak}}, i włączone, gdy wartość pusta, generowanie dodatkowych kategorii błędu, jeżeli one występują, (opcjonalny domyślnie ustawiony na wartość pustą). == Przykład == ; Przykład pierwszy {{s|Śródtekst|uchwyt{{=}}uchwyt|tekst{{=}}{{s|Lorem ipsum}}}} → {{Śródtekst|uchwyt=uchwyt|tekst={{Lorem ipsum}}}} ---- {{s|LinkŚródtekst|uchwyt{{=}}uchwyt}} → {{LinkŚródtekst|uchwyt=uchwyt}} ---- ---- ; Przykład drugi {{s|LinkŚródtekst|uchwyt{{=}}uchwyt||Szablon:Śródtekst/opis}} → {{LinkŚródtekst|uchwyt||Szablon:Śródtekst/opis}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "uchwyt": { "aliases": [ "1" ], "description": "Uchwyt obiektu.", "type": "string", "required": true }, "nazwa artykułu": { "aliases": [ "2" ], "description": "Nazwa artykułu.", "type": "wiki-page-name", "suggested": true }, "nazwa książki": { "aliases": [ "3" ], "description": "Nazwa książki", "type": "wiki-page-name", "suggested": true }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" }, "bez kategorii stronicowych": { "description": "Wylącza generowanie kategorii Stronicowego Parsera.", "type": "string" } }, "paramOrder": [ "uchwyt", "nazwa artykułu", "nazwa książki", "bez kategorii", "bez kategorii stronicowych" ], "description": "Szablon tworzy linki do różnego rodzaju obiektów na stronie podręczników." } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe tekstowe}} </includeonly> e7v7zt0un5lkrd0pghegcmr2zq9ojmu 543737 543736 2026-05-21T14:18:28Z Persino 2851 543737 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon {{s|PobierzŚródtekst}} służy do pobierania danych ustawionej przez szablon {{s|Śródtekst}}. == Opis parametrów == Będziemy tutaj wypisywali zmienne szablonu {{s|PobierzŚródtekst}}. ---- ; Zmienne w wywołaniu podstawowym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu, bez adresu książki, (opcjonalny). ; Dodatkowe opcje * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- ; Zmienne w wywołaniu pełnym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu (opcjonalny), * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- Powyższe zmienne o nazwie określonej liczbą naturalną można użyć również bez nazywania parametrów. ---- ; Uwagi Szablon {{s|PobierzŚródtekst}} ma jeszcze jeden parametr: {{Parametr|bez kategorii stronicowych}} wartość niepusta, tzn. wyłączone, czyli np.: {{Code|tak}}, i włączone, gdy wartość pusta, generowanie dodatkowych kategorii błędu, jeżeli one występują, (opcjonalny domyślnie ustawiony na wartość pustą). == Przykład == ; Przykład pierwszy {{s|Śródtekst|uchwyt{{=}}uchwyt|tekst{{=}}{{s|Lorem ipsum}}}} → {{Śródtekst|uchwyt=uchwyt|tekst={{Lorem ipsum}}}} ---- {{s|PobierzŚródtekst|uchwyt{{=}}uchwyt}} → {{PobierzŚródtekst|uchwyt=uchwyt}} ---- ---- ; Przykład drugi {{s|PobierzŚródtekst|uchwyt{{=}}uchwyt||Szablon:Śródtekst/opis}} → {{PobierzŚródtekst|uchwyt||Szablon:Śródtekst/opis}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "uchwyt": { "aliases": [ "1" ], "description": "Uchwyt obiektu.", "type": "string", "required": true }, "nazwa artykułu": { "aliases": [ "2" ], "description": "Nazwa artykułu.", "type": "wiki-page-name", "suggested": true }, "nazwa książki": { "aliases": [ "3" ], "description": "Nazwa książki", "type": "wiki-page-name", "suggested": true }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" }, "bez kategorii stronicowych": { "description": "Wylącza generowanie kategorii Stronicowego Parsera.", "type": "string" } }, "paramOrder": [ "uchwyt", "nazwa artykułu", "nazwa książki", "bez kategorii", "bez kategorii stronicowych" ], "description": "Szablon tworzy linki do różnego rodzaju obiektów na stronie podręczników." } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe tekstowe}} </includeonly> jcd1wiajmd9tfii8wy7wsfky4ifvxk2 543783 543737 2026-05-21T23:27:34Z Persino 2851 /* Opis parametrów */ 543783 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon {{s|PobierzŚródtekst}} służy do pobierania danych ustawionej przez szablon {{s|Śródtekst}}. == Opis parametrów == Będziemy tutaj wypisywali zmienne szablonu {{s|PobierzŚródtekst}}. ---- ; Zmienne w wywołaniu podstawowym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu, bez adresu książki, (opcjonalny). ; Dodatkowe opcje * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- ; Zmienne w wywołaniu pełnym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu (opcjonalny), * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- Powyższe zmienne o nazwie określonej liczbą naturalną można użyć również bez nazywania parametrów. ---- ; Uwagi * Parametr {{Parametr|bez kategorii stronicowych|tak}}, gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii, (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|bez automatu|tak}}, gdy wartość niepusta, to wyłącza generowanie jakikolwiek kategorii stronicowych i uchwyt wzoru jest dla niego numeracją (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|uchwyt|jakiś uchwyt}} lub {{Parametr|2|jakiś uchwyt}}, to przyjmują wartość niepustą, która jest uchwytem tłumaczonej na tekst danego śródtekstu, w tym przypadku wyświetlana jest zawartość zmiennej tekstowej o pewnym uchwycie. == Przykład == ; Przykład pierwszy {{s|Śródtekst|uchwyt{{=}}uchwyt|tekst{{=}}{{s|Lorem ipsum}}}} → {{Śródtekst|uchwyt=uchwyt|tekst={{Lorem ipsum}}}} ---- {{s|PobierzŚródtekst|uchwyt{{=}}uchwyt}} → {{PobierzŚródtekst|uchwyt=uchwyt}} ---- ---- ; Przykład drugi {{s|PobierzŚródtekst|uchwyt{{=}}uchwyt||Szablon:Śródtekst/opis}} → {{PobierzŚródtekst|uchwyt||Szablon:Śródtekst/opis}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "uchwyt": { "aliases": [ "1" ], "description": "Uchwyt obiektu.", "type": "string", "required": true }, "nazwa artykułu": { "aliases": [ "2" ], "description": "Nazwa artykułu.", "type": "wiki-page-name", "suggested": true }, "nazwa książki": { "aliases": [ "3" ], "description": "Nazwa książki", "type": "wiki-page-name", "suggested": true }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" }, "bez kategorii stronicowych": { "description": "Wylącza generowanie kategorii Stronicowego Parsera.", "type": "string" } }, "paramOrder": [ "uchwyt", "nazwa artykułu", "nazwa książki", "bez kategorii", "bez kategorii stronicowych" ], "description": "Szablon tworzy linki do różnego rodzaju obiektów na stronie podręczników." } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe tekstowe}} </includeonly> kyfdkmxnb3lbvtqantvcize5tmwhvsk 543788 543783 2026-05-21T23:33:25Z Persino 2851 /* Opis parametrów */ 543788 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon {{s|PobierzŚródtekst}} służy do pobierania danych ustawionej przez szablon {{s|Śródtekst}}. == Opis parametrów == Będziemy tutaj wypisywali zmienne szablonu {{s|PobierzŚródtekst}}. ---- ; Zmienne w wywołaniu podstawowym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu, bez adresu książki, (opcjonalny). ; Dodatkowe opcje * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- ; Zmienne w wywołaniu pełnym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu (opcjonalny), * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- Powyższe zmienne o nazwie określonej liczbą naturalną można użyć również bez nazywania parametrów. ---- ; Uwagi * Parametr {{Parametr|bez kategorii stronicowych|tak}}, gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii, (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|bez automatu|tak}}, gdy wartość niepusta, to wyłącza generowanie jakikolwiek kategorii stronicowych i uchwyt wzoru jest dla niego numeracją (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|uchwyt|jakiś uchwyt}} lub {{Parametr|1|jakiś uchwyt}}, to przyjmują wartość niepustą, która jest uchwytem tłumaczonej na tekst danego śródtekstu, w tym przypadku wyświetlana jest zawartość zmiennej tekstowej o pewnym uchwycie. == Przykład == ; Przykład pierwszy {{s|Śródtekst|uchwyt{{=}}uchwyt|tekst{{=}}{{s|Lorem ipsum}}}} → {{Śródtekst|uchwyt=uchwyt|tekst={{Lorem ipsum}}}} ---- {{s|PobierzŚródtekst|uchwyt{{=}}uchwyt}} → {{PobierzŚródtekst|uchwyt=uchwyt}} ---- ---- ; Przykład drugi {{s|PobierzŚródtekst|uchwyt{{=}}uchwyt||Szablon:Śródtekst/opis}} → {{PobierzŚródtekst|uchwyt||Szablon:Śródtekst/opis}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "uchwyt": { "aliases": [ "1" ], "description": "Uchwyt obiektu.", "type": "string", "required": true }, "nazwa artykułu": { "aliases": [ "2" ], "description": "Nazwa artykułu.", "type": "wiki-page-name", "suggested": true }, "nazwa książki": { "aliases": [ "3" ], "description": "Nazwa książki", "type": "wiki-page-name", "suggested": true }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" }, "bez kategorii stronicowych": { "description": "Wylącza generowanie kategorii Stronicowego Parsera.", "type": "string" } }, "paramOrder": [ "uchwyt", "nazwa artykułu", "nazwa książki", "bez kategorii", "bez kategorii stronicowych" ], "description": "Szablon tworzy linki do różnego rodzaju obiektów na stronie podręczników." } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe tekstowe}} </includeonly> i3gpwe74czirculsmuyf016cga798hj 543789 543788 2026-05-21T23:34:57Z Persino 2851 /* Opis parametrów */ 543789 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon {{s|PobierzŚródtekst}} służy do pobierania danych ustawionej przez szablon {{s|Śródtekst}}. == Opis parametrów == Będziemy tutaj wypisywali zmienne szablonu {{s|PobierzŚródtekst}}. ---- ; Zmienne w wywołaniu podstawowym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu, bez adresu książki, (opcjonalny). ; Dodatkowe opcje * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- ; Zmienne w wywołaniu pełnym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu (opcjonalny), * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- Powyższe zmienne o nazwie określonej liczbą naturalną można użyć również bez nazywania parametrów. ---- ; Uwagi * Parametr {{Parametr|bez kategorii stronicowych|tak}}, gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii, (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|bez automatu|tak}}, gdy wartość niepusta, to wyłącza generowanie jakikolwiek kategorii stronicowych i uchwyt wzoru jest dla niego numeracją (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|uchwyt|jakiś uchwyt}} lub {{Parametr|1|jakiś uchwyt}}, to przyjmują wartość niepustą, która jest uchwytem tłumaczonej na tekst danego śródtekstu, w tym przypadku wyświetlana jest zawartość zmiennej tekstowej o tym uchwycie. == Przykład == ; Przykład pierwszy {{s|Śródtekst|uchwyt{{=}}uchwyt|tekst{{=}}{{s|Lorem ipsum}}}} → {{Śródtekst|uchwyt=uchwyt|tekst={{Lorem ipsum}}}} ---- {{s|PobierzŚródtekst|uchwyt{{=}}uchwyt}} → {{PobierzŚródtekst|uchwyt=uchwyt}} ---- ---- ; Przykład drugi {{s|PobierzŚródtekst|uchwyt{{=}}uchwyt||Szablon:Śródtekst/opis}} → {{PobierzŚródtekst|uchwyt||Szablon:Śródtekst/opis}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "uchwyt": { "aliases": [ "1" ], "description": "Uchwyt obiektu.", "type": "string", "required": true }, "nazwa artykułu": { "aliases": [ "2" ], "description": "Nazwa artykułu.", "type": "wiki-page-name", "suggested": true }, "nazwa książki": { "aliases": [ "3" ], "description": "Nazwa książki", "type": "wiki-page-name", "suggested": true }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" }, "bez kategorii stronicowych": { "description": "Wylącza generowanie kategorii Stronicowego Parsera.", "type": "string" } }, "paramOrder": [ "uchwyt", "nazwa artykułu", "nazwa książki", "bez kategorii", "bez kategorii stronicowych" ], "description": "Szablon tworzy linki do różnego rodzaju obiektów na stronie podręczników." } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe tekstowe}} </includeonly> s1i8kaarxqw2ramqlzd0meqleyaug6e 543794 543789 2026-05-21T23:42:51Z Persino 2851 /* Opis parametrów */ 543794 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|StronicowyParser}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon {{s|PobierzŚródtekst}} służy do pobierania danych ustawionej przez szablon {{s|Śródtekst}}. == Opis parametrów == Będziemy tutaj wypisywali zmienne szablonu {{s|PobierzŚródtekst}}. ---- ; Zmienne w wywołaniu podstawowym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu, bez adresu książki, (opcjonalny). ; Dodatkowe opcje * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- ; Zmienne w wywołaniu pełnym tego szablonu * {{Code|1}} lub {{Code|uchwyt}} = uchwyt, * {{Code|2}} lub {{Code|nazwa artykułu}} = nazwa modułu (opcjonalny), * {{Code|3}} lub {{Code|nazwa książki}} = pełna nazwa książki (opcjonalny). ---- Powyższe zmienne o nazwie określonej liczbą naturalną można użyć również bez nazywania parametrów. ---- ; Uwagi * Parametr {{Parametr|bez kategorii stronicowych|tak}}, gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii, (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|bez automatu|tak}}, gdy wartość niepusta, to wyłącza generowanie jakikolwiek kategorii stronicowych i uchwyt śródtekstu jest wtedy powtarzany (opcjonalny, automatycznie ustawiony na wartość pustą). * Parametr {{Parametr|uchwyt|jakiś uchwyt}} lub {{Parametr|1|jakiś uchwyt}}, to przyjmują wartość niepustą, która jest uchwytem tłumaczonej na tekst danego śródtekstu, w tym przypadku wyświetlana jest zawartość zmiennej tekstowej o tym uchwycie. == Przykład == ; Przykład pierwszy {{s|Śródtekst|uchwyt{{=}}uchwyt|tekst{{=}}{{s|Lorem ipsum}}}} → {{Śródtekst|uchwyt=uchwyt|tekst={{Lorem ipsum}}}} ---- {{s|PobierzŚródtekst|uchwyt{{=}}uchwyt}} → {{PobierzŚródtekst|uchwyt=uchwyt}} ---- ---- ; Przykład drugi {{s|PobierzŚródtekst|uchwyt{{=}}uchwyt||Szablon:Śródtekst/opis}} → {{PobierzŚródtekst|uchwyt||Szablon:Śródtekst/opis}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "uchwyt": { "aliases": [ "1" ], "description": "Uchwyt obiektu.", "type": "string", "required": true }, "nazwa artykułu": { "aliases": [ "2" ], "description": "Nazwa artykułu.", "type": "wiki-page-name", "suggested": true }, "nazwa książki": { "aliases": [ "3" ], "description": "Nazwa książki", "type": "wiki-page-name", "suggested": true }, "bez kategorii": { "description": "Gdy wartość niepusta, to wyłącza generowanie dodatkowych kategorii.", "type": "string" }, "bez kategorii stronicowych": { "description": "Wylącza generowanie kategorii Stronicowego Parsera.", "type": "string" } }, "paramOrder": [ "uchwyt", "nazwa artykułu", "nazwa książki", "bez kategorii", "bez kategorii stronicowych" ], "description": "Szablon tworzy linki do różnego rodzaju obiektów na stronie podręczników." } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe tekstowe}} </includeonly> mw3524tjzocre0w1oiv2hwgczyltofo Pruski/Lekcja33 0 63575 543745 2026-05-21T18:51:10Z Aklbmd164 37133 Utworzono nową stronę "'''<big>Lakciōni 33</big>''' == Charakter i emocje == * '''sūitenikiskas''' <25> – skromny * '''labatīngis''' <27> – pyszny, wyniosły * '''wessels''' <25> – wesoły * '''grāudus''' <31> – smutny == Wygląd ==" 543745 wikitext text/x-wiki '''<big>Lakciōni 33</big>''' == Charakter i emocje == * '''sūitenikiskas''' <25> – skromny * '''labatīngis''' <27> – pyszny, wyniosły * '''wessels''' <25> – wesoły * '''grāudus''' <31> – smutny == Wygląd == 5eem1w2iweiad8mrocbrqeshex99rlo 543746 543745 2026-05-21T19:24:41Z Aklbmd164 37133 543746 wikitext text/x-wiki '''<big>Lakciōni 33</big>''' == Charakter i emocje == * '''sūitenikiskas''' <25> – skromny * '''labatīngis''' <27> – pyszny, wyniosły * '''wessels''' <25> – wesoły * '''grāudus''' <31> – smutny * '''labs''' <26> – dobry * '''wārgs''' <26> – zły * '''gaūdars''' <26> – mądry * '''glūps''' <25> – głupi * '''wūlakingis''' <27> – leniwy * '''dīlawingis''' <27> – pracowity * '''narewīngis''' <27>, '''dīrsus''' <31> – odważny, śmiały * '''bijāwingis''' <27>, '''dūrs''' <25> – bojaźliwy, lękliwy * '''dwidabbiskas''' <25> – dwulicowy * '''rāms''' <26> – pokorny, uczciwy, cnotliwy * '''labīngis''' <27> – życzliwy * '''lampiskas''' <25> – podły, niegodziwy * '''simpātiskas''' <25> – sympatyczny * '''barzūniskas''' <25> – ponury, drażliwy * '''ginewīngis''' <27> – przyjazny * '''preilāngus''' <31> – grzeczny, uprzejmy * '''dīrzals''' <25> – uparty * '''tuldewīngis''' <27> – radosny * '''deiwūts''' <25> – szczęśliwy * '''nērtingis''' <27> – zły, gniewny, wściekły * '''aulāikingis''' <27> – opanowany, powściągliwy * '''tusīngis''' <27> – małomówny == Wygląd == kkmcv7ik9u29li820ziaqb5o0ylojm5 543747 543746 2026-05-21T19:27:07Z Aklbmd164 37133 /* Charakter i emocje */ 543747 wikitext text/x-wiki '''<big>Lakciōni 33</big>''' == Charakter i emocje == * '''sūitenikiskas''' <25> – skromny * '''labatīngis''' <27> – pyszny, wyniosły * '''wessels''' <25> – wesoły * '''grāudus''' <31> – smutny * '''labs''' <26> – dobry * '''wārgs''' <26> – zły * '''gaūdars''' <26> – mądry * '''glūps''' <25> – głupi * '''wūlakingis''' <27> – leniwy * '''dīlawingis''' <27> – pracowity * '''narewīngis''' <27>, '''dīrsus''' <31> – odważny, śmiały * '''bijāwingis''' <27>, '''dūrs''' <25> – bojaźliwy, lękliwy * '''dwidabbiskas''' <25> – dwulicowy * '''rāms''' <26> – pokorny, uczciwy, cnotliwy * '''labīngis''' <27> – życzliwy * '''lampiskas''' <25> – podły, niegodziwy * '''simpātiskas''' <25> – sympatyczny * '''barzūniskas''' <25> – ponury, drażliwy * '''ginewīngis''' <27> – przyjazny * '''preilāngus''' <31> – grzeczny, uprzejmy * '''dīrzals''' <25> – uparty * '''tuldewīngis''' <27> – radosny * '''deiwūts''' <25> – szczęśliwy * '''nērtingis''' <27> – zły, gniewny, wściekły * '''aulāikingis''' <27> – opanowany, powściągliwy * '''tusīngis''' <27> – małomówny * '''entikriskas''' <25> – szczery == Wygląd == fi0ddk6w2pwq4g7yclvg09jesrkendl 543748 543747 2026-05-21T19:32:37Z Aklbmd164 37133 /* Charakter i emocje */ 543748 wikitext text/x-wiki '''<big>Lakciōni 33</big>''' == Charakter i emocje == === Charakter === * '''sūitenikiskas''' <25> – skromny * '''labatīngis''' <27> – pyszny, wyniosły * '''labs''' <26> – dobry * '''wārgs''' <26> – zły * '''gaūdars''' <26> – mądry * '''glūps''' <25> – głupi * '''wūlakingis''' <27> – leniwy * '''dīlawingis''' <27> – pracowity * '''narewīngis''' <27>, '''dīrsus''' <31> – odważny, śmiały * '''bijāwingis''' <27>, '''dūrs''' <25> – bojaźliwy, lękliwy * '''dwidabbiskas''' <25> – dwulicowy * '''rāms''' <26> – pokorny, uczciwy, cnotliwy * '''labīngis''' <27> – życzliwy * '''lampiskas''' <25> – podły, niegodziwy * '''simpātiskas''' <25> – sympatyczny * '''barzūniskas''' <25> – ponury, drażliwy * '''ginewīngis''' <27> – przyjazny * '''preilāngus''' <31> – grzeczny, uprzejmy * '''dīrzals''' <25> – uparty * '''aulāikingis''' <27> – opanowany, powściągliwy * '''tusīngis''' <27> – małomówny * '''entikriskas''' <25> – szczery === Emocje === * '''wessels''' <25> – wesoły * '''grāudus''' <31> – smutny * '''tuldewīngis''' <27> – radosny * '''deiwūts''' <25> – szczęśliwy * '''nērtingis''' <27> – zły, gniewny, wściekły == Wygląd == nc5x3uvu5yput6nrasji0pgrnijab0j 543749 543748 2026-05-21T19:57:17Z Aklbmd164 37133 543749 wikitext text/x-wiki '''<big>Lakciōni 33</big>''' == Charakter i emocje == === Charakter === * '''sūitenikiskas''' <25> – skromny * '''labatīngis''' <27> – pyszny, wyniosły * '''labs''' <26> – dobry * '''wārgs''' <26> – zły * '''gaūdars''' <26> – mądry * '''glūps''' <25> – głupi * '''wūlakingis''' <27> – leniwy * '''dīlawingis''' <27> – pracowity * '''narewīngis''' <27>, '''dīrsus''' <31> – odważny, śmiały * '''bijāwingis''' <27>, '''dūrs''' <25> – bojaźliwy, lękliwy * '''dwidabbiskas''' <25> – dwulicowy * '''rāms''' <26> – pokorny, uczciwy, cnotliwy * '''labīngis''' <27> – życzliwy * '''lampiskas''' <25> – podły, niegodziwy * '''simpātiskas''' <25> – sympatyczny * '''barzūniskas''' <25> – ponury, drażliwy * '''ginewīngis''' <27> – przyjazny * '''preilāngus''' <31> – grzeczny, uprzejmy * '''dīrzals''' <25> – uparty * '''aulāikingis''' <27> – opanowany, powściągliwy * '''tusīngis''' <27> – małomówny * '''entikriskas''' <25> – szczery === Emocje === * '''wessels''' <25> – wesoły * '''grāudus''' <31> – smutny * '''tuldewīngis''' <27> – radosny * '''deiwūts''' <25> – szczęśliwy * '''nērtingis''' <27> – zły, gniewny, wściekły == Wygląd == * '''grazzus''' <31> – piękny, ładny, przystojny * '''klūmbewingis''' <27> – brzydki * '''debīks''' <25> – duży * '''līkuts''' <25> – mały * '''laībs''' <26> – chudy * '''stārs''' <26> – gruby * '''instrawingis''' <27> – otyły * '''wūriskas''' <25> – stary, starszy * '''mālds''' <26> – młody * '''aūkts''' <26> – wysoki * '''zems''' <26> – niski * '''bāls''' <25> – blady * '''spīnkains''' <25> – piegowaty * '''siwaskebbelingis''' <27> – siwowłosy * '''kuks''' <25> – rudy * '''pliks''' <25> – łysy * '''kūmps''' <26> – garbaty, zgarbiony (np. człowiek, nos) ep75bxk6kquvh2825j43is6yn7jpxpl 543753 543749 2026-05-21T20:33:56Z Aklbmd164 37133 543753 wikitext text/x-wiki '''<big>Lakciōni 33</big>''' == Charakter i emocje == === Charakter === * '''sūitenikiskas''' <25> – skromny * '''labatīngis''' <27> – pyszny, wyniosły * '''labs''' <26> – dobry * '''wārgs''' <26> – zły * '''gaūdars''' <26> – mądry * '''glūps''' <25> – głupi * '''wūlakingis''' <27> – leniwy * '''dīlawingis''' <27> – pracowity * '''narewīngis''' <27>, '''dīrsus''' <31> – odważny, śmiały * '''bijāwingis''' <27>, '''dūrs''' <25> – bojaźliwy, lękliwy * '''dwidabbiskas''' <25> – dwulicowy * '''rāms''' <26> – pokorny, uczciwy, cnotliwy * '''labīngis''' <27> – życzliwy * '''lampiskas''' <25> – podły, niegodziwy * '''simpātiskas''' <25> – sympatyczny * '''barzūniskas''' <25> – ponury, drażliwy * '''ginewīngis''' <27> – przyjazny * '''preilāngus''' <31> – grzeczny, uprzejmy * '''dīrzals''' <25> – uparty * '''aulāikingis''' <27> – opanowany, powściągliwy * '''tusīngis''' <27> – małomówny * '''entikriskas''' <25> – szczery === Emocje === * '''wessels''' <25> – wesoły * '''grāudus''' <31> – smutny * '''tuldewīngis''' <27> – radosny * '''deiwūts''' <25> – szczęśliwy * '''nērtingis''' <27> – zły, gniewny, wściekły == Wygląd == * '''grazzus''' <31> – piękny, ładny, przystojny * '''klūmbewingis''' <27> – brzydki * '''debīks''' <25> – duży * '''līkuts''' <25> – mały * '''laībs''' <26> – chudy * '''stārs''' <26> – gruby * '''instrawingis''' <27> – otyły * '''wūriskas''' <25> – stary, starszy * '''mālds''' <26> – młody * '''aūkts''' <26> – wysoki * '''zems''' <26> – niski * '''bāls''' <25> – blady * '''spīnkains''' <25> – piegowaty * '''siwaskebbelingis''' <27> – siwowłosy * '''kuks''' <25> – rudy * '''pliks''' <25> – łysy * '''kūmps''' <26> – garbaty, zgarbiony (np. człowiek, nos) == Tworzenie rzeczowników i czasowników od przymiotników == Rzeczowniki od przymiotników można tworzyć m.in. za pomocą przyrostków:<br> '''-isku''', np.: * wūr<span style="color:red">iskas</span> ⇒ wūr<span style="color:red">isku</span> (starość) * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">isku</span> (wesołość) '''-an/-u'''. Utworzone w ten sposób słowo jest identyczne z formą rodzaju nijakiego l. pojedynczej przymiotnika, od którego je utworzono, np.: * lab<span style="color:red">s</span> ⇒ labb<span style="color:red">an</span> (dobro) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">u</span> (piękno) razgu8c72bab6wcpql084dnto9erf6h 543754 543753 2026-05-21T20:40:12Z Aklbmd164 37133 /* Tworzenie rzeczowników i czasowników od przymiotników */ 543754 wikitext text/x-wiki '''<big>Lakciōni 33</big>''' == Charakter i emocje == === Charakter === * '''sūitenikiskas''' <25> – skromny * '''labatīngis''' <27> – pyszny, wyniosły * '''labs''' <26> – dobry * '''wārgs''' <26> – zły * '''gaūdars''' <26> – mądry * '''glūps''' <25> – głupi * '''wūlakingis''' <27> – leniwy * '''dīlawingis''' <27> – pracowity * '''narewīngis''' <27>, '''dīrsus''' <31> – odważny, śmiały * '''bijāwingis''' <27>, '''dūrs''' <25> – bojaźliwy, lękliwy * '''dwidabbiskas''' <25> – dwulicowy * '''rāms''' <26> – pokorny, uczciwy, cnotliwy * '''labīngis''' <27> – życzliwy * '''lampiskas''' <25> – podły, niegodziwy * '''simpātiskas''' <25> – sympatyczny * '''barzūniskas''' <25> – ponury, drażliwy * '''ginewīngis''' <27> – przyjazny * '''preilāngus''' <31> – grzeczny, uprzejmy * '''dīrzals''' <25> – uparty * '''aulāikingis''' <27> – opanowany, powściągliwy * '''tusīngis''' <27> – małomówny * '''entikriskas''' <25> – szczery === Emocje === * '''wessels''' <25> – wesoły * '''grāudus''' <31> – smutny * '''tuldewīngis''' <27> – radosny * '''deiwūts''' <25> – szczęśliwy * '''nērtingis''' <27> – zły, gniewny, wściekły == Wygląd == * '''grazzus''' <31> – piękny, ładny, przystojny * '''klūmbewingis''' <27> – brzydki * '''debīks''' <25> – duży * '''līkuts''' <25> – mały * '''laībs''' <26> – chudy * '''stārs''' <26> – gruby * '''instrawingis''' <27> – otyły * '''wūriskas''' <25> – stary, starszy * '''mālds''' <26> – młody * '''aūkts''' <26> – wysoki * '''zems''' <26> – niski * '''bāls''' <25> – blady * '''spīnkains''' <25> – piegowaty * '''siwaskebbelingis''' <27> – siwowłosy * '''kuks''' <25> – rudy * '''pliks''' <25> – łysy * '''kūmps''' <26> – garbaty, zgarbiony (np. człowiek, nos) == Tworzenie rzeczowników i czasowników od przymiotników == Rzeczowniki od przymiotników można tworzyć m.in. za pomocą przyrostków:<br> '''-isku''', np.: * wūr<span style="color:red">iskas</span> ⇒ wūr<span style="color:red">isku</span> (starość) * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">isku</span> (wesołość) '''-an/-u'''. Utworzone w ten sposób słowo jest identyczne z formą rodzaju nijakiego l. pojedynczej przymiotnika, od którego je utworzono, np.: * lab<span style="color:red">s</span> ⇒ labb<span style="color:red">an</span> (dobro) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">u</span> (piękno) '''-ōlis''' (rodzaj męski) i '''-ōli''' (rodzaj żeński). Te przyrostki oznaczają osobę posiadającą daną cechę, np.: * grazz<span style="color:red">us</span> ⇒ graz<span style="color:red">ōlis</span> (przystojniak) * gaūdar<span style="color:red">s</span> ⇒ gaudr<span style="color:red">ōlis</span> (mędrzec, mądrala) ri7dv4xatlswu005hpz09cxakm5zohm 543755 543754 2026-05-21T20:48:54Z Aklbmd164 37133 /* Tworzenie rzeczowników i czasowników od przymiotników */ 543755 wikitext text/x-wiki '''<big>Lakciōni 33</big>''' == Charakter i emocje == === Charakter === * '''sūitenikiskas''' <25> – skromny * '''labatīngis''' <27> – pyszny, wyniosły * '''labs''' <26> – dobry * '''wārgs''' <26> – zły * '''gaūdars''' <26> – mądry * '''glūps''' <25> – głupi * '''wūlakingis''' <27> – leniwy * '''dīlawingis''' <27> – pracowity * '''narewīngis''' <27>, '''dīrsus''' <31> – odważny, śmiały * '''bijāwingis''' <27>, '''dūrs''' <25> – bojaźliwy, lękliwy * '''dwidabbiskas''' <25> – dwulicowy * '''rāms''' <26> – pokorny, uczciwy, cnotliwy * '''labīngis''' <27> – życzliwy * '''lampiskas''' <25> – podły, niegodziwy * '''simpātiskas''' <25> – sympatyczny * '''barzūniskas''' <25> – ponury, drażliwy * '''ginewīngis''' <27> – przyjazny * '''preilāngus''' <31> – grzeczny, uprzejmy * '''dīrzals''' <25> – uparty * '''aulāikingis''' <27> – opanowany, powściągliwy * '''tusīngis''' <27> – małomówny * '''entikriskas''' <25> – szczery === Emocje === * '''wessels''' <25> – wesoły * '''grāudus''' <31> – smutny * '''tuldewīngis''' <27> – radosny * '''deiwūts''' <25> – szczęśliwy * '''nērtingis''' <27> – zły, gniewny, wściekły == Wygląd == * '''grazzus''' <31> – piękny, ładny, przystojny * '''klūmbewingis''' <27> – brzydki * '''debīks''' <25> – duży * '''līkuts''' <25> – mały * '''laībs''' <26> – chudy * '''stārs''' <26> – gruby * '''instrawingis''' <27> – otyły * '''wūriskas''' <25> – stary, starszy * '''mālds''' <26> – młody * '''aūkts''' <26> – wysoki * '''zems''' <26> – niski * '''bāls''' <25> – blady * '''spīnkains''' <25> – piegowaty * '''siwaskebbelingis''' <27> – siwowłosy * '''kuks''' <25> – rudy * '''pliks''' <25> – łysy * '''kūmps''' <26> – garbaty, zgarbiony (np. człowiek, nos) == Tworzenie rzeczowników i czasowników od przymiotników == === Tworzenie rzeczowników od przymiotników === Rzeczowniki od przymiotników można tworzyć m.in. za pomocą przyrostków:<br> '''-isku''', np.: * wūr<span style="color:red">iskas</span> ⇒ wūr<span style="color:red">isku</span> (starość) * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">isku</span> (wesołość) '''-an/-u'''. Utworzone w ten sposób słowo jest identyczne z formą rodzaju nijakiego l. pojedynczej przymiotnika, od którego je utworzono, np.: * lab<span style="color:red">s</span> ⇒ labb<span style="color:red">an</span> (dobro) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">u</span> (piękno) '''-ōlis''' (rodzaj męski) i '''-ōli''' (rodzaj żeński). Te przyrostki oznaczają osobę posiadającą daną cechę, np.: * grazz<span style="color:red">us</span> ⇒ graz<span style="color:red">ōlis</span> (przystojniak) * gaūdar<span style="color:red">s</span> ⇒ gaudr<span style="color:red">ōlis</span> (mędrzec, mądrala) === Tworzenie czasowników od przymiotników === Od przymiotników można utworzyć czasowniki odmieniające się różnymi wzorami odmian, m.in.: <br> '''<82>''' * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">intun</span> (bawić, weselić, rozweselać) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">intun</span> (ozdabiać) s690u5mmxer62zrrmh2sdkyut17jfsj 543756 543755 2026-05-21T20:54:52Z Aklbmd164 37133 /* Tworzenie czasowników od przymiotników */ 543756 wikitext text/x-wiki '''<big>Lakciōni 33</big>''' == Charakter i emocje == === Charakter === * '''sūitenikiskas''' <25> – skromny * '''labatīngis''' <27> – pyszny, wyniosły * '''labs''' <26> – dobry * '''wārgs''' <26> – zły * '''gaūdars''' <26> – mądry * '''glūps''' <25> – głupi * '''wūlakingis''' <27> – leniwy * '''dīlawingis''' <27> – pracowity * '''narewīngis''' <27>, '''dīrsus''' <31> – odważny, śmiały * '''bijāwingis''' <27>, '''dūrs''' <25> – bojaźliwy, lękliwy * '''dwidabbiskas''' <25> – dwulicowy * '''rāms''' <26> – pokorny, uczciwy, cnotliwy * '''labīngis''' <27> – życzliwy * '''lampiskas''' <25> – podły, niegodziwy * '''simpātiskas''' <25> – sympatyczny * '''barzūniskas''' <25> – ponury, drażliwy * '''ginewīngis''' <27> – przyjazny * '''preilāngus''' <31> – grzeczny, uprzejmy * '''dīrzals''' <25> – uparty * '''aulāikingis''' <27> – opanowany, powściągliwy * '''tusīngis''' <27> – małomówny * '''entikriskas''' <25> – szczery === Emocje === * '''wessels''' <25> – wesoły * '''grāudus''' <31> – smutny * '''tuldewīngis''' <27> – radosny * '''deiwūts''' <25> – szczęśliwy * '''nērtingis''' <27> – zły, gniewny, wściekły == Wygląd == * '''grazzus''' <31> – piękny, ładny, przystojny * '''klūmbewingis''' <27> – brzydki * '''debīks''' <25> – duży * '''līkuts''' <25> – mały * '''laībs''' <26> – chudy * '''stārs''' <26> – gruby * '''instrawingis''' <27> – otyły * '''wūriskas''' <25> – stary, starszy * '''mālds''' <26> – młody * '''aūkts''' <26> – wysoki * '''zems''' <26> – niski * '''bāls''' <25> – blady * '''spīnkains''' <25> – piegowaty * '''siwaskebbelingis''' <27> – siwowłosy * '''kuks''' <25> – rudy * '''pliks''' <25> – łysy * '''kūmps''' <26> – garbaty, zgarbiony (np. człowiek, nos) == Tworzenie rzeczowników i czasowników od przymiotników == === Tworzenie rzeczowników od przymiotników === Rzeczowniki od przymiotników można tworzyć m.in. za pomocą przyrostków:<br> '''-isku''', np.: * wūr<span style="color:red">iskas</span> ⇒ wūr<span style="color:red">isku</span> (starość) * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">isku</span> (wesołość) '''-an/-u'''. Utworzone w ten sposób słowo jest identyczne z formą rodzaju nijakiego l. pojedynczej przymiotnika, od którego je utworzono, np.: * lab<span style="color:red">s</span> ⇒ labb<span style="color:red">an</span> (dobro) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">u</span> (piękno) '''-ōlis''' (rodzaj męski) i '''-ōli''' (rodzaj żeński). Te przyrostki oznaczają osobę posiadającą daną cechę, np.: * grazz<span style="color:red">us</span> ⇒ graz<span style="color:red">ōlis</span> (przystojniak) * gaūdar<span style="color:red">s</span> ⇒ gaudr<span style="color:red">ōlis</span> (mędrzec, mądrala) === Tworzenie czasowników od przymiotników === Od przymiotników można utworzyć czasowniki odmieniające się różnymi wzorami odmian, m.in.: <br> '''<82>''' * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">intun</span> (bawić, weselić, rozweselać) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">intun</span> (ozdabiać) '''<134>''' * grāud<span style="color:red">us</span> ⇒ graud<span style="color:red">ītwei</span> (smucić się) * laīb<span style="color:red">s</span> ⇒ laib<span style="color:red">ītwei</span> (chudnąć) '''<143>''' * gaūdar<span style="color:red">us</span> ⇒ gaūdr<span style="color:red">autwei</span> (mądrzyć się) * sūitenik<span style="color:red">iskas</span> ⇒ sūitenik<span style="color:red">autwei</span> (być skromnym) 3nii8j2pytvrmeuwpbt30c4630ktr8i 543757 543756 2026-05-21T21:05:51Z Aklbmd164 37133 /* Tworzenie rzeczowników od przymiotników */ 543757 wikitext text/x-wiki '''<big>Lakciōni 33</big>''' == Charakter i emocje == === Charakter === * '''sūitenikiskas''' <25> – skromny * '''labatīngis''' <27> – pyszny, wyniosły * '''labs''' <26> – dobry * '''wārgs''' <26> – zły * '''gaūdars''' <26> – mądry * '''glūps''' <25> – głupi * '''wūlakingis''' <27> – leniwy * '''dīlawingis''' <27> – pracowity * '''narewīngis''' <27>, '''dīrsus''' <31> – odważny, śmiały * '''bijāwingis''' <27>, '''dūrs''' <25> – bojaźliwy, lękliwy * '''dwidabbiskas''' <25> – dwulicowy * '''rāms''' <26> – pokorny, uczciwy, cnotliwy * '''labīngis''' <27> – życzliwy * '''lampiskas''' <25> – podły, niegodziwy * '''simpātiskas''' <25> – sympatyczny * '''barzūniskas''' <25> – ponury, drażliwy * '''ginewīngis''' <27> – przyjazny * '''preilāngus''' <31> – grzeczny, uprzejmy * '''dīrzals''' <25> – uparty * '''aulāikingis''' <27> – opanowany, powściągliwy * '''tusīngis''' <27> – małomówny * '''entikriskas''' <25> – szczery === Emocje === * '''wessels''' <25> – wesoły * '''grāudus''' <31> – smutny * '''tuldewīngis''' <27> – radosny * '''deiwūts''' <25> – szczęśliwy * '''nērtingis''' <27> – zły, gniewny, wściekły == Wygląd == * '''grazzus''' <31> – piękny, ładny, przystojny * '''klūmbewingis''' <27> – brzydki * '''debīks''' <25> – duży * '''līkuts''' <25> – mały * '''laībs''' <26> – chudy * '''stārs''' <26> – gruby * '''instrawingis''' <27> – otyły * '''wūriskas''' <25> – stary, starszy * '''mālds''' <26> – młody * '''aūkts''' <26> – wysoki * '''zems''' <26> – niski * '''bāls''' <25> – blady * '''spīnkains''' <25> – piegowaty * '''siwaskebbelingis''' <27> – siwowłosy * '''kuks''' <25> – rudy * '''pliks''' <25> – łysy * '''kūmps''' <26> – garbaty, zgarbiony (np. człowiek, nos) == Tworzenie rzeczowników i czasowników od przymiotników == === Tworzenie rzeczowników od przymiotników === Rzeczowniki od przymiotników można tworzyć m.in. za pomocą przyrostków:<br> '''-isku''', np.: * wūr<span style="color:red">iskas</span> ⇒ wūr<span style="color:red">isku</span> (starość) * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">isku</span> (wesołość) '''-an/-u'''. Utworzone w ten sposób słowo jest identyczne z formą rodzaju nijakiego l. pojedynczej przymiotnika, od którego je utworzono, np.: * lab<span style="color:red">s</span> ⇒ labb<span style="color:red">an</span> (dobro) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">u</span> (piękno) === Tworzenie czasowników od przymiotników === Od przymiotników można utworzyć czasowniki odmieniające się różnymi wzorami odmian, m.in.: <br> '''<82>''' * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">intun</span> (bawić, weselić, rozweselać) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">intun</span> (ozdabiać) '''<134>''' * grāud<span style="color:red">us</span> ⇒ graud<span style="color:red">ītwei</span> (smucić się) * laīb<span style="color:red">s</span> ⇒ laib<span style="color:red">ītwei</span> (chudnąć) '''<143>''' * gaūdar<span style="color:red">us</span> ⇒ gaūdr<span style="color:red">autwei</span> (mądrzyć się) * sūitenik<span style="color:red">iskas</span> ⇒ sūitenik<span style="color:red">autwei</span> (być skromnym) a7bdkao2uttalmgb1ui3kq71pyi81gk 543758 543757 2026-05-21T21:06:50Z Aklbmd164 37133 /* Tworzenie czasowników od przymiotników */ 543758 wikitext text/x-wiki '''<big>Lakciōni 33</big>''' == Charakter i emocje == === Charakter === * '''sūitenikiskas''' <25> – skromny * '''labatīngis''' <27> – pyszny, wyniosły * '''labs''' <26> – dobry * '''wārgs''' <26> – zły * '''gaūdars''' <26> – mądry * '''glūps''' <25> – głupi * '''wūlakingis''' <27> – leniwy * '''dīlawingis''' <27> – pracowity * '''narewīngis''' <27>, '''dīrsus''' <31> – odważny, śmiały * '''bijāwingis''' <27>, '''dūrs''' <25> – bojaźliwy, lękliwy * '''dwidabbiskas''' <25> – dwulicowy * '''rāms''' <26> – pokorny, uczciwy, cnotliwy * '''labīngis''' <27> – życzliwy * '''lampiskas''' <25> – podły, niegodziwy * '''simpātiskas''' <25> – sympatyczny * '''barzūniskas''' <25> – ponury, drażliwy * '''ginewīngis''' <27> – przyjazny * '''preilāngus''' <31> – grzeczny, uprzejmy * '''dīrzals''' <25> – uparty * '''aulāikingis''' <27> – opanowany, powściągliwy * '''tusīngis''' <27> – małomówny * '''entikriskas''' <25> – szczery === Emocje === * '''wessels''' <25> – wesoły * '''grāudus''' <31> – smutny * '''tuldewīngis''' <27> – radosny * '''deiwūts''' <25> – szczęśliwy * '''nērtingis''' <27> – zły, gniewny, wściekły == Wygląd == * '''grazzus''' <31> – piękny, ładny, przystojny * '''klūmbewingis''' <27> – brzydki * '''debīks''' <25> – duży * '''līkuts''' <25> – mały * '''laībs''' <26> – chudy * '''stārs''' <26> – gruby * '''instrawingis''' <27> – otyły * '''wūriskas''' <25> – stary, starszy * '''mālds''' <26> – młody * '''aūkts''' <26> – wysoki * '''zems''' <26> – niski * '''bāls''' <25> – blady * '''spīnkains''' <25> – piegowaty * '''siwaskebbelingis''' <27> – siwowłosy * '''kuks''' <25> – rudy * '''pliks''' <25> – łysy * '''kūmps''' <26> – garbaty, zgarbiony (np. człowiek, nos) == Tworzenie rzeczowników i czasowników od przymiotników == === Tworzenie rzeczowników od przymiotników === Rzeczowniki od przymiotników można tworzyć m.in. za pomocą przyrostków:<br> '''-isku''', np.: * wūr<span style="color:red">iskas</span> ⇒ wūr<span style="color:red">isku</span> (starość) * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">isku</span> (wesołość) '''-an/-u'''. Utworzone w ten sposób słowo jest identyczne z formą rodzaju nijakiego l. pojedynczej przymiotnika, od którego je utworzono, np.: * lab<span style="color:red">s</span> ⇒ labb<span style="color:red">an</span> (dobro) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">u</span> (piękno) === Tworzenie czasowników od przymiotników === Od przymiotników można utworzyć czasowniki odmieniające się różnymi wzorami odmian, m.in.: <br> '''<82>''' * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">intun</span> (bawić, weselić, rozweselać) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">intun</span> (ozdabiać) '''<134>''' * grāud<span style="color:red">us</span> ⇒ graud<span style="color:red">ītwei</span> (smucić się) * laīb<span style="color:red">s</span> ⇒ laib<span style="color:red">ītwei</span> (chudnąć) '''<143>''' * gaūdar<span style="color:red">us</span> ⇒ gaūdr<span style="color:red">autwei</span> (mądrzyć się) * sūitenik<span style="color:red">iskas</span> ⇒ sūitenik<span style="color:red">autwei</span> (być skromnym) gvhe6i5yacojq4ttp41y5fikvg2z6w2 543759 543758 2026-05-21T21:07:07Z Aklbmd164 37133 /* Tworzenie rzeczowników i czasowników od przymiotników */ 543759 wikitext text/x-wiki '''<big>Lakciōni 33</big>''' == Charakter i emocje == === Charakter === * '''sūitenikiskas''' <25> – skromny * '''labatīngis''' <27> – pyszny, wyniosły * '''labs''' <26> – dobry * '''wārgs''' <26> – zły * '''gaūdars''' <26> – mądry * '''glūps''' <25> – głupi * '''wūlakingis''' <27> – leniwy * '''dīlawingis''' <27> – pracowity * '''narewīngis''' <27>, '''dīrsus''' <31> – odważny, śmiały * '''bijāwingis''' <27>, '''dūrs''' <25> – bojaźliwy, lękliwy * '''dwidabbiskas''' <25> – dwulicowy * '''rāms''' <26> – pokorny, uczciwy, cnotliwy * '''labīngis''' <27> – życzliwy * '''lampiskas''' <25> – podły, niegodziwy * '''simpātiskas''' <25> – sympatyczny * '''barzūniskas''' <25> – ponury, drażliwy * '''ginewīngis''' <27> – przyjazny * '''preilāngus''' <31> – grzeczny, uprzejmy * '''dīrzals''' <25> – uparty * '''aulāikingis''' <27> – opanowany, powściągliwy * '''tusīngis''' <27> – małomówny * '''entikriskas''' <25> – szczery === Emocje === * '''wessels''' <25> – wesoły * '''grāudus''' <31> – smutny * '''tuldewīngis''' <27> – radosny * '''deiwūts''' <25> – szczęśliwy * '''nērtingis''' <27> – zły, gniewny, wściekły == Wygląd == * '''grazzus''' <31> – piękny, ładny, przystojny * '''klūmbewingis''' <27> – brzydki * '''debīks''' <25> – duży * '''līkuts''' <25> – mały * '''laībs''' <26> – chudy * '''stārs''' <26> – gruby * '''instrawingis''' <27> – otyły * '''wūriskas''' <25> – stary, starszy * '''mālds''' <26> – młody * '''aūkts''' <26> – wysoki * '''zems''' <26> – niski * '''bāls''' <25> – blady * '''spīnkains''' <25> – piegowaty * '''siwaskebbelingis''' <27> – siwowłosy * '''kuks''' <25> – rudy * '''pliks''' <25> – łysy * '''kūmps''' <26> – garbaty, zgarbiony (np. człowiek, nos) == Tworzenie rzeczowników i czasowników od przymiotników == === Tworzenie rzeczowników od przymiotników === Rzeczowniki od przymiotników można tworzyć m.in. za pomocą przyrostków:<br> '''-isku''', np.: * wūr<span style="color:red">iskas</span> ⇒ wūr<span style="color:red">isku</span> (starość) * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">isku</span> (wesołość) '''-an/-u'''. Utworzone w ten sposób słowo jest identyczne z formą rodzaju nijakiego l. pojedynczej przymiotnika, od którego je utworzono, np.: * lab<span style="color:red">s</span> ⇒ labb<span style="color:red">an</span> (dobro) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">u</span> (piękno) === Tworzenie czasowników od przymiotników === Od przymiotników można utworzyć czasowniki odmieniające się różnymi wzorami odmian, m.in.:<br> '''<82>''' * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">intun</span> (bawić, weselić, rozweselać) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">intun</span> (ozdabiać) '''<134>''' * grāud<span style="color:red">us</span> ⇒ graud<span style="color:red">ītwei</span> (smucić się) * laīb<span style="color:red">s</span> ⇒ laib<span style="color:red">ītwei</span> (chudnąć) '''<143>''' * gaūdar<span style="color:red">us</span> ⇒ gaūdr<span style="color:red">autwei</span> (mądrzyć się) * sūitenik<span style="color:red">iskas</span> ⇒ sūitenik<span style="color:red">autwei</span> (być skromnym) r05m3ntapz2khjuuzme7ll3syok9gjz 543760 543759 2026-05-21T21:07:21Z Aklbmd164 37133 /* Tworzenie czasowników od przymiotników */ 543760 wikitext text/x-wiki '''<big>Lakciōni 33</big>''' == Charakter i emocje == === Charakter === * '''sūitenikiskas''' <25> – skromny * '''labatīngis''' <27> – pyszny, wyniosły * '''labs''' <26> – dobry * '''wārgs''' <26> – zły * '''gaūdars''' <26> – mądry * '''glūps''' <25> – głupi * '''wūlakingis''' <27> – leniwy * '''dīlawingis''' <27> – pracowity * '''narewīngis''' <27>, '''dīrsus''' <31> – odważny, śmiały * '''bijāwingis''' <27>, '''dūrs''' <25> – bojaźliwy, lękliwy * '''dwidabbiskas''' <25> – dwulicowy * '''rāms''' <26> – pokorny, uczciwy, cnotliwy * '''labīngis''' <27> – życzliwy * '''lampiskas''' <25> – podły, niegodziwy * '''simpātiskas''' <25> – sympatyczny * '''barzūniskas''' <25> – ponury, drażliwy * '''ginewīngis''' <27> – przyjazny * '''preilāngus''' <31> – grzeczny, uprzejmy * '''dīrzals''' <25> – uparty * '''aulāikingis''' <27> – opanowany, powściągliwy * '''tusīngis''' <27> – małomówny * '''entikriskas''' <25> – szczery === Emocje === * '''wessels''' <25> – wesoły * '''grāudus''' <31> – smutny * '''tuldewīngis''' <27> – radosny * '''deiwūts''' <25> – szczęśliwy * '''nērtingis''' <27> – zły, gniewny, wściekły == Wygląd == * '''grazzus''' <31> – piękny, ładny, przystojny * '''klūmbewingis''' <27> – brzydki * '''debīks''' <25> – duży * '''līkuts''' <25> – mały * '''laībs''' <26> – chudy * '''stārs''' <26> – gruby * '''instrawingis''' <27> – otyły * '''wūriskas''' <25> – stary, starszy * '''mālds''' <26> – młody * '''aūkts''' <26> – wysoki * '''zems''' <26> – niski * '''bāls''' <25> – blady * '''spīnkains''' <25> – piegowaty * '''siwaskebbelingis''' <27> – siwowłosy * '''kuks''' <25> – rudy * '''pliks''' <25> – łysy * '''kūmps''' <26> – garbaty, zgarbiony (np. człowiek, nos) == Tworzenie rzeczowników i czasowników od przymiotników == === Tworzenie rzeczowników od przymiotników === Rzeczowniki od przymiotników można tworzyć m.in. za pomocą przyrostków:<br> '''-isku''', np.: * wūr<span style="color:red">iskas</span> ⇒ wūr<span style="color:red">isku</span> (starość) * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">isku</span> (wesołość) '''-an/-u'''. Utworzone w ten sposób słowo jest identyczne z formą rodzaju nijakiego l. pojedynczej przymiotnika, od którego je utworzono, np.: * lab<span style="color:red">s</span> ⇒ labb<span style="color:red">an</span> (dobro) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">u</span> (piękno) === Tworzenie czasowników od przymiotników === Od przymiotników można utworzyć czasowniki odmieniające się różnymi wzorami odmian, m.in.:<br> '''<82>''' * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">intun</span> (bawić, weselić, rozweselać) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">intun</span> (ozdabiać) '''<134>''' * grāud<span style="color:red">us</span> ⇒ graud<span style="color:red">ītwei</span> (smucić się) * laīb<span style="color:red">s</span> ⇒ laib<span style="color:red">ītwei</span> (chudnąć) '''<143>''' * gaūdar<span style="color:red">s</span> ⇒ gaūdr<span style="color:red">autwei</span> (mądrzyć się) * sūitenik<span style="color:red">iskas</span> ⇒ sūitenik<span style="color:red">autwei</span> (być skromnym) fa6r2jylhmuq309guf4op45do13tjtl 543761 543760 2026-05-21T21:13:39Z Aklbmd164 37133 /* Tworzenie czasowników od przymiotników */ 543761 wikitext text/x-wiki '''<big>Lakciōni 33</big>''' == Charakter i emocje == === Charakter === * '''sūitenikiskas''' <25> – skromny * '''labatīngis''' <27> – pyszny, wyniosły * '''labs''' <26> – dobry * '''wārgs''' <26> – zły * '''gaūdars''' <26> – mądry * '''glūps''' <25> – głupi * '''wūlakingis''' <27> – leniwy * '''dīlawingis''' <27> – pracowity * '''narewīngis''' <27>, '''dīrsus''' <31> – odważny, śmiały * '''bijāwingis''' <27>, '''dūrs''' <25> – bojaźliwy, lękliwy * '''dwidabbiskas''' <25> – dwulicowy * '''rāms''' <26> – pokorny, uczciwy, cnotliwy * '''labīngis''' <27> – życzliwy * '''lampiskas''' <25> – podły, niegodziwy * '''simpātiskas''' <25> – sympatyczny * '''barzūniskas''' <25> – ponury, drażliwy * '''ginewīngis''' <27> – przyjazny * '''preilāngus''' <31> – grzeczny, uprzejmy * '''dīrzals''' <25> – uparty * '''aulāikingis''' <27> – opanowany, powściągliwy * '''tusīngis''' <27> – małomówny * '''entikriskas''' <25> – szczery === Emocje === * '''wessels''' <25> – wesoły * '''grāudus''' <31> – smutny * '''tuldewīngis''' <27> – radosny * '''deiwūts''' <25> – szczęśliwy * '''nērtingis''' <27> – zły, gniewny, wściekły == Wygląd == * '''grazzus''' <31> – piękny, ładny, przystojny * '''klūmbewingis''' <27> – brzydki * '''debīks''' <25> – duży * '''līkuts''' <25> – mały * '''laībs''' <26> – chudy * '''stārs''' <26> – gruby * '''instrawingis''' <27> – otyły * '''wūriskas''' <25> – stary, starszy * '''mālds''' <26> – młody * '''aūkts''' <26> – wysoki * '''zems''' <26> – niski * '''bāls''' <25> – blady * '''spīnkains''' <25> – piegowaty * '''siwaskebbelingis''' <27> – siwowłosy * '''kuks''' <25> – rudy * '''pliks''' <25> – łysy * '''kūmps''' <26> – garbaty, zgarbiony (np. człowiek, nos) == Tworzenie rzeczowników i czasowników od przymiotników == === Tworzenie rzeczowników od przymiotników === Rzeczowniki od przymiotników można tworzyć m.in. za pomocą przyrostków:<br> '''-isku''', np.: * wūr<span style="color:red">iskas</span> ⇒ wūr<span style="color:red">isku</span> (starość) * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">isku</span> (wesołość) '''-an/-u'''. Utworzone w ten sposób słowo jest identyczne z formą rodzaju nijakiego l. pojedynczej przymiotnika, od którego je utworzono, np.: * lab<span style="color:red">s</span> ⇒ labb<span style="color:red">an</span> (dobro) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">u</span> (piękno) === Tworzenie czasowników od przymiotników === Od przymiotników można utworzyć czasowniki odmieniające się różnymi wzorami odmian, m.in.:<br> '''<82>''' * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">intun</span> (bawić, weselić, rozweselać) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">intun</span> (ozdabiać) '''<134>''' * grāud<span style="color:red">us</span> ⇒ graud<span style="color:red">ītwei</span> (smucić się) * laīb<span style="color:red">s</span> ⇒ laib<span style="color:red">ītwei</span> (chudnąć) '''<143>''' * gaūdar<span style="color:red">s</span> ⇒ gaūdr<span style="color:red">autwei</span> (mądrzyć się) 8y1pm5lp696ns3nceofj09lge1jqfo3 543763 543761 2026-05-21T21:32:23Z Aklbmd164 37133 543763 wikitext text/x-wiki '''<big>Lakciōni 33</big>''' == Charakter i emocje == === Charakter === * '''sūitenikiskas''' <25> – skromny * '''labatīngis''' <27> – pyszny, wyniosły * '''labs''' <26> – dobry * '''wārgs''' <26> – zły * '''gaūdars''' <26> – mądry * '''glūps''' <25> – głupi * '''wūlakingis''' <27> – leniwy * '''dīlawingis''' <27> – pracowity * '''narewīngis''' <27>, '''dīrsus''' <31> – odważny, śmiały * '''bijāwingis''' <27>, '''dūrs''' <25> – bojaźliwy, lękliwy * '''dwidabbiskas''' <25> – dwulicowy * '''rāms''' <26> – pokorny, uczciwy, cnotliwy * '''labīngis''' <27> – życzliwy * '''lampiskas''' <25> – podły, niegodziwy * '''simpātiskas''' <25> – sympatyczny * '''barzūniskas''' <25> – ponury, drażliwy * '''ginewīngis''' <27> – przyjazny * '''preilāngus''' <31> – grzeczny, uprzejmy * '''dīrzals''' <25> – uparty * '''aulāikingis''' <27> – opanowany, powściągliwy * '''tusīngis''' <27> – małomówny * '''entikriskas''' <25> – szczery === Emocje === * '''wessels''' <25> – wesoły * '''grāudus''' <31> – smutny * '''tuldewīngis''' <27> – radosny * '''deiwūts''' <25> – szczęśliwy * '''nērtingis''' <27> – zły, gniewny, wściekły == Wygląd == * '''grazzus''' <31> – piękny, ładny, przystojny * '''klūmbewingis''' <27> – brzydki * '''debīks''' <25> – duży * '''līkuts''' <25> – mały * '''laībs''' <26> – chudy * '''stārs''' <26> – gruby * '''instrawingis''' <27> – otyły * '''wūriskas''' <25> – stary, starszy * '''mālds''' <26> – młody * '''aūkts''' <26> – wysoki * '''zems''' <26> – niski * '''bāls''' <25> – blady * '''spīnkains''' <25> – piegowaty * '''siwaskebbelingis''' <27> – siwowłosy * '''kuks''' <25> – rudy * '''pliks''' <25> – łysy * '''kūmps''' <26> – garbaty, zgarbiony (np. człowiek, nos) == Tworzenie rzeczowników i czasowników od przymiotników == === Tworzenie rzeczowników od przymiotników === Rzeczowniki od przymiotników można tworzyć m.in. za pomocą przyrostków:<br> '''-isku''', np.: * wūr<span style="color:red">iskas</span> ⇒ wūr<span style="color:red">isku</span> (starość) * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">isku</span> (wesołość) '''-an/-u'''. Utworzone w ten sposób słowo jest identyczne z formą rodzaju nijakiego l. pojedynczej przymiotnika, od którego je utworzono, np.: * lab<span style="color:red">s</span> ⇒ labb<span style="color:red">an</span> (dobro) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">u</span> (piękno) === Tworzenie czasowników od przymiotników === Od przymiotników można utworzyć czasowniki odmieniające się różnymi wzorami odmian, m.in.:<br> '''<82>''' * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">intun</span> (bawić, weselić, rozweselać) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">intun</span> (ozdabiać) '''<134>''' * grāud<span style="color:red">us</span> ⇒ graud<span style="color:red">ītwei</span> (smucić się) * laīb<span style="color:red">s</span> ⇒ laib<span style="color:red">ītwei</span> (chudnąć) '''<143>''' * gaūdar<span style="color:red">s</span> ⇒ gaūdr<span style="color:red">autwei</span> (mądrzyć się) == Przydatne wyrażenia == * '''Tāns ast spārtai dīlawingi/dīrsu/kantran''' – On jest bardzo pracowity/odważny/cierpliwy. * '''Tāns perwaidinna grāudu/simpātiskan''' – On wygląda na smutnego/sympatycznego. * '''Dwidabbiskai/Labatīngei/Wūlakingei zmūnei ni padīnga mennei''' – Nie lubię dwulicowych/wyniosłych/leniwych ludzi. * '''Galīmbas/Brūnas/Zallis akkis''' – Niebieski/Brązowe/Zielone oczy * '''Gailāgalas/Brūnagalas/Timrāgalas''' – Blondyn/Szatyn/Brunet * '''Gailāgalwa/Brūnagalwa/Timrāgalwa''' – Blondynka/Szatynka/Brunetka * '''Tāns turri ilgans/īnsans skebbelins''' – On ma długie/krótkie włosy. * '''Tāns turri bārdan/wānsan''' – On ma brodę/wąsy. * '''Tāns ast skērtan''' – On jest ogolony. * '''Tāns turri bālin/deggintan prusnan''' – On ma bladą/opaloną twarz. fowgu1kl419wfxd9sek8fc0uicrls4d 543764 543763 2026-05-21T21:33:01Z Aklbmd164 37133 /* Przydatne wyrażenia */ 543764 wikitext text/x-wiki '''<big>Lakciōni 33</big>''' == Charakter i emocje == === Charakter === * '''sūitenikiskas''' <25> – skromny * '''labatīngis''' <27> – pyszny, wyniosły * '''labs''' <26> – dobry * '''wārgs''' <26> – zły * '''gaūdars''' <26> – mądry * '''glūps''' <25> – głupi * '''wūlakingis''' <27> – leniwy * '''dīlawingis''' <27> – pracowity * '''narewīngis''' <27>, '''dīrsus''' <31> – odważny, śmiały * '''bijāwingis''' <27>, '''dūrs''' <25> – bojaźliwy, lękliwy * '''dwidabbiskas''' <25> – dwulicowy * '''rāms''' <26> – pokorny, uczciwy, cnotliwy * '''labīngis''' <27> – życzliwy * '''lampiskas''' <25> – podły, niegodziwy * '''simpātiskas''' <25> – sympatyczny * '''barzūniskas''' <25> – ponury, drażliwy * '''ginewīngis''' <27> – przyjazny * '''preilāngus''' <31> – grzeczny, uprzejmy * '''dīrzals''' <25> – uparty * '''aulāikingis''' <27> – opanowany, powściągliwy * '''tusīngis''' <27> – małomówny * '''entikriskas''' <25> – szczery === Emocje === * '''wessels''' <25> – wesoły * '''grāudus''' <31> – smutny * '''tuldewīngis''' <27> – radosny * '''deiwūts''' <25> – szczęśliwy * '''nērtingis''' <27> – zły, gniewny, wściekły == Wygląd == * '''grazzus''' <31> – piękny, ładny, przystojny * '''klūmbewingis''' <27> – brzydki * '''debīks''' <25> – duży * '''līkuts''' <25> – mały * '''laībs''' <26> – chudy * '''stārs''' <26> – gruby * '''instrawingis''' <27> – otyły * '''wūriskas''' <25> – stary, starszy * '''mālds''' <26> – młody * '''aūkts''' <26> – wysoki * '''zems''' <26> – niski * '''bāls''' <25> – blady * '''spīnkains''' <25> – piegowaty * '''siwaskebbelingis''' <27> – siwowłosy * '''kuks''' <25> – rudy * '''pliks''' <25> – łysy * '''kūmps''' <26> – garbaty, zgarbiony (np. człowiek, nos) == Tworzenie rzeczowników i czasowników od przymiotników == === Tworzenie rzeczowników od przymiotników === Rzeczowniki od przymiotników można tworzyć m.in. za pomocą przyrostków:<br> '''-isku''', np.: * wūr<span style="color:red">iskas</span> ⇒ wūr<span style="color:red">isku</span> (starość) * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">isku</span> (wesołość) '''-an/-u'''. Utworzone w ten sposób słowo jest identyczne z formą rodzaju nijakiego l. pojedynczej przymiotnika, od którego je utworzono, np.: * lab<span style="color:red">s</span> ⇒ labb<span style="color:red">an</span> (dobro) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">u</span> (piękno) === Tworzenie czasowników od przymiotników === Od przymiotników można utworzyć czasowniki odmieniające się różnymi wzorami odmian, m.in.:<br> '''<82>''' * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">intun</span> (bawić, weselić, rozweselać) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">intun</span> (ozdabiać) '''<134>''' * grāud<span style="color:red">us</span> ⇒ graud<span style="color:red">ītwei</span> (smucić się) * laīb<span style="color:red">s</span> ⇒ laib<span style="color:red">ītwei</span> (chudnąć) '''<143>''' * gaūdar<span style="color:red">s</span> ⇒ gaūdr<span style="color:red">autwei</span> (mądrzyć się) == Przydatne wyrażenia == * '''Tāns ast spārtai dīlawingi/dīrsu/kantran''' – On jest bardzo pracowity/odważny/cierpliwy. * '''Tāns perwaidinna grāudu/simpātiskan''' – On wygląda na smutnego/sympatycznego. * '''Dwidabbiskai/Labatīngei/Wūlakingei zmūnei ni padīnga mennei''' – Nie lubię dwulicowych/wyniosłych/leniwych ludzi. * '''Galīmbas/Brūnas/Zallis akkis''' – Niebieskie/Brązowe/Zielone oczy * '''Gailāgalas/Brūnagalas/Timrāgalas''' – Blondyn/Szatyn/Brunet * '''Gailāgalwa/Brūnagalwa/Timrāgalwa''' – Blondynka/Szatynka/Brunetka * '''Tāns turri ilgans/īnsans skebbelins''' – On ma długie/krótkie włosy. * '''Tāns turri bārdan/wānsan''' – On ma brodę/wąsy. * '''Tāns ast skērtan''' – On jest ogolony. * '''Tāns turri bālin/deggintan prusnan''' – On ma bladą/opaloną twarz. cmqrookztpvly1vz48ldsm6jr83stbe 543765 543764 2026-05-21T21:36:27Z Aklbmd164 37133 /* Tworzenie czasowników od przymiotników */ 543765 wikitext text/x-wiki '''<big>Lakciōni 33</big>''' == Charakter i emocje == === Charakter === * '''sūitenikiskas''' <25> – skromny * '''labatīngis''' <27> – pyszny, wyniosły * '''labs''' <26> – dobry * '''wārgs''' <26> – zły * '''gaūdars''' <26> – mądry * '''glūps''' <25> – głupi * '''wūlakingis''' <27> – leniwy * '''dīlawingis''' <27> – pracowity * '''narewīngis''' <27>, '''dīrsus''' <31> – odważny, śmiały * '''bijāwingis''' <27>, '''dūrs''' <25> – bojaźliwy, lękliwy * '''dwidabbiskas''' <25> – dwulicowy * '''rāms''' <26> – pokorny, uczciwy, cnotliwy * '''labīngis''' <27> – życzliwy * '''lampiskas''' <25> – podły, niegodziwy * '''simpātiskas''' <25> – sympatyczny * '''barzūniskas''' <25> – ponury, drażliwy * '''ginewīngis''' <27> – przyjazny * '''preilāngus''' <31> – grzeczny, uprzejmy * '''dīrzals''' <25> – uparty * '''aulāikingis''' <27> – opanowany, powściągliwy * '''tusīngis''' <27> – małomówny * '''entikriskas''' <25> – szczery === Emocje === * '''wessels''' <25> – wesoły * '''grāudus''' <31> – smutny * '''tuldewīngis''' <27> – radosny * '''deiwūts''' <25> – szczęśliwy * '''nērtingis''' <27> – zły, gniewny, wściekły == Wygląd == * '''grazzus''' <31> – piękny, ładny, przystojny * '''klūmbewingis''' <27> – brzydki * '''debīks''' <25> – duży * '''līkuts''' <25> – mały * '''laībs''' <26> – chudy * '''stārs''' <26> – gruby * '''instrawingis''' <27> – otyły * '''wūriskas''' <25> – stary, starszy * '''mālds''' <26> – młody * '''aūkts''' <26> – wysoki * '''zems''' <26> – niski * '''bāls''' <25> – blady * '''spīnkains''' <25> – piegowaty * '''siwaskebbelingis''' <27> – siwowłosy * '''kuks''' <25> – rudy * '''pliks''' <25> – łysy * '''kūmps''' <26> – garbaty, zgarbiony (np. człowiek, nos) == Tworzenie rzeczowników i czasowników od przymiotników == === Tworzenie rzeczowników od przymiotników === Rzeczowniki od przymiotników można tworzyć m.in. za pomocą przyrostków:<br> '''-isku''', np.: * wūr<span style="color:red">iskas</span> ⇒ wūr<span style="color:red">isku</span> (starość) * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">isku</span> (wesołość) '''-an/-u'''. Utworzone w ten sposób słowo jest identyczne z formą rodzaju nijakiego l. pojedynczej przymiotnika, od którego je utworzono, np.: * lab<span style="color:red">s</span> ⇒ labb<span style="color:red">an</span> (dobro) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">u</span> (piękno) === Tworzenie czasowników od przymiotników === Od przymiotników można utworzyć czasowniki odmieniające się różnymi wzorami odmian, m.in.:<br> '''<82>''' * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">intun</span> (bawić, weselić, rozweselać) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">intun</span> (ozdabiać) '''<134>''' * sīw<span style="color:red">s</span> ⇒ siw<span style="color:red">ītwei</span> (siwieć) * laīb<span style="color:red">s</span> ⇒ laib<span style="color:red">ītwei</span> (chudnąć) '''<143>''' * gaūdar<span style="color:red">s</span> ⇒ gaūdr<span style="color:red">autwei</span> (mądrzyć się) == Przydatne wyrażenia == * '''Tāns ast spārtai dīlawingi/dīrsu/kantran''' – On jest bardzo pracowity/odważny/cierpliwy. * '''Tāns perwaidinna grāudu/simpātiskan''' – On wygląda na smutnego/sympatycznego. * '''Dwidabbiskai/Labatīngei/Wūlakingei zmūnei ni padīnga mennei''' – Nie lubię dwulicowych/wyniosłych/leniwych ludzi. * '''Galīmbas/Brūnas/Zallis akkis''' – Niebieskie/Brązowe/Zielone oczy * '''Gailāgalas/Brūnagalas/Timrāgalas''' – Blondyn/Szatyn/Brunet * '''Gailāgalwa/Brūnagalwa/Timrāgalwa''' – Blondynka/Szatynka/Brunetka * '''Tāns turri ilgans/īnsans skebbelins''' – On ma długie/krótkie włosy. * '''Tāns turri bārdan/wānsan''' – On ma brodę/wąsy. * '''Tāns ast skērtan''' – On jest ogolony. * '''Tāns turri bālin/deggintan prusnan''' – On ma bladą/opaloną twarz. 9zthqhyt6n48c39gfh040k7t0lgp1ej 543766 543765 2026-05-21T21:40:23Z Aklbmd164 37133 /* Wygląd */ 543766 wikitext text/x-wiki '''<big>Lakciōni 33</big>''' == Charakter i emocje == === Charakter === * '''sūitenikiskas''' <25> – skromny * '''labatīngis''' <27> – pyszny, wyniosły * '''labs''' <26> – dobry * '''wārgs''' <26> – zły * '''gaūdars''' <26> – mądry * '''glūps''' <25> – głupi * '''wūlakingis''' <27> – leniwy * '''dīlawingis''' <27> – pracowity * '''narewīngis''' <27>, '''dīrsus''' <31> – odważny, śmiały * '''bijāwingis''' <27>, '''dūrs''' <25> – bojaźliwy, lękliwy * '''dwidabbiskas''' <25> – dwulicowy * '''rāms''' <26> – pokorny, uczciwy, cnotliwy * '''labīngis''' <27> – życzliwy * '''lampiskas''' <25> – podły, niegodziwy * '''simpātiskas''' <25> – sympatyczny * '''barzūniskas''' <25> – ponury, drażliwy * '''ginewīngis''' <27> – przyjazny * '''preilāngus''' <31> – grzeczny, uprzejmy * '''dīrzals''' <25> – uparty * '''aulāikingis''' <27> – opanowany, powściągliwy * '''tusīngis''' <27> – małomówny * '''entikriskas''' <25> – szczery === Emocje === * '''wessels''' <25> – wesoły * '''grāudus''' <31> – smutny * '''tuldewīngis''' <27> – radosny * '''deiwūts''' <25> – szczęśliwy * '''nērtingis''' <27> – zły, gniewny, wściekły == Wygląd == === Wygląd === * '''grazzus''' <31> – piękny, ładny, przystojny * '''klūmbewingis''' <27> – brzydki * '''debīks''' <25> – duży * '''līkuts''' <25> – mały * '''laībs''' <26> – chudy * '''stārs''' <26> – gruby * '''instrawingis''' <27> – otyły * '''wūriskas''' <25> – stary, starszy * '''mālds''' <26> – młody * '''aūkts''' <26> – wysoki * '''zems''' <26> – niski * '''bāls''' <25> – blady * '''spīnkains''' <25> – piegowaty * '''siwaskebbelingis''' <27> – siwowłosy * '''kuks''' <25> – rudy * '''pliks''' <25> – łysy * '''kūmps''' <26> – garbaty, zgarbiony (np. człowiek, nos) == Tworzenie rzeczowników i czasowników od przymiotników == === Tworzenie rzeczowników od przymiotników === Rzeczowniki od przymiotników można tworzyć m.in. za pomocą przyrostków:<br> '''-isku''', np.: * wūr<span style="color:red">iskas</span> ⇒ wūr<span style="color:red">isku</span> (starość) * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">isku</span> (wesołość) '''-an/-u'''. Utworzone w ten sposób słowo jest identyczne z formą rodzaju nijakiego l. pojedynczej przymiotnika, od którego je utworzono, np.: * lab<span style="color:red">s</span> ⇒ labb<span style="color:red">an</span> (dobro) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">u</span> (piękno) === Tworzenie czasowników od przymiotników === Od przymiotników można utworzyć czasowniki odmieniające się różnymi wzorami odmian, m.in.:<br> '''<82>''' * wessel<span style="color:red">s</span> ⇒ wessel<span style="color:red">intun</span> (bawić, weselić, rozweselać) * grazz<span style="color:red">us</span> ⇒ grazz<span style="color:red">intun</span> (ozdabiać) '''<134>''' * sīw<span style="color:red">s</span> ⇒ siw<span style="color:red">ītwei</span> (siwieć) * laīb<span style="color:red">s</span> ⇒ laib<span style="color:red">ītwei</span> (chudnąć) '''<143>''' * gaūdar<span style="color:red">s</span> ⇒ gaūdr<span style="color:red">autwei</span> (mądrzyć się) == Przydatne wyrażenia == * '''Tāns ast spārtai dīlawingi/dīrsu/kantran''' – On jest bardzo pracowity/odważny/cierpliwy. * '''Tāns perwaidinna grāudu/simpātiskan''' – On wygląda na smutnego/sympatycznego. * '''Dwidabbiskai/Labatīngei/Wūlakingei zmūnei ni padīnga mennei''' – Nie lubię dwulicowych/wyniosłych/leniwych ludzi. * '''Galīmbas/Brūnas/Zallis akkis''' – Niebieskie/Brązowe/Zielone oczy * '''Gailāgalas/Brūnagalas/Timrāgalas''' – Blondyn/Szatyn/Brunet * '''Gailāgalwa/Brūnagalwa/Timrāgalwa''' – Blondynka/Szatynka/Brunetka * '''Tāns turri ilgans/īnsans skebbelins''' – On ma długie/krótkie włosy. * '''Tāns turri bārdan/wānsan''' – On ma brodę/wąsy. * '''Tāns ast skērtan''' – On jest ogolony. * '''Tāns turri bālin/deggintan prusnan''' – On ma bladą/opaloną twarz. rtjyovze8erygsh6etiaptlaoup31oy Moduł:Sprawdź/dane 828 63576 543807 2026-05-22T03:22:17Z Persino 2851 Utworzono nową stronę "local p={}; p.tabelka_argumentow_systemowych_funkcji={ ["nazwa przestrzeni nazw"]="", ["nazwa jednostki"]="txt", ["typ jednostki"]="txt", ["tytuł przestrzeni nazw"]="", ["tytuł jednostki"]="txt", ["rodzaj jednostki"]="txt", ["strona główna dla dzieci"]="txt", ["strona główna projektu"]="txt", ---- Kategorie błędów; ["usuń dodatkowe informacje"]="", ["usuń ostrzeżenie"]="", ["usuń linkowanie"]="", ["bez dodatkowych sprawdzeń"]="", -- param…" 543807 Scribunto text/plain local p={}; p.tabelka_argumentow_systemowych_funkcji={ ["nazwa przestrzeni nazw"]="", ["nazwa jednostki"]="txt", ["typ jednostki"]="txt", ["tytuł przestrzeni nazw"]="", ["tytuł jednostki"]="txt", ["rodzaj jednostki"]="txt", ["strona główna dla dzieci"]="txt", ["strona główna projektu"]="txt", ---- Kategorie błędów; ["usuń dodatkowe informacje"]="", ["usuń ostrzeżenie"]="", ["usuń linkowanie"]="", ["bez dodatkowych sprawdzeń"]="", -- parametr systemowy szablonu do nieuruchamiania tej funkcji; ["dokumentacja"]="", -- parametr używany zamiast: "bez kategorii", "usuń dodatkowe informacje", "usuń ostrzeżenie" i "usuń linkowanie"; ["bez kategorii"]="", -- parametr systemowy szablonu, by kategorie się nie pojawiały ---- Koniec kategorii błędów; };--tabelka powyższa jest tabelką argumentów systemowych tej funkcji tego modułu; p.tabelka_argumentow_dodatkowych_funkcji={ ["bez argumentów szablonu"]="", -- zawiera w sobie argumenty szablonu - oddzielone średnikem, których szablon nie może zawierać w wywołaniu; ["dodaj parametry pudełka"]="", -- dodaje parametry funkcji: Ogólne pudełko, modułu Pudełko; }; p.tabelka_argumentow_systemowych_szablonu={ ["nazwij jednostką"]="", -- parametr systemowy funkcji mówiący, czy dowolną jednostkę nazwać po prostu jednostką; }; -- tabelka powyższa jest tabelką argumentów systemowych szablonu wywołującego tę funkcję tego modułu; return p; m4ktkmc9qb0yiusehxnjpqwsu7qj7h6 Moduł:StronicowyParser/InformacjeKategorie 828 63577 543835 2026-05-22T08:29:58Z Persino 2851 Utworzono nową stronę "local p={}; p.informacje_o_kategoriach_stronicowego_parsera=require("Module:StronicowyParser/Kategorie").InformacjeKategorie(); return p;" 543835 Scribunto text/plain local p={}; p.informacje_o_kategoriach_stronicowego_parsera=require("Module:StronicowyParser/Kategorie").InformacjeKategorie(); return p; le7g74iz2fpwthtavbm0daw23qejjxk Zioła i przyprawy/Tymianek 0 63578 543840 2026-05-22T11:26:08Z EdytaT 2664 Utworzono nową stronę " {{Podrozdział|[[Zioła i przyprawy]]|Tymianek}} [[Plik:Planta de tomillo.jpg|thumb|Tymianek]] {{wikipedia|Tymianek}} {{wikisłownik|tymianek}} {{Wikibooks|Ekoogrodnictwo/Rośliny użytkowe/Tymianek|tymianku}} {{Wikibooks|Napary/Tymianek|Tymianek}} == Tymianek (macierzanka tymianek) == * Należy do wytrzymałych ziół śródziemnomorskich, które pod działaniem wysokiej temperatury (gotowanie, smażenie, grillowanie) uwalniają swój aromat i nadają potrawom…" 543840 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Tymianek}} [[Plik:Planta de tomillo.jpg|thumb|Tymianek]] {{wikipedia|Tymianek}} {{wikisłownik|tymianek}} {{Wikibooks|Ekoogrodnictwo/Rośliny użytkowe/Tymianek|tymianku}} {{Wikibooks|Napary/Tymianek|Tymianek}} == Tymianek (macierzanka tymianek) == * Należy do wytrzymałych ziół śródziemnomorskich, które pod działaniem wysokiej temperatury (gotowanie, smażenie, grillowanie) uwalniają swój aromat i nadają potrawom pikantny akcent. == Potrawy == * Potrawy śródziemnomorskie * Pieczenie mięsne * Drób * Wędliny i pasztety * Potrawy z roślin strączkowych * Zupy * Sałatki * Marynaty do potraw pieczonych i grillowanych == Kompozycje smakowe == * Tymianek jest składnikiem [[Zioła i przyprawy/Zioła prowansalskie|ziół prowansalskich]]. * Utarło się, że tymianek dodaje się do potraw w parze z [[Zioła i przyprawy/Rozmaryn|rozmarynem]] i [[Zioła i przyprawy/Lawenda|lawendą]]. == Zamienniki == * Alternatywą mogą być ... == Niepolecane == * Nie używaj ... == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> 7zxx5imlse5cc0foi47ot8gktz34hsf 543841 543840 2026-05-22T11:26:50Z EdytaT 2664 543841 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Tymianek}} [[Plik:Planta de tomillo.jpg|thumb|Tymianek]] {{wikipedia|Macierzanka tymianek}} {{wikisłownik|tymianek}} {{Wikibooks|Ekoogrodnictwo/Rośliny użytkowe/Tymianek|tymianku}} {{Wikibooks|Napary/Tymianek|Tymianek}} == Tymianek (macierzanka tymianek) == * Należy do wytrzymałych ziół śródziemnomorskich, które pod działaniem wysokiej temperatury (gotowanie, smażenie, grillowanie) uwalniają swój aromat i nadają potrawom pikantny akcent. == Potrawy == * Potrawy śródziemnomorskie * Pieczenie mięsne * Drób * Wędliny i pasztety * Potrawy z roślin strączkowych * Zupy * Sałatki * Marynaty do potraw pieczonych i grillowanych == Kompozycje smakowe == * Tymianek jest składnikiem [[Zioła i przyprawy/Zioła prowansalskie|ziół prowansalskich]]. * Utarło się, że tymianek dodaje się do potraw w parze z [[Zioła i przyprawy/Rozmaryn|rozmarynem]] i [[Zioła i przyprawy/Lawenda|lawendą]]. == Zamienniki == * Alternatywą mogą być ... == Niepolecane == * Nie używaj ... == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> mr2cydhzy9gmgo87og3nanomd3eacg9 543842 543841 2026-05-22T11:28:42Z EdytaT 2664 543842 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Tymianek}} [[Plik:Planta de tomillo.jpg|thumb|Tymianek]] {{wikipedia|Macierzanka tymianek}} {{wikisłownik|macierzanka tymianek}} {{Wikibooks|Ekoogrodnictwo/Rośliny użytkowe/Macierzanka tymianek|tymianku}} {{Wikibooks|Napary/Macierzanka tymianek|tymianku}} == Tymianek (macierzanka tymianek) == * Należy do wytrzymałych ziół śródziemnomorskich, które pod działaniem wysokiej temperatury (gotowanie, smażenie, grillowanie) uwalniają swój aromat i nadają potrawom pikantny akcent. == Potrawy == * Potrawy śródziemnomorskie * Pieczenie mięsne * Drób * Wędliny i pasztety * Potrawy z roślin strączkowych * Zupy * Sałatki * Marynaty do potraw pieczonych i grillowanych == Kompozycje smakowe == * Tymianek jest składnikiem [[Zioła i przyprawy/Zioła prowansalskie|ziół prowansalskich]]. * Utarło się, że tymianek dodaje się do potraw w parze z [[Zioła i przyprawy/Rozmaryn|rozmarynem]] i [[Zioła i przyprawy/Lawenda|lawendą]]. == Zamienniki == * Alternatywą mogą być ... == Niepolecane == * Nie używaj ... == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> 7peiqdkeq3mlcj2xorommnchjgjws2p