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>{{")
table.insert(result, templateName)
for i, k in ipairs(params) do
table.insert(result, " | ")
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, "}}</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>{{")
table.insert(result, templateName)
for i, k in ipairs(params) do
table.insert(result, " | ")
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, "}}</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>{{")
table.insert(result, templateName)
for i, k in ipairs(params) do
table.insert(result, " | ")
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, "}}</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>{{")
table.insert(result, templateName)
for i, k in ipairs(params) do
table.insert(result, " | ")
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, "}}</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>{{")
table.insert(result, templateName)
for i, k in ipairs(params) do
table.insert(result, " | ")
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, "}}</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>{{")
table.insert(result, templateName)
for i, k in ipairs(params) do
table.insert(result, " | ")
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, "}}</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>{{")
table.insert(result, templateName)
for i, k in ipairs(params) do
table.insert(result, " | ")
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, "}}</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|<span>}} 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|<span>}} 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|<span>}} 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
==== {{s|Śródtytuł|uchwyt}} To jest przykładowy rozdział, by zaprezentować działanie szablonu {{s|s|Śródtytuł}} ====
----
; 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
==== {{s|Śródtytuł|uchwyt}} To jest przykładowy rozdział, by zaprezentować działanie szablonu {{s|s|Śródtytuł}} ====
----
; 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
==== {{s|Śródtytuł|uchwyt}} To jest przykładowy rozdział, by zaprezentować działanie szablonu {{s|s|Śródtytuł}} ====
----
; 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
==== {{s|Śródtytuł|uchwyt}} To jest przykładowy rozdział, by zaprezentować działanie szablonu {{s|s|Śródtytuł}} ====
----
; 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ł}}
==== {{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}} ====
----
; 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ł}}
==== {{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}} ====
----
; 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ł}}
==== {{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}} ====
----
; 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